{"record":{"id":"73b06bc0af7d80f4","repo":"windmill-labs/windmill","slug":"no-local-file-for-nodepath-is-it-a-pipeli","errorCode":null,"errorMessage":"No local file for ${nodePath} — is it a `// pipeline` script in f/${f}?","messagePattern":"No local file for (.+?) — is it a `// pipeline` script in f/(.+?)\\?","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"cli/src/commands/pipeline/pipeline.ts","lineNumber":996,"sourceCode":"\n  // Execute in topological order, stopping on the first failure.\n  for (const nodePath of order) {\n    if (!opts.json) log.info(colors.gray(`▶ running ${nodePath}…`));\n    // `--arg` spreads after `--upload` so an explicit value wins for the same\n    // param; the internal dispatch guard spreads LAST so neither binding can\n    // re-enable backend dispatch (the CLI owns the whole closure here).\n    const partitionValue = partitionValueFor(nodePath);\n    const nodeArgs = {\n      ...(partitionValue !== undefined ? { partition: partitionValue } : {}),\n      ...(uploadArgs.get(nodePath) ?? {}),\n      ...(plainArgsByPath.get(nodePath) ?? {}),\n      _wmill_skip_asset_dispatch: true,\n    };\n    let id: string;\n    if (opts.local) {\n      const ls = localScripts!.get(nodePath);\n      if (!ls) {\n        throw new Error(\n          `No local file for ${nodePath} — is it a \\`// pipeline\\` script in f/${f}?`,\n        );\n      }\n      id = await wmill.runScriptPreview({\n        workspace: workspace.workspaceId,\n        requestBody: {\n          content: ls.content,\n          language: ls.language as any,\n          path: nodePath,\n          args: nodeArgs,\n          temp_script_refs: tempScriptRefs,\n          // `// tag` routes to the same worker the deployed pipeline would.\n          ...(ls.tag ? { tag: ls.tag } : {}),\n        } as any,\n      });\n    } else {\n      id = await wmill.runScriptByPath({\n        workspace: workspace.workspaceId,","sourceCodeStart":978,"sourceCodeEnd":1014,"githubUrl":"https://github.com/windmill-labs/windmill/blob/e474e8803ce2ff5c2df09a58dab51d45f5c922ca/cli/src/commands/pipeline/pipeline.ts#L978-L1014","documentation":"Local-file miss during local execution in the pipeline run command: the topological order includes a node whose script source couldn't be loaded from disk. In --local mode every runnable must exist as a // pipeline script file under f/{f}; this node either isn't one (wrong kind, marker-only, or a non-pipeline script that slipped into the plan) or its file was deleted/moved after the graph was built. The input at fault is the local file for the named node path.","triggerScenarios":"Thrown at cli/src/commands/pipeline/pipeline.ts:996 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Create/restore the script file at the named path and mark it // pipeline","Remove stale references (e.g. deleted scripts still referenced in flows) and rebuild the graph","Drop --local and run deployed, where the server holds the script source"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"e474e8803ce2ff5c2df09a58dab51d45f5c922ca","analyzedAt":"2026-09-03T12:38:19.024Z","contentChangedAt":"2026-09-03T12:38:19.024Z","schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}