#My OpenClaw Agent wants to use the tool unknown

1 messages · Page 1 of 1 (latest)

hollow terrace
#

I wanted i to let it configure a skill, but it was not doing anything, so I checked in the ControlUi and it was trying to use the tool „unknown“! I am on an LXC at Proxmox. On the Version 2026.4.21 logs are following.

dreamy mistBOT
#

To help others find answers, you can mark your question as solved via Right click solution message -> Apps -> âś… Mark Solution

balmy bobcatBOT
slim monolithBOT
#

2026.4.21, got it. I don’t think the LXC/Proxmox part is the main culprit.

tool: "unknown" usually means one of these:

  • the model/backend emitted a malformed or hallucinated tool name
  • OpenClaw inserted a synthetic repair entry because a tool result went missing in session history

So it is usually not a real built-in tool named unknown.

Also, I don’t actually see the log snippet in your post. Can you paste:

openclaw status --all
openclaw doctor
openclaw logs --follow

and include the 30 to 50 lines around the failure?

#

Useful extra info:

  • which model/provider that agent is using
  • hosted vs local OpenAI-compatible backend
  • whether the log contains missing tool result in session history or Unknown tool: ...

One useful detail: there is no special “configure skill” tool. For skill setup the agent should normally use regular tools like read, write, edit, sometimes exec. So seeing unknown is definitely abnormal.

Docs:
https://docs.openclaw.ai/help/troubleshooting
https://docs.openclaw.ai/help/faq

If you’re on a local OpenAI-compatible model, that’s a pretty common place for malformed tool calls, so I’d especially want to know that.

hollow terrace
#

So I was using Kimi-K2.5 via Nvidia but it also happens when using gemini via the official intigration oder groq.com! Available tools

Profile: coding

Built-in tools
edit, exec, image, image_generate, music_generate, process, read, sessions_history, sessions_send, session_status, sessions_list, sessions_spawn, subagents, video_generate, web_fetch, write, sessions_yield

Use /tools verbose for descriptions.

slim monolithBOT
#

I think this is not your LXC/Proxmox setup, and probably not Kimi/Gemini/Groq specifically either.

What you’re describing fits a 2026.4.21 embedded tool-runtime bug pretty well:

  • tools show up in /tools
  • but the run loses the real active tool allowlist / activation state
  • then the UI can end up showing unknown

There were multiple fixes on main right after 2026.4.21 in exactly that area, around:

  • restoring Pi embedded tool allowlists
  • restoring tool activation
  • keeping custom tools executable
  • passing the embedded tool allowlist correctly to sessions

So my recommendation is:

  1. Update to a build newer than 2026.4.21
  2. Start a fresh session/thread after updating
#

old transcript state can keep replaying bad tool history
3. Run:

openclaw --version
openclaw doctor
openclaw logs --follow

If it still happens after updating, please paste the exact lines around any of these:

  • Tool not available: ...
  • missing tool result in session history
  • tool loop
  • unknown_tool_repeat

Also, small but important: there is no special “configure skill” tool. Skill setup should normally just use regular tools like read, write, edit, and sometimes exec, so unknown is definitely not expected.

Docs:

hollow terrace
#

2026-04-24T07:44:44.451Z warn bonjour {"subsystem":"bonjour"} watchdog detected non-announced service; attempting re-advertise (gateway fqdn=openclaw (40)._openclaw-gw._tcp.local. host=openclaw-(40).local. port=18789 state=probing)
2026-04-24T07:44:46.413Z warn bonjour {"subsystem":"bonjour"} gateway name conflict resolved; newName="openclaw (41)"
2026-04-24T07:44:46.414Z warn bonjour {"subsystem":"bonjour"} gateway hostname conflict resolved; newHostname="openclaw-(41)"
2026-04-24T07:45:44.455Z warn bonjour {"subsystem":"bonjour"} watchdog detected non-announced service; attempting re-advertise (gateway fqdn=openclaw (41)._openclaw-gw._tcp.local. host=openclaw-(41).local. port=18789 state=probing)
2026-04-24T07:45:46.411Z warn bonjour {"subsystem":"bonjour"} gateway name conflict resolved; newName="openclaw (42)"
2026-04-24T07:45:46.413Z warn bonjour {"subsystem":"bonjour"} gateway hostname conflict resolved; newHostname="openclaw-(42)"
2026-04-24T07:46:44.457Z warn bonjour {"subsystem":"bonjour"} watchdog detected non-announced service; attempting re-advertise (gateway fqdn=openclaw (42)._openclaw-gw._tcp.local. host=openclaw-(42).local. port=18789 state=probing)
2026-04-24T07:46:46.434Z warn bonjour {"subsystem":"bonjour"} gateway name conflict resolved; newName="openclaw (43)"
2026-04-24T07:46:46.436Z warn bonjour {"subsystem":"bonjour"} gateway hostname conflict resolved; newHostname="openclaw-(43)"
2026-04-24T07:47:44.459Z warn bonjour {"subsystem":"bonjour"} watchdog detected non-announced service; attempting re-advertise (gateway fqdn=openclaw (43)._openclaw-gw._tcp.local. host=openclaw-(43).local. port=18789 state=unannounced)
2026-04-24T07:47:46.512Z warn bonjour {"subsystem":"bonjour"} gateway name conflict resolved; newName="openclaw (44)"
2026-04-24T07:47:46.513Z warn bonjour {"subsystem":"bonjour"} gateway hostname conflict resolved; newHostname="openclaw-(44)"

slim monolithBOT
#

Those lines are Bonjour/mDNS discovery logs, not the unknown tool bug.

What they mean:

  • OpenClaw is trying to advertise itself on LAN as _openclaw-gw._tcp.local
  • something keeps causing a name/hostname conflict
  • so it renames itself openclaw (41), (42), (43) and retries

So this is usually:

  • another OpenClaw gateway on the same LAN, or
  • broken/stale mDNS/Avahi behavior, which can happen in LXC/container setups

For your original problem, I still think the unknown tool issue is the 2026.4.21 tool/runtime bug, and these Bonjour lines are a separate distraction.

What I’d do:

  1. Update past 2026.4.21
  2. If you do not need LAN auto-discovery, disable Bonjour:
#
  • set discovery.mdns.mode: "off" in config, or
    • run openclaw plugins disable bonjour
  1. Restart the gateway
  2. Start a fresh session/thread and retry the skill action

If you do need Bonjour discovery, then also check:

  • only one gateway instance is running
  • the container/host isn’t duplicating Avahi/mDNS announcements
  • give it a unique mDNS hostname with OPENCLAW_MDNS_HOSTNAME

Docs:

If you can, paste the log lines around the actual failed run, especially anything containing:

  • Tool not available
#
  • missing tool result in session history
  • tool loop
  • unknown_tool_repeat

That would be the log that actually matters for the unknown tool issue.

hollow terrace
#

Ich habe die letzten 200 Logs durchsucht, aber keine Einträge zu diesen Fehlermustern gefunden:

• Tool not available
• missing tool result in session history
• tool loop
• unknown_tool_repeat

Die Logs sind sauber bezĂĽglich dieser spezifischen Tool-Probleme. Soll ich nach anderen Fehlermustern suchen oder die Logs nach etwas anderem durchforsten?

slim monolithBOT
#

Ja, aber ich wĂĽrde nicht blind weiter nur im Gateway-Log suchen.
Dass dort keine Treffer fĂĽr diese Muster auftauchen, ist schon ein gutes Signal:

Das spricht eher fĂĽr eines von diesen Dingen:

  1. Control UI Fallback zeigt unknown, weil im Transcript toolName fehlt
  2. kaputte/stale Session-History
  3. der 2026.4.21 Pi embedded/tool allowlist Bug, den ich weiter oben meinte

Ich wĂĽrde jetzt gezielt so weitermachen:

1) Erst updaten, dann neue Session/Thread

Nicht dieselbe alte Session weiterverwenden, sonst schleppst du evtl. kaputte History mit.

2) Nicht nur Logs, sondern die Session-Datei prĂĽfen

Eher dort als im Gateway-Log:

#
rg -n '"toolName":"unknown"|missing tool result|toolName|tool_name|toolCallId' \
  ~/.openclaw/agents/*/sessions ~/.openclaw/sessions 2>/dev/null

Wenn da toolName: "unknown" oder seltsame ToolResult-Einträge auftauchen, sind wir näher dran.

3) Wenn möglich: Session exportieren

Im betroffenen Chat:

/export-session

oder noch besser:

#
/export-trajectory

Trajectory ist quasi der Flight Recorder und oft viel hilfreicher als das normale Log.
Docs: https://docs.openclaw.ai/tools/trajectory
Slash commands: https://docs.openclaw.ai/tools/slash-commands

4) Falls du doch noch weiter im Log suchen willst, dann eher nach:

  • before_tool_call hook failed
  • plugin approval gateway request failed
  • tool_result
  • replay
  • session
  • malformed

Aber ehrlich, Transcript/Export ist jetzt der bessere nächste Schritt.

#

Wenn du magst, schick als Nächstes entweder:

  • den Output von dem rg auf den Session-Dateien, oder
  • den relevanten Ausschnitt aus /export-session bzw. /export-trajectory

Dann kann ich es deutlich genauer eingrenzen.

hollow terrace
#

wurde das Peoblem in der Version 2026.4.22 gelöst, gibt es schon eine neuere Version?

slim monolithBOT
#

Ja, 2026.4.22 ist aktuell die neueste npm-Version.

Und ja, ich wĂĽrde sagen, dein Problem ist sehr wahrscheinlich in 2026.4.22 mit adressiert worden. Direkt nach 2026.4.21 kamen mehrere Fixes genau in dem Bereich rein, unter anderem fĂĽr:

  • Pi embedded tool allowlist
  • tool activation
  • custom tools bleiben executable
  • allowlist wird korrekt an Sessions weitergegeben

Also meine klare Empfehlung:

  1. auf 2026.4.22 updaten
  2. danach eine neue Session / einen neuen Thread starten
  3. prĂĽfen mit:
    openclaw --version
    
hollow terrace
#

So, I updated now! The Problem is still there. Here are the logs: 12:49:45+00:00 info gateway/ws {"subsystem":"gateway/ws"} webchat connected conn=6c98edad-d958-4819-8555-ef8248d746be remote=192.168.178.112 client=openclaw-control-ui webchat v2026.4.15
12:49:45+00:00 info gateway/ws {"subsystem":"gateway/ws"} ⇄ res ✗ chat.history 1ms errorCode=UNAVAILABLE errorMessage=chat.history unavailable during gateway startup conn=6c98edad…46be id=a69596ca…272b
12:49:45+00:00 info gateway/ws {"subsystem":"gateway/ws"} ⇄ res ✗ models.list 0ms errorCode=UNAVAILABLE errorMessage=models.list unavailable during gateway startup conn=6c98edad…46be id=e5aba114…fbb6
12:49:45+00:00 info gateway/ws {"subsystem":"gateway/ws"} ⇄ res ✓ commands.list 350ms conn=6c98edad…46be id=c08bbf94…abdb
12:49:45+00:00 info gateway/ws {"subsystem":"gateway/ws"} ⇄ res ✓ health 410ms conn=6c98edad…46be id=32bac611…2119
12:49:45+00:00 info gateway/ws {"subsystem":"gateway/ws"} ⇄ res ✓ node.list 417ms conn=6c98edad…46be id=33be2d4a…dc74
12:49:45+00:00 info gateway/ws {"subsystem":"gateway/ws"} ⇄ res ✓ device.pair.list 417ms conn=6c98edad…46be id=d997cdc4…d3b8
12:49:54+00:00 info bonjour: advertised gateway fqdn=openclaw._openclaw-gw._tcp.local. host=openclaw.local. port=18789 state=announcing
12:49:54+00:00 info gateway/ws {"subsystem":"gateway/ws"} ⇄ res ✗ chat.history 0ms errorCode=UNAVAILABLE errorMessage=chat.history unavailable during gateway startup conn=6c98edad…46be id=04f259d1…614c
12:50:00+00:00 info gateway/ws {"subsystem":"gateway/ws"} ⇄ res ✗ chat.history 1ms errorCode=UNAVAILABLE errorMessage=chat.history unavailable during gateway startup conn=6c98edad…46be id=71677e58…0be2

#

12:50:02+00:00 info gateway/ws {"subsystem":"gateway/ws"} ⇄ res ✗ chat.history 0ms errorCode=UNAVAILABLE errorMessage=chat.history unavailable during gateway startup conn=6c98edad…46be id=5a523320…898b
12:50:02+00:00 info plugins {"subsystem":"plugins"} embedded acpx runtime backend registered (cwd: /root/.openclaw/workspace)
12:50:02+00:00 info browser/server {"subsystem":"browser/server"} Browser control listening on http://127.0.0.1:18791/ (auth=token)
12:50:02+00:00 info gateway/channels/telegram {"subsystem":"gateway/channels/telegram"} [default] starting provider (@paulgerhardt_bot)
12:50:03+00:00 info gateway/channels/telegram {"subsystem":"gateway/channels/telegram"} Telegram menu text exceeded the conservative 5700-character payload budget; shortening descriptions to keep 55 commands visible.
12:50:03+00:00 info plugins {"subsystem":"plugins"} embedded acpx runtime backend ready
12:50:36+00:00 info gateway/ws {"subsystem":"gateway/ws"} webchat disconnected code=1001 reason=n/a conn=6c98edad-d958-4819-8555-ef8248d746be

#

12:50:36+00:00 info gateway/ws {"subsystem":"gateway/ws"} webchat connected conn=81d2f857-9354-468a-85fd-39b0ae74ea74 remote=192.168.178.112 client=openclaw-control-ui webchat v2026.4.22
12:50:37+00:00 info gateway/ws {"subsystem":"gateway/ws"} ⇄ res ✓ commands.list 208ms conn=81d2f857…ea74 id=5eba3c34…24aa
12:50:37+00:00 info gateway/ws {"subsystem":"gateway/ws"} ⇄ res ✓ node.list 250ms conn=81d2f857…ea74 id=2cdfae55…64bf
12:50:37+00:00 info gateway/ws {"subsystem":"gateway/ws"} ⇄ res ✓ device.pair.list 252ms conn=81d2f857…ea74 id=a4f9223e…1eee
12:50:45+00:00 info gateway/ws {"subsystem":"gateway/ws"} ⇄ res ✓ node.list 690ms conn=81d2f857…ea74 id=b027ce95…e234
12:50:48+00:00 info gateway/ws {"subsystem":"gateway/ws"} ⇄ res ✓ models.list 11422ms conn=81d2f857…ea74 id=b43727ed…0b73
12:50:50+00:00 warn bonjour {"subsystem":"bonjour"} watchdog detected non-announced service; attempting re-advertise (gateway fqdn=openclaw._openclaw-gw._tcp.local. host=openclaw.local. port=18789 state=probing)
12:51:03+00:00 error [tools] read failed: ENOENT: no such file or directory, access '/root/.openclaw/workspace/skills/mail/SKILL.md' raw_params={"path":"/root/.openclaw/workspace/skills/mail/SKILL.md"}
12:51:03+00:00 error [tools] read failed: ENOENT: no such file or directory, access '/root/.openclaw/workspace/skills/mail/SKILL.md' raw_params={"path":"/root/.openclaw/workspace/skills/mail/SKILL.md"}
12:51:45+00:00 warn bonjour {"subsystem":"bonjour"} watchdog detected non-announced service; attempting re-advertise (gateway fqdn=openclaw._openclaw-gw._tcp.local. host=openclaw.local. port=18789 state=unannounced)

#

12:52:45+00:00 warn bonjour {"subsystem":"bonjour"} watchdog detected non-announced service; attempting re-advertise (gateway fqdn=openclaw._openclaw-gw._tcp.local. host=openclaw.local. port=18789 state=unannounced)
12:53:45+00:00 warn bonjour {"subsystem":"bonjour"} watchdog detected non-announced service; attempting re-advertise (gateway fqdn=openclaw._openclaw-gw._tcp.local. host=openclaw.local. port=18789 state=unannounced)

#

@slim monolith So I think he always does that when he wants to edit a file! But I checked and every user can read, write, etc.

#

Working…
• ~/.openclaw/workspace/TOOLS.md
• tool running
• ~/.openclaw/workspace/TOOLS.md