langchain-ai/deepagents · error · RuntimeError
missing update option: {option_key}
Error message
missing update option: {option_key} What it means
Raised when a config option key is not a known update-check option. The code resolves the key via get_option; unknown keys cannot be turned into a ConfigSources lookup. This protects against silently applying settings to nonexistent options.
Source
Thrown at libs/code/deepagents_code/update_check.py:4276
Returns:
Sources, manifest declaration, and ranked resolution.
Raises:
RuntimeError: If `option_key` is missing from the manifest.
"""
from deepagents_code.config_manifest import get_option
from deepagents_code.configuration.providers import TomlFileProvider
from deepagents_code.configuration.resolver import resolver_from_snapshots
from deepagents_code.configuration.service import (
ConfigSources,
get_managed_snapshot,
)
option = get_option(option_key)
if option is None:
msg = f"missing update option: {option_key}"
raise RuntimeError(msg)
resolver_option = (
replace(option, empty_env_is_false=True)
if option_key == "update.auto_update"
else option
)
sources = ConfigSources(
managed=get_managed_snapshot(),
user=TomlFileProvider("config.toml", DEFAULT_CONFIG_PATH).load(),
)
# Resolve against this exact snapshot generation: the caller reports the
# sources' health next to the value, so both must come from the same read
# rather than the shared process cache.
resolved = resolver_from_snapshots(managed=sources.managed, user=sources.user).get(
resolver_option
)
return sources, option, resolved
View on GitHub (pinned to a1af029e6e)
Solutions
- Use a valid option key such as 'update.auto_update' (check the options registry via get_option or docs).
- Fix typos: keys use dot-notation with underscores, e.g. update.auto_update.
- Check the library version for renamed/removed options and update callers.
Example fix
// before
resolve_option('update.autoupdate')
// after
resolve_option('update.auto_update') Defensive patterns
Strategy: validation
Validate before calling
if get_option(key) is None:
raise ValueError(f'unknown update option: {key}') Type guard
def is_known_option(key: str) -> bool:
return get_option(key) is not None Try / catch
try:
resolve_update_option(key)
except RuntimeError as e:
logger.error('bad option key: %s', e) Prevention
- Keep option keys centralized as constants instead of inline strings
- Check the options registry/docs after upgrading the library
- Use dot-notation with underscores exactly as documented (update.auto_update)
When it happens
Trigger: Calling the update-check option-resolution API (update_check.py, get_managed_snapshot path) with an option_key not registered in the options table, e.g. a misspelled key like 'update.autoupdate' instead of 'update.auto_update'.
Common situations: Typo in config key after a rename across versions; hand-written policy/config files with stale option names; scripts generated against an older library version.
Related errors
- modes can only be provided when agent is a factory
- models can only be provided when agent is a factory
- -32602
- recursion_limit must be None or a positive integer
- Invalid MCP config at {mcp_config_path}: {exc}
AI-assisted analysis of langchain-ai/deepagents@a1af029e6e (2026-08-29).
Data as JSON: /api/errors/5fbe43e6bcfed08e.
Report an issue: GitHub.