If there is nothing more to run (according to the graph) and there are no incomplete tasks present, the scheduler will report workflow completion and shut down when current active tasks finish.
If there is nothing more to run (according to the graph) but there are incomplete tasks present, the scheduler will stall and stay alive for 1 hour (by default) awaiting user intervention to allow the workflow to continue.
The presence of incomplete tasks means that the workflow did not run to completion as expected, because some required task outputs were not completed at runtime.
Restarting a stalled workflow triggers a new stall timer.
Partially satisfied prerequisites can also cause a stall. If
a & b => c,
a succeeds but
b never even runs, the scheduler will take
partial completion of
c’s prerequisites as a sign that the workflow did
not run to completion as expected.
At present you have to consult the scheduler log to see the reason for a stall.