apache/beam · error · Error

${result.output}

Error message

${result.output}

What it means

The Python venv bootstrap subprocess (bootstrap_beam_venv.py run via spawnSync) exited non-zero, and this error re-throws the child's combined output as the message. It is a wrapper around an external-process failure: the real cause (Python missing, network failure fetching packages, script crash) is inside result.output; the faulty input is the local Python environment used by PythonService.whichPython().

Solutions

  1. Run the bootstrap script manually with the same interpreter (python3 resources/bootstrap_beam_venv.py) to see the full traceback.
  2. Verify PythonService.whichPython() resolves to a working Python 3 interpreter on PATH.
  3. Check network access/proxies needed to create the Beam venv, then retry the operation.
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at sdks/typescript/src/apache_beam/utils/service.ts:423 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of apache/beam@12126d8942 (2026-09-13). Data as JSON: /api/errors/a7284f8de510baed. Report an issue: GitHub.

Appendix: source

Thrown at sdks/typescript/src/apache_beam/utils/service.ts:423

      __dirname,
      "..",
      "..",
      "..",
      "resources",
      "bootstrap_beam_venv.py",
    );
    console.debug("Invoking Python bootstrap script.");
    const result = childProcess.spawnSync(
      PythonService.whichPython(),
      [bootstrapScript],
      { encoding: "latin1" },
    );
    if (result.status === 0) {
      console.debug(result.stdout);
      const lines = result.stdout.trim().split("\n");
      return lines[lines.length - 1];
    } else {
      throw new Error(result.output);
    }
  }

  static forModule(module: string, args: string[] = []): Service {
    let pythonExecutable: string;
    let serviceInfo = serviceOverrideFor("python:" + module);
    if (!serviceInfo) {
      serviceInfo = serviceOverrideFor("python:*");
    }
    if (serviceInfo) {
      if (serviceInfo.match(/^[a-zA-Z0-9.]+:[0-9]+$/)) {
        return new ExternalService(serviceInfo);
      } else {
        pythonExecutable = serviceInfo;
      }
    } else {
      pythonExecutable = PythonService.beamPython();
    }

View on GitHub (pinned to 12126d8942)