There are a number of factors that may contribute to this issue, but we have never been able to reproduce this issue in testing environments. Without a way to duplicate the problem, we cannot confirm a fix for the issue. However, one area we thought this may be occurring would be the hand-off between parts that communicate with our Blackbaud Secure Payment page. (e.g., Payment 2.0, Advanced Donation Form)
In Service Pack 9, we added some improved logging and updated the logic of our session management for this process. While this may not address all occurrences of the problem, it is necessary to be on Service Pack 9 or later to consume these improvements.
There is also a post in our Ideas Portal where you can see, and vote for, one suggestion posed of changing functionality for another suspected cause of this issue: https://blackbaud.aha.io/ideas/ideas/CRM-I-2130