Workflow loop block timeout not timing out

Can someone explain how the “iteration timeout” works with a workflow loop block? The default value is 10000ms. My “loop runner” is another Retool Workflow. The called workflow exceeds 10 seconds, 100% of the time. The only time I’m seeing a timeout, is when the called workflow exceeds 3 minutes, which is a retool limit. Why is this?

To test this in isolation, I created the following 2 workflows.

loop test with timeout

workflow with time delay

And when I run this, the “parent” workflow runs to completion successfully, with loop1 block taking 246 seconds. Any idea why?

1 Like

Hi @lkiss,

A very similar question was recently raised by another community member, and I think the discussion may be helpful for your use case:

Forum Discussion:
https://community.retool.com/t/individual-block-timeout-in-workflow/66550

In that thread:

I recommend reviewing those resources first, as they answer many common questions about workflow execution, timeouts, and best practices.

If you still have questions after going through them, or if your use case is slightly different, feel free to share more details here. I'd be happy to help troubleshoot and find the best solution.

Hope this helps!

I appreciate you spending time on your reply, I’m just not sure how to apply any of it to my scenario. Most, if not all, of what you’re referencing, is talking about why things timeout and best practices to get “get around” them. My scenario is the opposite – I want a timeout, and it’s not happening, and I don’t know why.

1 Like

@lkiss , Based on your reproduction, your expectation appears to be valid.

According to the Loop Blocks documentation, the Iteration timeout applies to each iteration of the loop, with a maximum configurable value of 30 seconds. Since your iteration timeout is configured to 10,000 ms and each iteration takes approximately one minute, I would expect the iteration to time out before the child workflow completes.

Additionally, the Workflow Block Triggers documentation explains that when one workflow invokes another, the triggered workflow is executed as a separate workflow run and is subject to the execution limits defined for workflow block triggers.

Taken together, this suggests that when the loop body contains a Call Workflow block, the child workflow may be governed by its own execution limits rather than the Loop block's iteration timeout. This would explain why the parent workflow waits for the child workflow to complete and only encounters a timeout when the child workflow reaches the platform's execution limit.

However, I couldn't find any documentation explicitly stating that the Iteration timeout does not apply to nested workflow executions. If this behavior is intentional, it would be helpful if the Retool team could confirm it. Otherwise, your reproducible example may indicate an undocumented limitation or a bug.

References:

UPDATE: I've confirmed and documented this internally - will let everybody here know as soon as it is fixed. :+1:


Hey @lkiss - your description certainly makes it sound like prescribing a loop timeout is just incompatible with synchronous workflow triggers. I'll try to confirm this, potentially file a bug report, and give you an update here as soon as I can!

1 Like