langchain-ai/deepagents · warning
Skipping {group} plugin {plugin_label}: entry point {ep.valu
Error message
Skipping {group} plugin {plugin_label}: entry point {ep.value!r} did not resolve to a callable. What it means
Deep Agents loads builtin profile plugins via importlib entry points. After resolving an entry point, if the loaded object is not callable, `_invoke_profile_plugins` skips that plugin, logs, and emits this warning rather than crashing startup. The plugin's registration never runs.
Source
Thrown at libs/deepagents/deepagents/profiles/_builtin_profiles.py:229
eps = entry_points(group=group)
except Exception as exc: # noqa: BLE001
msg = f"Failed to enumerate {group} entry points; no third-party plugins in this group will load: {type(exc).__name__}: {exc}"
logger.warning(msg, exc_info=True)
warnings.warn(msg, stacklevel=2)
return
for ep in eps:
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
- Inspect the referenced entry-point value and make it point to a callable (module:function) that performs registration
- Reinstall/upgrade the offending plugin package so its metadata matches the current code
- Check for duplicate/stale installs (pip show / importlib.metadata.entry_points) pointing at outdated modules
Example fix
# before (pyproject.toml) [project.entry-points.deepagents_profiles] my_plugin = "mypkg.plugin" # after [project.entry-points.deepagents_profiles] my_plugin = "mypkg.plugin:register"
Defensive patterns
Strategy: validation
Validate before calling
from importlib.metadata import entry_points
for ep in entry_points(group="deepagents_profiles"):
obj = ep.load()
assert callable(obj), f"entry point {ep.value!r} is not callable" Type guard
def is_callable_entry_point(ep) -> bool:
try:
return callable(ep.load())
except Exception:
return False Try / catch
import warnings
with warnings.catch_warnings(record=True) as caught:
warnings.simplefilter("always")
load_profiles()
for w in caught:
if "did not resolve to a callable" in str(w.message):
logger.warning("plugin skipped: %s", w.message) Prevention
- Point entry points at module:function, never a bare module or attribute constant
- Re-run tests after renaming registration functions and update entry-point metadata
- Clean stale package installs; verify with importlib.metadata.entry_points in CI
When it happens
Trigger: An installed distribution declares an entry point (in the relevant plugin group) whose `ep.value` resolves to a module attribute that is not callable — e.g. pointing at a module, class attribute, or constant instead of a function.
Common situations: Hand-edited entry-point declarations in pyproject.toml/setup.cfg; renamed or moved registration functions after a package refactor so the entry-point target now resolves to a non-callable shim; stale installed metadata from an old version still on sys.path.
Related errors
- Skipping {group} plugin {plugin_label}: registration callabl
- Marketplace URL {_redact_url_credentials(url)} contains plug
- Marketplace URL {_redact_url_credentials(url)} only download
- Failed to enumerate {group} entry points; no third-party plu
- Skipping {group} plugin {plugin_label}: failed to load entry
AI-assisted analysis of langchain-ai/deepagents@a1af029e6e (2026-08-29).
Data as JSON: /api/errors/f73a1bab4265493f.
Report an issue: GitHub.