langchain-ai/deepagents · error

Skipping {group} plugin {plugin_label}: registration callabl

Error message

Skipping {group} plugin {plugin_label}: registration callable {ep.value!r} raised: {type(exc).__name__}: {exc}

What it means

A warning emitted when a profile plugin's entry point loads successfully and resolves to a callable, but invoking that registration callable raises. The plugin's registrations are silently absent from deepagents, so this is logged at ERROR with a traceback to make the loss visible. Only the offending plugin is skipped; others in the group load normally.

Source

Thrown at libs/deepagents/deepagents/profiles/_builtin_profiles.py:236

        plugin_label = _format_plugin_label(ep)
        try:
            register = ep.load()
        except Exception as exc:
            msg = f"Skipping {group} plugin {plugin_label}: failed to load entry point {ep.value!r}: {type(exc).__name__}: {exc}"
            logger.exception(msg)
            warnings.warn(msg, stacklevel=2)
            continue
        if not callable(register):
            msg = f"Skipping {group} plugin {plugin_label}: entry point {ep.value!r} did not resolve to a callable."
            logger.error(msg)
            warnings.warn(msg, stacklevel=2)
            continue
        try:
            register()
        except Exception as exc:
            msg = f"Skipping {group} plugin {plugin_label}: registration callable {ep.value!r} raised: {type(exc).__name__}: {exc}"
            logger.exception(msg)
            warnings.warn(msg, stacklevel=2)

View on GitHub (pinned to a1af029e6e)

Solutions

  1. Read the ERROR log traceback to see the exception raised inside the plugin's registration callable.
  2. Fix the plugin's `register` function (validate inputs, guard optional config) if it is your own code.
  3. Check required environment variables / configuration the plugin expects and supply them.
  4. Upgrade or downgrade the plugin to match your installed deepagents version's registration API.
  5. Uninstall the plugin if its profiles aren't needed — the rest of the group still registers.

Example fix

# before (plugin side)
def register():
    register_provider_profile(name="x", model=os.environ["MISSING_KEY_MODEL"])  # KeyError

# after
def register():
    model = os.environ.get("MISSING_KEY_MODEL")
    if not model:
        return  # or raise a clear, documented error
    register_provider_profile(name="x", model=model)
Defensive patterns

Strategy: try-catch

Validate before calling

from importlib.metadata import entry_points
for ep in entry_points(group='deepagents.provider_profiles'):
    register = ep.load()
    if callable(register):
        try:
            register()
        except Exception as e:
            print(f"plugin {ep.value!r} registration will fail: {type(e).__name__}: {e}")

Type guard

def registers_cleanly(entry_point) -> bool:
    try:
        hook = entry_point.load()
        if not callable(hook):
            return False
        hook()
        return True
    except Exception:
        return False

Try / catch

import warnings
with warnings.catch_warnings(record=True) as caught:
    warnings.simplefilter("always")
    load_app()
failed = [str(w.message) for w in caught if "registration callable" in str(w.message)]
if failed:
    fix_or_uninstall_plugins(failed)  # tracebacks are in the ERROR log lines

Prevention

When it happens

Trigger: During `_invoke_profile_plugins`, the loaded `register()` hook raises at call time — e.g. the plugin registers a provider profile with invalid data (`ValueError`/`TypeError`), or its registration code touches unavailable state (missing env vars, incompatible deepagents registration API).

Common situations: A plugin written for a different deepagents version calling a changed `register_*_profile` signature; a plugin requiring configuration (API keys, env vars) not present in the environment; a genuine bug in the plugin's registration logic.

Related errors


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