windmill-labs/windmill · error · Error

Bounded run failed at ${nodePath} (job ${id}). + (detail ? \

Error message

Bounded run failed at ${nodePath} (job ${id}). + (detail ? \n${detail} : ) + \nFull logs: ${runUrl}

What it means

Failure stop in the pipeline run command: a node's job completed unsuccessfully during a bounded run, so the CLI halts the topological cascade at that node. The message names the failing node path and job id, appends the formatted job failure detail (error message/result) when available, and links the run URL for full logs. This is the CLI surfacing a remote job failure — the actual exception happened inside the job, not in the CLI.

Source

Thrown at cli/src/commands/pipeline/pipeline.ts:1023

          path: nodePath,
          args: nodeArgs,
          temp_script_refs: tempScriptRefs,
          // `// tag` routes to the same worker the deployed pipeline would.
          ...(ls.tag ? { tag: ls.tag } : {}),
        } as any,
      });
    } else {
      id = await wmill.runScriptByPath({
        workspace: workspace.workspaceId,
        path: nodePath,
        requestBody: nodeArgs,
      });
    }
    const { ok, result } = await waitJob(workspace.workspaceId, id);
    if (!ok) {
      const detail = formatJobFailure(result);
      const runUrl = `${workspace.remote}run/${id}?workspace=${workspace.workspaceId}`;
      throw new Error(
        `Bounded run failed at ${nodePath} (job ${id}).` +
          (detail ? `\n${detail}` : "") +
          `\nFull logs: ${runUrl}`,
      );
    }
    if (!opts.json) log.info(colors.green(`  ✓ ${nodePath}`));
  }
  if (!opts.json) {
    log.info(colors.green.bold(`Bounded run complete — ${order.length} script(s) succeeded.`));
  }
}

const command = new Command()
  .description(
    "inspect asset-driven pipelines (scripts marked `// pipeline`, wired by `// on <spec>` annotations)",
  )
  .command("list", "list pipeline folders in the workspace")
  .option("--json", "Output as JSON (for piping to jq)")

View on GitHub (pinned to e474e8803c)

Solutions

  1. Open the run URL in the message to read the job's full logs and error
  2. Fix the failing script (its inputs, code, or resources) and re-run the bounded range
  3. If the failure was caused by an upstream arg, adjust the --upload/--arg bindings and retry
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at cli/src/commands/pipeline/pipeline.ts:1023 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of windmill-labs/windmill@e474e8803c (2026-09-03). Data as JSON: /api/errors/1e3155fb2890f4f6. Report an issue: GitHub.