Ah I see what you mean. In this case the handler should complete with a terminal error - we weren't able to finish the task in time. Of course, many types of errors and timeouts are valid application-level results, not transient infrastructure issues. And sadly, tight timeouts push transient issues into application-level issues, and this is unavoidable, I think
Success! Your widget expires in 30 seconds
Second call: use widget
Failure! For some reason or another
Ok, so restart the flow…
First call: fetch a widget
Cached! Receive the same widget again
Second call: use widget
Failure! widget has now expired