Revert a fix to try to prove the problem is the one I think.
Make it throw a clear exception if the expected bad state happens, rather than just patching it silently.