deepseek-ai/deepseek-harness · error · FileNotFoundError
deepseek-harness-runtime-bin is missing the node-pty spawn h
Error message
deepseek-harness-runtime-bin is missing the node-pty spawn helper at {helper}. Two ways to get the executable: run `scripts/build-exe-for-python-sdk.ts` (via tsx) in a deepseek-harness checkout, or install the matching `deepseek-harness-runtime-bin` platform wheel retained by the `build-exe-for-python-sdk` CI workflow. For local development against a repo source build, explicitly select the dev-only node carrier with DSH_RUNTIME_MODE=node (or resolve_bundled_launch_args('node')). What it means
Error "deepseek-harness-runtime-bin is missing the node-pty spawn helper at {helper}. Two ways to get the executable: run `scripts/build-exe-for-python-sdk.ts` (via tsx) in a deepseek-harness checkout, or install the matching `deepseek-harness-runtime-bin` platform wheel retained by the `build-exe-for-python-sdk` CI workflow. For local development against a repo source build, explicitly select the dev-only node carrier with DSH_RUNTIME_MODE=node (or resolve_bundled_launch_args('node'))." thrown in deepseek-ai/deepseek-harness.
Source
Thrown at python/sdk-runtime/src/deepseek_harness_runtime/__init__.py:96
touching callers).
"""
tag = _current_platform_tag()
path = bundled_package_dir() / "runtime" / f"dsh-jsonrpc-agent-pkg-{tag}"
if not path.is_file():
raise FileNotFoundError(
f"deepseek-harness-runtime-bin is missing the runtime executable at {path}. "
+ _EXE_ACQUISITION_HINT
)
ripgrep = Path(f"{path}-rg")
if not ripgrep.is_file():
raise FileNotFoundError(
f"deepseek-harness-runtime-bin is missing the ripgrep sidecar at {ripgrep}. "
+ _EXE_ACQUISITION_HINT
)
if tag.startswith("macos-"):
helper = Path(f"{path}-spawn-helper")
if not helper.is_file():
raise FileNotFoundError(
f"deepseek-harness-runtime-bin is missing the node-pty spawn helper at {helper}. "
+ _EXE_ACQUISITION_HINT
)
return path
def resolve_bundled_launch_args(mode: str | None = None) -> tuple[str, ...]:
"""The argv tuple that launches the bundled runtime.
Mode selection: the explicit ``mode`` argument wins, then the
``DSH_RUNTIME_MODE`` environment variable (``exe`` | ``node``), then
automatic resolution. Automatic resolution finds the production exe ONLY —
the dev-only node carrier must be selected explicitly so a production
deployment can never silently ride on a source build. Returns
``(exe_path,)`` in exe mode and ``(node_path, bin_js_path)`` in node mode;
raises FileNotFoundError when the selected carrier is unavailable and
ValueError for an unknown mode value.
"""View on GitHub (pinned to b150a551b8)
Solutions
- Run scripts/build-exe-for-python-sdk.ts in a deepseek-harness checkout, or install the matching deepseek-harness-runtime-bin platform wheel; for repo-local development set DSH_RUNTIME_MODE=node.
When it happens
Trigger: Thrown at python/sdk-runtime/src/deepseek_harness_runtime/__init__.py:96 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of deepseek-ai/deepseek-harness@b150a551b8 (2026-08-24).
Data as JSON: /api/errors/3b99eb7f1e263102.
Report an issue: GitHub.