langchain-ai/deepagents · error · RuntimeError
Extension options are missing from the config manifest
Error message
Extension options are missing from the config manifest
What it means
`load_extension_settings` reads the `extensions.enabled` and `extensions.trust` options from the config option registry; if either is not registered in the config manifest it raises `RuntimeError`. This is an internal-consistency guard: the application manifest is expected to always declare both options, so their absence means a broken/partial config schema rather than user misconfiguration.
Source
Thrown at libs/code/deepagents_code/extensions/settings.py:102
def load_extension_settings() -> ExtensionSettings:
"""Resolve extension settings through the shared config generation.
Returns:
Effective settings with safe defaults for malformed values.
Raises:
RuntimeError: If the extension manifest options are unavailable.
"""
from deepagents_code.config_manifest import _emit_ranked_diagnostics, get_option
resolver = get_config_resolver()
enabled_option = get_option("extensions.enabled")
trust_option = get_option("extensions.trust")
if enabled_option is None or trust_option is None:
msg = "Extension options are missing from the config manifest"
raise RuntimeError(msg)
enabled_resolved = resolver.get(enabled_option)
_emit_ranked_diagnostics(enabled_option, enabled_resolved)
trust_resolved = resolver.get(trust_option)
_emit_ranked_diagnostics(trust_option, trust_resolved)
enabled = cast("bool", enabled_resolved.value)
trust = TrustPolicy(cast("str", trust_resolved.value))
section = _read_config_section(resolver)
return ExtensionSettings(
enabled=enabled,
trust=trust,
extra_paths=_parse_paths(section.get("extra_paths"), name="extra_paths"),
)
View on GitHub (pinned to a1af029e6e)
Solutions
- Restore/refresh the config manifest so both `extensions.enabled` and `extensions.trust` are declared
- Reinstall or update dcode to realign the binary with its manifest
- If embedding the SDK, register the extension options in your custom option registry before calling this function
Example fix
// before resolver = get_config_resolver() # built from a custom subset of options settings = load_extension_settings() // after register_default_options() # ensure full manifest, incl. extensions.enabled/.trust resolver = get_config_resolver() settings = load_extension_settings()
Defensive patterns
Strategy: try-catch
Validate before calling
from deepagents_code.config import get_option
if get_option("extensions.enabled") is None or get_option("extensions.trust") is None:
raise RuntimeError("config manifest lacks extensions options") Type guard
def manifest_supports_extensions(get_option) -> bool:
return get_option("extensions.enabled") is not None and get_option("extensions.trust") is not None Try / catch
try:
settings = load_extension_settings()
except RuntimeError as exc:
logger.error("config manifest incomplete: %s", exc) Prevention
- Register default options from the full manifest before reading settings
- Keep binary and config manifest versions in sync
- In embedded/SDK use, call the option-registration bootstrap first
When it happens
Trigger: Calling `load_extension_settings` when the option registry was not populated from the full config manifest — e.g. a stripped/custom manifest missing `extensions.enabled` or `extensions.trust`, an outdated bundled manifest, or code paths constructing a resolver before options are registered.
Common situations: Pinned older config manifest shipped with a newer binary (version skew); tests or tools that spin up a resolver with a hand-built option set; corrupted or partially-written application config schema.
Related errors
- {what} must be absolute: {path}
- Could not determine the home directory: set $HOME, or set DE
- Home directory is not absolute: {launch_home}. Set $HOME to
- Cannot determine whether {str(left)!r} is {str(right)!r}: {e
- Invalid DEEPAGENTS_HOME {str(root)!r}: exists but cannot be
AI-assisted analysis of langchain-ai/deepagents@a1af029e6e (2026-08-29).
Data as JSON: /api/errors/8a780ef684fa8d5a.
Report an issue: GitHub.