Generally, then this is two reasons;
1) a Timeout
2) the transaction hasn't actually completed.
We had a issue with a third party webservice. In the end we were at fault because of various reasons but we weren't sending the correct data or more accurately telling the webservice the data we were going to send in situations which arose around 2% of the time.
Either way it looks like a coding issue. One way to test is to run the full project analysis and run a webservice watcher but if it is in .net code then you will be lucky to catch.
Best try epicor support. but it might also be bug from e9 not fully solved