Okay, I have a theory. For background, consider reading:
https://wpengine.com/2013/02/21/wordpress-transient-api/
Basically, Seamless Donations uses transients (a temporary WordPress data structure) to store transaction information before it jumps off the PayPal, and then retrieve that transaction information when returning from PayPal. From some of the logs I’ve looked at, it looks like that transaction information is disappearing or at least is not found.
According to the WPEngine article above, transient data doesn’t necessarily live for as long as the programmer specifies. On active servers using memcaching (which many shared hosting providers do, as well as many managed hosting providers who want fast sites), memory may get flushed more often, and down the drain goes the transients.
So I’m going to remove the transient API from Seamless Donations in 4.0.4. It’s just not worth the risk. I don’t know for sure that it will solve the problem we’re investigating, but it’s definitely a failure point we don’t need.
So, I’ll build 4.0.4 to use a more robust mechanism for transactions. If that doesn’t fix the weird data problems, then I’ll take another dive and look for something else.
Thanks for your patience,
–David