HKUDS/nanobot · error · TypeError
ChannelPlugin.management.feature_instances for '{plugin.name
Error message
ChannelPlugin.management.feature_instances for '{plugin.name}' must return a list of dicts or None What it means
Error "ChannelPlugin.management.feature_instances for '{plugin.name}' must return a list of dicts or None" thrown in HKUDS/nanobot.
Source
Thrown at nanobot/channels/contracts.py:477
def channel_feature_instances(
plugin: ChannelPlugin,
section: Any,
*,
setup_spec: ChannelSetupSpec | None = None,
) -> list[dict[str, Any]] | None:
factory = plugin.management.feature_instances
overrides = (
cast(object, factory(section, setup_spec=setup_spec))
if factory is not None
else None
)
if overrides is None and not plugin.management.multi_instance:
return None
if overrides is not None and (
not isinstance(overrides, list)
or any(not isinstance(instance, dict) for instance in cast(list[object], overrides))
):
raise TypeError(
f"ChannelPlugin.management.feature_instances for '{plugin.name}' "
"must return a list of dicts or None"
)
enabled_ids = {
spec.instance_id for spec in channel_instance_specs(plugin, section, enabled_only=True)
}
instances = [
_channel_feature_instance(
plugin.name,
spec,
setup_spec,
enabled=spec.instance_id in enabled_ids,
)
for spec in channel_instance_specs(plugin, section, enabled_only=False)
]
if overrides is None:View on GitHub (pinned to 42f37dc4c0)
When it happens
Trigger: Thrown at nanobot/channels/contracts.py:477 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of HKUDS/nanobot@42f37dc4c0 (2026-08-26).
Data as JSON: /api/errors/44b8c38e0b006da0.
Report an issue: GitHub.