InternalError: current transaction is aborted, commands ignored until end of transaction block

Just because my own Googling wasn't particularly fruitful when I encountered the following error:

InternalError: current transaction is aborted, commands ignored until end of transaction block

Turns out I had forgotten to update my database and run a syncdb after adding a new module. Nothing in the traceback hinted at that module (the last line of my code it was failing on was context_instance=RequestContext(request) in the render_to_response call), and the new field wasn't directly referenced either.

My hope is that if I'd had DEBUG set to True the error message would have been more helpful, but because it was on a production server I was reluctant to start with that (I reverted the code to the old working version instead and started investigating).

links

social