Bug type
Behavior bug (incorrect output/state without crash)
Beta release blocker
No
Summary
In OpenClaw 2026.5.6 embedded direct-lane runs (feishu:direct), explicit tools.allow for a plugin tool (second_nature_ops) can result in an empty callable tool set even though the plugin is loaded and register() completes.
Steps to reproduce
- Configure (
<plugin_tool_name> is the tool registered by your plugin, for example second_nature_ops):
tools:
allow:
- <plugin_tool_name>
- Start gateway in foreground and confirm:
[second-nature] module evaluated
[second-nature] register() entered ...
[second-nature] register() completed
- Trigger Feishu direct-lane dispatch (
session:agent:main:feishu:direct:*) by sending a DM.
- Observe:
No callable tools remain after resolving explicit tool allowlist (tools.allow: <plugin_tool_name>); no registered tools matched.
Expected behavior
A plugin tool explicitly listed in tools.allow (<plugin_tool_name>) should be materialized into the callable tool set for embedded direct-lane runs.
Actual behavior
The embedded run fails before reply with:
No callable tools remain after resolving explicit tool allowlist (tools.allow: <plugin_tool_name>); no registered tools matched.
This occurs in the same runtime where plugin register() has already completed.
OpenClaw version
2026.5.6
Operating system
Ubuntu 24.04
Install method
npm global
Model
deepseek/deepseek-v4-flash
Provider / routing chain
openclaw -> deepseek
Additional provider/model setup details
No response
Logs, screenshots, and evidence
evidence set:
[second-nature] module evaluated
[second-nature] register() entered, api keys=...
[second-nature] register() completed
2026-05-07T10:01:02.802+00:00 [gateway] http server listening (3 plugins: feishu, memory-core, second-nature; 10.3s)
2026-05-07T10:01:48.106+00:00 [feishu] feishu[default]: dispatching to agent (session=agent:main:feishu:direct:ou_...)
2026-05-07T10:01:52.142+00:00 [agent/embedded] [tools] No callable tools remain after resolving explicit tool allowlist (tools.allow: <plugin_tool_name>); no registered tools matched.
2026-05-07T10:01:52.187+00:00 [diagnostic] lane task error: lane=session:agent:main:feishu:direct:ou_... error="Error: No callable tools remain..."
Control run (without `tools.allow`):
2026-05-07T10:03:56.480+00:00 [feishu] feishu[default]: dispatching to agent (session=agent:main:feishu:direct:ou_...)
[second-nature] register() entered, api keys=...
[second-nature] register() completed
# In this run window, the "No callable tools remain..." error line does not appear.
Impact and severity
- Affected: embedded direct-lane runs with explicit
tools.allow targeting plugin tool second_nature_ops (observed on Feishu direct lane).
- Severity: High (blocks plugin tool invocation on affected lane).
- Frequency: Reproduced consistently under the stated config in observed runs.
- Consequence: Embedded run fails before reply; plugin tool cannot be called despite successful plugin registration.
Additional information
Control run without tools.allow does not hit the No callable tools remain... error path in the same lane.
In the same control context, the agent can identify the plugin tool (second_nature_ops).
Bug type
Behavior bug (incorrect output/state without crash)
Beta release blocker
No
Summary
In OpenClaw 2026.5.6 embedded direct-lane runs (feishu:direct), explicit tools.allow for a plugin tool (second_nature_ops) can result in an empty callable tool set even though the plugin is loaded and register() completes.
Steps to reproduce
<plugin_tool_name>is the tool registered by your plugin, for examplesecond_nature_ops):[second-nature] module evaluated[second-nature] register() entered ...[second-nature] register() completedsession:agent:main:feishu:direct:*) by sending a DM.No callable tools remain after resolving explicit tool allowlist (tools.allow: <plugin_tool_name>); no registered tools matched.Expected behavior
A plugin tool explicitly listed in
tools.allow(<plugin_tool_name>) should be materialized into the callable tool set for embedded direct-lane runs.Actual behavior
The embedded run fails before reply with:
No callable tools remain after resolving explicit tool allowlist (tools.allow: <plugin_tool_name>); no registered tools matched.This occurs in the same runtime where plugin
register()has already completed.OpenClaw version
2026.5.6
Operating system
Ubuntu 24.04
Install method
npm global
Model
deepseek/deepseek-v4-flash
Provider / routing chain
openclaw -> deepseek
Additional provider/model setup details
No response
Logs, screenshots, and evidence
Impact and severity
tools.allowtargeting plugin toolsecond_nature_ops(observed on Feishu direct lane).Additional information
Control run without
tools.allowdoes not hit theNo callable tools remain...error path in the same lane.In the same control context, the agent can identify the plugin tool (
second_nature_ops).