Basically what happens is you guys store the SqlCommand between all requests. The problem is, sometimes this prepared statement gets removed from the cache in SqlServer. When this happens all subsequent requests result in an error "Could not find prepared statement with handle -1"
You could resolve this by checking for that specific error on submitting and if you get it recreate the command and try again, or just recreate and prepare the statement every time.
This is a pretty major issue.