HKUDS/nanobot · error · TypeError
ChannelPlugin.management.default_config for '{plugin.name}'
Error message
ChannelPlugin.management.default_config for '{plugin.name}' must return a dict What it means
Error "ChannelPlugin.management.default_config for '{plugin.name}' must return a dict" thrown in HKUDS/nanobot.
Source
Thrown at nanobot/channels/contracts.py:290
for name, field in plugin.setup.fields.items():
value: Any = field.default
if value is None:
fallback_defaults: dict[str, Any] = {
"string": "",
"secret": "",
"list": [],
"bool": False,
}
value = fallback_defaults.get(field.kind, _MISSING)
if value is not _MISSING:
_assign_channel_field(defaults, name, deepcopy(value))
factory = plugin.management.default_config
if factory is None:
return defaults
values_raw = cast(object, factory())
if not isinstance(values_raw, dict):
raise TypeError(f"ChannelPlugin.management.default_config for '{plugin.name}' must return a dict")
values = cast(dict[str, Any], values_raw)
return cast(dict[str, Any], merge_missing_defaults(values, defaults))
def _assign_channel_field(values: dict[str, Any], field: str, value: Any) -> None:
target = values
parts = field.split(".")
for part in parts[:-1]:
nested: object = target.get(part)
if not isinstance(nested, dict):
nested = {}
target[part] = nested
target = cast(dict[str, Any], nested)
target[parts[-1]] = value
def channel_local_state_present(plugin: ChannelPlugin, section: Any) -> bool:
checker = plugin.management.local_state_presentView on GitHub (pinned to 42f37dc4c0)
When it happens
Trigger: Thrown at nanobot/channels/contracts.py:290 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/68914d7e2d00b889.
Report an issue: GitHub.