CoolFace
Apppublic

hysts-debug/workflow-error-propagation

sourceHugging Faceupdated 2mo agoView on Hugging Face
0likes
App README

Repro: downstream workflow nodes still run after an upstream node fails

Minimal reproduction for a gr.Workflow bug: when an upstream node raises an exception, downstream nodes are not skipped. They execute with None for the input that the failed node was supposed to produce.

Steps

  1. 1.Open the app and click Run on the canvas.
  2. 2.The first node fails as expected (it always raises ValueError("boom")).
  3. 3.The second node, whose only input comes from first, still runs: its node shows got: None, and the server log prints second() called with None.

Expected: second should not run its body. It should be marked as failed with the existing "upstream node failed" message, like other node types.

Why it happens

The executor's fail-fast guard in workflow-executor.ts checks port.required && inputs[port.id] === null, but the fn-node ports generated from bind= never set required, so the guard is skipped and null flows into the function call. See the linked issue for details.