@simon i have tested this we can catch it outside the task.. By using propagate=True, a task exception is propagated to caller.  We can move the SailthruClientError exception to task, but have to pass a return value of None to let the caller know about this. As for both exception inside caller, we must return with a response immediately without moving down further.