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

  1. Restore/refresh the config manifest so both `extensions.enabled` and `extensions.trust` are declared
  2. Reinstall or update dcode to realign the binary with its manifest
  3. 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

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


AI-assisted analysis of langchain-ai/deepagents@a1af029e6e (2026-08-29). Data as JSON: /api/errors/8a780ef684fa8d5a. Report an issue: GitHub.