windmill-labs/windmill · error

No output files found for ${path}

Error message

No output files found for ${path}

What it means

After an esbuild bundle of a bundled script (bundle: true, write: false), outputFiles came back empty, so there is no bundle text to deploy. This fires on unexpected esbuild behavior/failure rather than user input.

Source

Thrown at cli/src/commands/script/script.ts:448

          format: format,
          bundle: true,
          write: false,
          external: codebase.external,
          inject: codebase.inject,
          define: codebase.define,
          loader: codebase.loader ?? { ".node": "file" },
          outdir: "/",
          platform: "node",
          packages: "bundle",
          target: format == "cjs" ? "node20.15.1" : "esnext",
          banner: codebase.banner,
          // ...(codebase.banner != null && { banner: codebase.banner }),
        });
        const endTime = performance.now();
        bundleContent = out.outputFiles[0].text;
        outputFiles = out.outputFiles ?? [];
        if (outputFiles.length == 0) {
          throw new Error(`No output files found for ${path}`);
        }
        log.info(
          `Finished bundling ${path}: ${(bundleContent.length / 1024).toFixed(
            0
          )}kB (${(endTime - startTime).toFixed(0)}ms)`
        );
      }
      if (outputFiles.length > 1) {
        log.info(
          `Found multiple output files for ${path}, creating a tarball... ${outputFiles
            .map((file) => file.path)
            .join(", ")}`
        );
        forceTar = true;
        const startTime = performance.now();
        const mainPath = path.split(SEP).pop()?.split(".")[0] + ".js";
        const mainContent =
          outputFiles.find((file) => file.path == "/" + mainPath)?.text ?? "";

View on GitHub (pinned to e474e8803c)

Solutions

  1. Retry the push; a transient esbuild failure can yield no outputs.
  2. Check the script's build/codebase settings in its metadata for options that suppress output.
  3. Report if reproducible: the bundle succeeded without producing output files.
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at cli/src/commands/script/script.ts:448 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/7b14ea0425e466e5. Report an issue: GitHub.