Workflow still running after WorkflowTaskTimedOut

I’m using the Ruby SDK. I’m seeing that whenever my workflow times out (the timeout is StartToClose), the workflow is still shown as running in the UI. This can’t be expected, right? How do I get the workflow to properly have that “Timed out” status?

my workflow times out (the timeout is StartToClose),

The workflow execution itself did not time out, but the workflow task which has a 10s StartToClose timeout (time from when a workflow task is dispatched to your worker until your worker respond back with workflow task completion).
The workflow task is being retried, possible on different worker and execution seems “stuck”, but yes its still running allowing you to fix issue and for it to continue.

This can be indication of number of things like high cpu on worker, possible infinite loops in workflow code/data converter, calling downstream apis in workflow code or blocking workflow code on non-Temporal apis are the biggest culprits.

Thanks, that’s super helpful! Is there a way to limit the number of times the workflow task is retried?

You can set the workflow run or execution timeout to limit the duration of such retries.