Workflow execution timeout vs run timeout

Reading through the docs, its still not clear to me which I should use given my use case: I have workflows that are executed/scheduled to be run at a future date via a StartDelay. Lets say I call ExecuteWorkflow and expect the actual workflow to be processed a week from now, however, when it does run I don’t expect the total run time to take over 24 hours – Would I set WorkflowExecutionTimeout or WorkflowRunTimeout to 24hours ? I suspect its the latter however I wanted to make sure.

Also, would it be possible to configure this at a global level in the server itself ? The idea here would be no one using our temporal instance should expect the processing of a given WF to take over 3 days lets say.

Do you want your workflow killed without completion if an outage causes it to not complete in 24 hours?

yes exactly, it should be marked as terminated or whatever “ended unsuccessfully” status is applicable – The goal being not letting workflows that started to process run indefinitely, I would expect this to be simillar to how an activity start to end timeout works.

You can use run timeout. Unfortunately, there is no way to specify timeout for “StartDelay” and actual execution separately. By the way, you can achieve this with the schedules feature.

Note that the execution timeout is only relevant when the same workflow is retried or uses continue as new.

So using my example in the OP, if I was to call ExecuteWorkflow and pass 24hrs as the WorkflowRunTimeout , this timeout would begin after one week when the actual processing occurs or would i need to do 1 week + 24hrs ?

No, the timeout starts when ExecuteWorkflow is called. So, this workflow is timed out after 24 hours.