Restarting failed workflow

I have a situation where a task in my workflow failed because a file was not staged in the right location. I moved the file, and would now like to just restart the workflow from where it ran into the problem. My understanding is I should just be able to run cylc play , but when I do that as far as I can tell nothing happens. Am I missing a step? This is using cylc8rc3.

Yes, cylc play should always pick up where the previous run left off.

By failed I guess you mean that some of the tasks within the workflow failed rather than the Cylc scheduler failed?

If the workflow is shutting down immediately after starting up it usually means that the workflow has already run to completion. Try inspecting the workflow log file, if there were any internal issues they will be reported there.

If your workflow has already run to completion but you would like to “rewind” it back a bit and rerun try the following:

# restart the workflow (the --pause will stop it shutting down straight away)
cylc play --pause workflow

# trigger a new "flow" with the first task you wish to rerun
# for more info see https://cylc.github.io/cylc-doc/latest/html/user-guide/running-workflows/reflow.html
cylc trigger --flow=new workflow//cycle/task

# unpause the workflow
cylc play workflow

New “flows” allow you to have multiple “logical runs” of the same workflow running under a single scheduler. They are useful for situations where you need to re-run part of a workflow e.g. due to data issues. They are a brand-new feature of Cylc 8.

https://cylc.github.io/cylc-doc/latest/html/user-guide/running-workflows/reflow.html

It definitely hadn’t run to completion, because one of the intermediate tasks exited with an error and no other tasks ran after that. I’ll take a look at the logs and see if I can figure out what was going on with the restart attempt.

When you restart a workflow it continues in the same way it would have if you never shut it down. So, if a task was in the failed state before shutdown it will remain in the failed state after the restart. To rerun the failed task use cylc trigger on that task.