{"record":{"id":"673cafcee33cde71","repo":"langchain-ai/deepagents","slug":"plugin-plugin-id-r-not-found-in-marketplace-mar","errorCode":null,"errorMessage":"Plugin {plugin_id!r} not found in marketplace {marketplace_name}","messagePattern":"Plugin (.+?) not found in marketplace (.+?)","errorType":"exception","errorClass":"MarketplaceError","httpStatus":null,"severity":"error","filePath":"libs/code/deepagents_code/plugins/discovery.py","lineNumber":199,"sourceCode":"    plugin_id: str,\n) -> tuple[PluginMarketplace, MarketplacePluginEntry]:\n    try:\n        plugin_name, marketplace_name = split_plugin_id(plugin_id)\n    except ValueError as exc:\n        raise MarketplaceError(str(exc)) from exc\n    records = load_marketplace_records()\n    record = records.get(marketplace_name)\n    if record is None:\n        msg = f\"Marketplace {marketplace_name!r} is not configured\"\n        raise MarketplaceError(msg)\n    marketplace = load_marketplace_location(Path(record.install_location))\n    entry = next(\n        (plugin for plugin in marketplace.plugins if plugin.name == plugin_name),\n        None,\n    )\n    if entry is None:\n        msg = f\"Plugin {plugin_id!r} not found in marketplace {marketplace_name}\"\n        raise MarketplaceError(msg)\n    return marketplace, entry\n\n\n@plugin_mutation_lock()\ndef install_plugin(plugin_id: str) -> PluginInstance:\n    \"\"\"Install a marketplace plugin into the versioned cache and enable it.\n\n    Copies the plugin source into `plugins/cache/{marketplace}/{plugin}/{version}/`,\n    writes `installed_plugins.json`, and enables the plugin.\n\n    Args:\n        plugin_id: Plugin id in `{name}@{marketplace}` form.\n\n    Returns:\n        Discovered plugin instance loaded from the cache path.\n\n    Raises:\n        MarketplaceError: If the marketplace/plugin cannot be resolved, the","sourceCodeStart":181,"sourceCodeEnd":217,"githubUrl":"https://github.com/langchain-ai/deepagents/blob/a1af029e6e73cb17c36bff823d227747b28e91e1/libs/code/deepagents_code/plugins/discovery.py#L181-L217","documentation":"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.","triggerScenarios":"install_plugin resolves the marketplace record and loads it, then the linear scan over marketplace.plugins finds no entry with entry.name == plugin_name.","commonSituations":"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.","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."],"exampleFix":"// before\n$ dcode plugin install widgett@internal\nMarketplaceError: Plugin 'widgett@internal' not found in marketplace internal\n// after (correct name from marketplace listing)\n$ dcode plugin install widget@internal","handlingStrategy":"validation","validationCode":"def ensure_entry(marketplace, plugin_name: str) -> None:\n    names = {p.name for p in marketplace.plugins}\n    if plugin_name not in names:\n        raise SystemExit(f\"{plugin_name!r} not in marketplace; available: {sorted(names)}\")","typeGuard":"def entry_exists(marketplace, plugin_name: str) -> bool:\n    return any(p.name == plugin_name for p in marketplace.plugins)","tryCatchPattern":"try:\n    install_plugin(\"widget@internal\")\nexcept MarketplaceError as exc:\n    if \"not found in marketplace\" in str(exc):\n        print(\"refresh the marketplace or correct the plugin name\")\n    else:\n        raise","preventionTips":["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."],"tags":["marketplace","plugin-not-found"],"backgroundTag":"plugin-not-found-in-marketplace","analyzedSha":"a1af029e6e73cb17c36bff823d227747b28e91e1","analyzedAt":"2026-08-29T11:43:24.718Z","schemaVersion":2},"datasetVersion":"2026-08-29T12:17:43.993Z"}