I keep getting these on my website, visitors reporting them fairly regularly as well. Refreshing the page always fixes it. Here is an email report I got from the server for a typical one:
Error in: http://www.scirra.com/ReleaseView.aspx?rtitle=r49 Error
Message: Row not found or changed. Stack Trace: at
System.Data.Linq.ChangeProcessor.SubmitChanges(ConflictMode
failureMode) at
System.Data.Linq.DataContext.SubmitChanges(ConflictMode failureMode)
at LoggedInUser..ctor() at MasterPages_Main.Page_Init(Object sender,
EventArgs e) at
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object
o, Object t, EventArgs e) at
System.Web.UI.Control.InitRecursive(Control namingContainer) at
System.Web.UI.Control.InitRecursive(Control namingContainer) at
System.Web.UI.Page.ProcessRequestMain(Boolean
includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
It’s not giving a line number or anything else much useful. The page in question isn’t doing anything complex at all.
Any ideas? It’s not an error I’ve managed to reproduce, it just keeps happening regularly.
Suspect your LINQ To SQL .dbml is out of sync with your database. Either the model is old, or the production database isn’t the same as when the .dbml was created. Were any columns modified? Perhaps a column has had its nullable status changed?
Try deleting and adding that table in question from your .dbml design surface. Unsure if you’ve got multiple environments(dev/test/prod), but do this .dbml change against the production database, and redeploy your application.
Perhaps double check that your table and the dbml entity match as you expect, property by property on the nullable attributes. Another problem showing the same symptom. Also consider any DateTime columns and whether you can set those columns/properties to “Never” for concurrency checks.