langchain-ai/deepagents · error · MarketplaceError

No marketplace manifest found under {root}

Error message

No marketplace manifest found under {root}

What it means

load_marketplace resolves the given root directory and searches for a marketplace manifest with find_marketplace_manifest. If no recognizable manifest file exists anywhere under the root, MarketplaceError 'No marketplace manifest found under {root}' is raised. This is the discovery-failure case, distinct from a manifest that exists but is invalid.

Source

Thrown at libs/code/deepagents_code/plugins/marketplace.py:858


def load_marketplace(root: Path) -> PluginMarketplace:
    """Load a marketplace manifest from a root directory.

    Args:
        root: Marketplace root directory.

    Returns:
        Parsed marketplace.

    Raises:
        MarketplaceError: If no marketplace manifest exists or it is invalid.
    """
    root = root.expanduser().resolve()
    manifest_path = find_marketplace_manifest(root)
    if manifest_path is None:
        msg = f"No marketplace manifest found under {root}"
        raise MarketplaceError(msg)
    return _load_marketplace_from_path(root, manifest_path)

View on GitHub (pinned to a1af029e6e)

Solutions

  1. Verify the directory contains the expected manifest filename (e.g. marketplace.json / .marketplace.json) with `ls`; point load_marketplace at the directory that actually holds it.
  2. Fix the configured path/typo in your marketplace settings.
  3. If the manifest is at the repo root but you pass a subdirectory, pass the root; complete a partial clone (`git checkout`) if files are missing.

Example fix

// before
mp = load_marketplace(Path('~/src/team-market/plugins'))
// after (manifest lives at repo root)
mp = load_marketplace(Path('~/src/team-market'))
Defensive patterns

Strategy: validation

Validate before calling

from pathlib import Path

def marketplace_root_ok(root: str) -> bool:
    r = Path(root).expanduser().resolve()
    return r.is_dir() and any(r.glob("*.json"))  # then confirm the manifest filename matches the library's expectation

Type guard

def is_marketplace_dir(p: object) -> TypeGuard[Path]:
    return isinstance(p, Path) and p.is_dir() and find_marketplace_manifest(p) is not None

Try / catch

from deepagents_code.plugins import MarketplaceError
try:
    mp = load_marketplace(Path(path_arg))
except MarketplaceError as exc:
    if str(exc).startswith("No marketplace manifest"):
        print(f"{path_arg} has no marketplace manifest; point at the dir containing it")
        sys.exit(2)

Prevention

When it happens

Trigger: Calling load_marketplace(root) (directly or via add_local_marketplace, _validate_marketplace_repository, materialize_marketplace_source, load_marketplace_location) with a directory that contains no manifest matching find_marketplace_manifest's expected filename(s).

Common situations: Pointing at the wrong directory (repo root instead of subdirectory holding the manifest, or vice versa); cloning a repo that stores the manifest under a different name; typos in the configured marketplace path; empty or partially cloned checkout.

Related errors


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