#My OpenClaw Agent wants to use the tool unknown
1 messages · Page 1 of 1 (latest)
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 historyorUnknown 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.
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.
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:
- Update to a build newer than
2026.4.21 - 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 historytool loopunknown_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:
https://docs.openclaw.ai/help/faq
https://docs.openclaw.ai/help/troubleshooting
If you want, paste the log chunk here and I’ll help pinpoint whether it’s:
- stale session history,
- tool allowlist/runtime activation,
- or a separate provider-side tool-call issue.
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)"
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:
- Update past 2026.4.21
- If you do not need LAN auto-discovery, disable Bonjour:
- set
discovery.mdns.mode: "off"in config, or- run
openclaw plugins disable bonjour
- run
- Restart the gateway
- 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:
- https://docs.openclaw.ai/gateway/bonjour
- https://docs.openclaw.ai/gateway/configuration-reference
- https://docs.openclaw.ai/help/troubleshooting
If you can, paste the log lines around the actual failed run, especially anything containing:
Tool not available
missing tool result in session historytool loopunknown_tool_repeat
That would be the log that actually matters for the unknown tool issue.
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?
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:
- Control UI Fallback zeigt
unknown, weil im TranscripttoolNamefehlt - kaputte/stale Session-History
- 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 failedplugin approval gateway request failedtool_resultreplaysessionmalformed
Aber ehrlich, Transcript/Export ist jetzt der bessere nächste Schritt.
Wenn du magst, schick als Nächstes entweder:
- den Output von dem
rgauf den Session-Dateien, oder - den relevanten Ausschnitt aus
/export-sessionbzw./export-trajectory
Dann kann ich es deutlich genauer eingrenzen.
wurde das Peoblem in der Version 2026.4.22 gelöst, gibt es schon eine neuere Version?
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:
- auf 2026.4.22 updaten
- danach eine neue Session / einen neuen Thread starten
- prĂĽfen mit:
openclaw --version
openclaw doctor
Wenn es mit 2026.4.22 in einer frischen Session immer noch passiert, dann wĂĽrde ich das als echten Bug behandeln und mit /export-trajectory oder /export-session belegen.
Docs:
- https://docs.openclaw.ai/help/faq
- https://docs.openclaw.ai/help/troubleshooting
- https://docs.openclaw.ai/tools/trajectory
Wenn du willst, kann ich dir auch direkt sagen, wie du am saubersten auf 2026.4.22 updatest.
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