Two suspected causes:
1) malformed data, which I believe you've eliminated as the cause.
2) Record locking over your own session.
To get by number 2, you can force your commit using the "Override ESS locking conflicts" checkbox in the commit records script step options.
You can also search the web for "ESS record locking", there's quite a few search results to comb over for helpful techniques and ways you should refresh/open/commit records via ESS for the most reliability, as well as trapping and handling errors.
Thanks a lot for your input. I'm having a deeper look into your mentioned number 2, and marked "Override ESS locking conflicts" in my commit steps. Very helpful.