Hi MJ,
I think that the problem is in the way that we built
autocomplete fields in AtoM. For any autocomplete field, or in this particular case the donor autocomplete field, the accession form embeds the /donor/add page using a <iframe/> element. So let's say you type in a new donor, autocomplete.js puts that value in the embedded iframe and subscribe an event in the upper form so when you submit the accession form, we ensure that the embedded forms are submitted first. When the donor is submitted (and this is still happening in the iframe), the controller redirect us to the location of the new donor, and we took that value and use it to represent the new object. You probably remember how we use routes instead of IDs to represent objects, we're doing that here.
So I think the problem is in the server not being able to respond to request originated from the embedded form before you submit the accession form. At least I used to reproduce the same error that way, trying to submit the form right after you submit the name of the new donor. Easier to reproduce on slow machines or with help of sleep().
The only reason I can think we did it this way is because the XMLHTTPRequest was very new and not well supported back when this beast was engineered.