Skip to content

[Bug]: Embedded direct lane fails to materialize allowlisted plugin tool #78907

Description

@Haaaiawd

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

  1. Configure (<plugin_tool_name> is the tool registered by your plugin, for example second_nature_ops):
    tools:
      allow:
        - <plugin_tool_name>
  2. Start gateway in foreground and confirm:
    • [second-nature] module evaluated
    • [second-nature] register() entered ...
    • [second-nature] register() completed
  3. Trigger Feishu direct-lane dispatch (session:agent:main:feishu:direct:*) by sending a DM.
  4. 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).

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Normal backlog priority with limited blast radius.bugSomething isn't workingbug:behaviorIncorrect behavior without a crashimpact:message-lossChannel message delivery can be lost, duplicated, or misrouted.staleMarked as stale due to inactivity

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions