Re-running an old task -- "No matching tasks found"

Hi folks. I ran into a problem today where a directory got renamed while my suite was running;, and as a consequence, a task failed to complete properly. I discovered this late, and I’d like to rerun the task. But when I try, via e.g. “cylc reset --state=waiting”, nothing happens, and I get messages to my suite log like this:

2021-08-10T00:40:26Z WARNING - No matching tasks found: run_model_forecast_subsuite.20140118T0300Z
2021-08-10T00:40:26Z INFO - Command succeeded with 1 warning(s): reset_task_states([u'run_model_forecast_subsuite.20140118T0300Z'], outputs=None, state=waiting)
2021-08-10T00:40:26Z INFO - Processing 1 queued command(s)
	+	reset_task_states([u'run_model_forecast_subsuite.20140118T0300Z'], outputs=None, state=waiting)

Presumably what’s going on is that if a task is sufficiently old, the suite db simply doesn’t know about it anymore, and so cannot re-run it? Is there a way around this?

Cylc 7 (and earlier) maintains an evolving pool of “task proxy” objects representing tasks in the current window of awareness on the potentially never-ending dependency graph. This is for technical reasons to do with the way Cylc 7 manages cycling systems with no barrier between cycles (no global cycle loop). What you see in the Cylc 7 GUI is basically this task pool. If you want to trigger a task outside of the pool (e.g. behind the pool after it has moved on to newer cycle points) you have to cylc insert the task proxy first, then tell it to submit its job with cylc trigger.

The new scheduling algorithm in Cylc 8 removes this limitation (among others) - you can trigger Cylc 8 tasks anywhere in the graph (and even have the workflow carry on as normal from those trigger points) without needing to understand Cylc’s internal task pool. But for the moment - with Cylc 7 - you’ll need to use cylc insert as described above.