It wasn't. Failure was happening deep within a stored procedure. One in a million set of circumstances that allowed it to get as far as it did before failing.

Chances of it happening again are infinitesimal but there is debugging output now -
just in case.