Question

We see occasional (~100 per day) TransientError errors when adding tasks to a queue in appengine. Is there anything we can do to handle these or code more defensively to avoid them?

An exampe of the error we receive is shown below:

  File "/python27_runtime/python27_lib/versions/1/google/appengine/ext/deferred/deferred.py", line 268, in defer
    return task.add(queue, transactional=transactional)
  File "/python27_runtime/python27_lib/versions/1/google/appengine/api/taskqueue/taskqueue.py", line 1132, in add
    return self.add_async(queue_name, transactional).get_result()
  File "/python27_runtime/python27_lib/versions/1/google/appengine/api/apiproxy_stub_map.py", line 604, in get_result
    return self.__get_result_hook(self)
  File "/python27_runtime/python27_lib/versions/1/google/appengine/api/taskqueue/taskqueue.py", line 1927, in ResultHook
    raise _TranslateError(e.application_error, e.error_detail)
TransientError
Was it helpful?

Solution

TransientError indicates a server-side error (for example an overloaded and unresponsive BigTable). The only thing you can do is try again with back-off.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top