I've got a Python app that's using the simple-salesforce Salesforce API client. One operation that it performs is automatic re-assignment of contact owners based on the owner of the respective account, i.e. if Joe Schmoe is a contact owned by John Doe on the Big Company account, but the owner of the Big Company account is Jane Smith, Joe Schmoe's contact owner would be switched to Jane Smith automatically.
When I look at the history in Salesforce, it shows that the contact owner was changed properly, but then some time later, that change is reversed, i.e. Joe Schmoe's contact owner gets switched back to John Doe.
I've looked into our workflow rules, and nothing is present that would cause this to roll back. Is there protocol built into the platform that would cause this?
Note: this does not happen every time. We've seen it happen mostly on enterprise-level accounts with a higher volume of contacts.