On my local dev environment, when an App Engine task that had been added to the the task queue hits an error, it is retried until successful. However, in the production environment, it's not. What I THINK is happening is that, because I have a custom 500 handler in urls.py, all errors are caught by this and the 500 error never bubbles to the top.
Could this in fact be the reason that my tasks are not being retried? And if so, is there a way to prevent this? I only want errors to be caught by the handler500 view if the request is user-generated, not a backend task (for those, I want the error to bubble up and force a retry).