langchain-ai/deepagents · error · RuntimeError
manifest option 'interpreter.enable_interpreter' is missing;
Error message
manifest option 'interpreter.enable_interpreter' is missing; refusing to enable the interpreter without managed-policy input
What it means
`_resolve_interpreter_enabled` raises `RuntimeError` when the manifest option `interpreter.enable_interpreter` cannot be found. Because interpreter enablement is governed by a managed policy ranking, the code refuses to enable the interpreter without that managed-policy input rather than falling back to an unsafe default.
Source
Thrown at libs/code/deepagents_code/main.py:1194
Returns:
Whether the JS interpreter is enabled for this invocation.
Raises:
RuntimeError: If the manifest is missing the option, which is a
programming error rather than a runtime condition. Defaulting to
`True` here would enable JS execution for an enforced key.
"""
from deepagents_code.config_manifest import _emit_ranked_diagnostics, get_option
from deepagents_code.configuration.resolver import CLI_RANK, MANAGED_RANK
option = get_option("interpreter.enable_interpreter")
if option is None:
msg = (
"manifest option 'interpreter.enable_interpreter' is missing; "
"refusing to enable the interpreter without managed-policy input"
)
raise RuntimeError(msg)
resolved = _resolver_for_args(args).get(option)
_emit_ranked_diagnostics(option, resolved)
sandbox = getattr(args, "sandbox", None)
remote_sandbox = bool(sandbox) and sandbox != "none"
deciding_rank = next(
(rank for rank in resolved.ranks if rank in {MANAGED_RANK, CLI_RANK}), None
)
if deciding_rank is not None:
enabled = bool(resolved.value)
if enabled and remote_sandbox:
if not strict:
# Same explanation, no abort: a listing that silently drops the
# interpreter reads as "policy disabled it", which is the one
# conclusion a user debugging a missing tool must not draw.
conflict = _interpreter_sandbox_conflict(sandbox, deciding_rank)
sys.stderr.write(f"Warning: {conflict}\n")
return False
_exit_interpreter_conflicts_with_sandbox(sandbox, deciding_rank)View on GitHub (pinned to a1af029e6e)
Solutions
- Reinstall the package so the bundled manifest contains `interpreter.enable_interpreter`
- Regenerate the manifest in a development checkout so the interpreter option is registered
- Check for code/tests stubbing `get_option` and restore the entry
Example fix
// before
options = [o for o in manifest if o["name"] != "interpreter.enable_interpreter"]
// after
options.append({"name": "interpreter.enable_interpreter", "type": "bool", "default": False}) Defensive patterns
Strategy: validation
Validate before calling
from deepagents_code.config_manifest import get_option
if get_option("interpreter.enable_interpreter") is None:
raise SystemExit(
"manifest missing interpreter.enable_interpreter; reinstall package"
) Try / catch
try:
enabled = _resolve_interpreter_enabled(args)
except RuntimeError as exc:
logger.error("cannot resolve interpreter policy: %s", exc)
enabled = False # safe default: interpreter off Prevention
- Reinstall cleanly after upgrades rather than copying site-packages around
- Keep manifest generation in sync with option schema changes in development
- Never stub get_option in tests without registering all consumed keys
When it happens
Trigger: Any code path that resolves interpreter enablement — `cli_main`, `_run_tools_list`, or tests — running against a manifest that lacks the `interpreter.enable_interpreter` entry (stale/mismatched manifest or stripped distribution).
Common situations: Same family as [321]: partial upgrades leaving an old manifest on disk, custom builds that removed the option, or monkeypatched `get_option` in tests returning `None`.
Related errors
- interpreter.enable_interpreter is missing from the config ma
- interpreter.enable_interpreter is missing from the config ma
- shell.allow_list is missing from the configuration manifest
- thread display options are missing from the configuration ma
- {what} must be absolute: {path}
AI-assisted analysis of langchain-ai/deepagents@a1af029e6e (2026-08-29).
Data as JSON: /api/errors/2132b9bc1cba8b10.
Report an issue: GitHub.