langchain-ai/deepagents · error · MarketplaceError
Plugin {plugin_id!r} not found in marketplace {marketplace_n
Error message
Plugin {plugin_id!r} not found in marketplace {marketplace_name} What it means
The marketplace was found but contains no plugin entry whose name matches the plugin half of the id, so _resolve_marketplace_and_entry raises MarketplaceError. It distinguishes 'marketplace exists, plugin missing' from the not-configured case, pointing at a mismatch between the requested name and the marketplace's plugin list.
Source
Thrown at libs/code/deepagents_code/plugins/discovery.py:199
plugin_id: str,
) -> tuple[PluginMarketplace, MarketplacePluginEntry]:
try:
plugin_name, marketplace_name = split_plugin_id(plugin_id)
except ValueError as exc:
raise MarketplaceError(str(exc)) from exc
records = load_marketplace_records()
record = records.get(marketplace_name)
if record is None:
msg = f"Marketplace {marketplace_name!r} is not configured"
raise MarketplaceError(msg)
marketplace = load_marketplace_location(Path(record.install_location))
entry = next(
(plugin for plugin in marketplace.plugins if plugin.name == plugin_name),
None,
)
if entry is None:
msg = f"Plugin {plugin_id!r} not found in marketplace {marketplace_name}"
raise MarketplaceError(msg)
return marketplace, entry
@plugin_mutation_lock()
def install_plugin(plugin_id: str) -> PluginInstance:
"""Install a marketplace plugin into the versioned cache and enable it.
Copies the plugin source into `plugins/cache/{marketplace}/{plugin}/{version}/`,
writes `installed_plugins.json`, and enables the plugin.
Args:
plugin_id: Plugin id in `{name}@{marketplace}` form.
Returns:
Discovered plugin instance loaded from the cache path.
Raises:
MarketplaceError: If the marketplace/plugin cannot be resolved, theView on GitHub (pinned to a1af029e6e)
Solutions
- Browse the marketplace's plugin list (`plugin marketplace list` / its manifest) and use the exact entry name.
- Refresh/re-add the marketplace source so the local record picks up current plugins.
- Check for renames upstream and use the new plugin name.
- Verify you are targeting the marketplace that actually publishes this plugin.
Example fix
// before $ dcode plugin install widgett@internal MarketplaceError: Plugin 'widgett@internal' not found in marketplace internal // after (correct name from marketplace listing) $ dcode plugin install widget@internal
Defensive patterns
Strategy: validation
Validate before calling
def ensure_entry(marketplace, plugin_name: str) -> None:
names = {p.name for p in marketplace.plugins}
if plugin_name not in names:
raise SystemExit(f"{plugin_name!r} not in marketplace; available: {sorted(names)}") Type guard
def entry_exists(marketplace, plugin_name: str) -> bool:
return any(p.name == plugin_name for p in marketplace.plugins) Try / catch
try:
install_plugin("widget@internal")
except MarketplaceError as exc:
if "not found in marketplace" in str(exc):
print("refresh the marketplace or correct the plugin name")
else:
raise Prevention
- List the marketplace's plugins and copy names verbatim.
- Refresh the marketplace source so the local record is current.
- Watch upstream renames/removals; pin versions where possible.
- Confirm the plugin is published in the marketplace you target.
- Avoid using internal codenames instead of published names.
When it happens
Trigger: install_plugin resolves the marketplace record and loads it, then the linear scan over marketplace.plugins finds no entry with entry.name == plugin_name.
Common situations: Typo in the plugin name; the plugin was removed or renamed upstream and the local marketplace cache is stale; using an internal/codename instead of the published name; the marketplace source updated and the entry no longer exists.
Related errors
- Failed to install {args.plugin_id}: {exc}
- Failed to add marketplace {source}: {redact_urls_in_text(str
- Marketplace {marketplace_name!r} is not configured
- Installed {plugin_id} but failed to load from cache: {detail
- Marketplace {record.name!r} now declares the name {marketpla
AI-assisted analysis of langchain-ai/deepagents@a1af029e6e (2026-08-29).
Data as JSON: /api/errors/673cafcee33cde71.
Report an issue: GitHub.