#my openclaw keeps saying this
1 messages · Page 1 of 1 (latest)
Let me check the docs path first so I don’t guess.
That string is usually just the generic fallback, not the real error.
First, please paste these:
openclaw --version
openclaw status --all
openclaw logs --follow
Then, while openclaw logs --follow is running, trigger the failure once and paste the first real error / stack trace that appears.
Also tell me:
- which channel this is happening on (Telegram, Discord, etc.)
- whether it happens on every message or only some
If you’re seeing that exact wording in Telegram, that narrows it down a lot, it means the message handler is crashing and Telegram is sending the fallback text.
Diagnosis (read-only)
Gateway connection details:
Gateway target: ws://127.0.0.1:18789
Source: local loopback
Config: /home/kmandve/.openclaw/openclaw.json
Bind: loopback
✓ Config: /home/kmandve/.openclaw/openclaw.json
✓ Secret diagnostics (0)
✓ Restart sentinel: none
! Port 18789
Port 18789 is already in use.
- pid 224033 kmandve: openclaw-gateway (127.0.0.1:18789)
- Gateway already running locally. Stop it (openclaw gateway stop) or use a different port.
! Tailscale: serve · unknown · server.tail209771.ts.net
https: https://server.tail209771.ts.net
✓ Skills: 37 eligible · 0 missing · /home/kmandve/.openclaw/workspace
✓ Plugin compatibility (none)
✓ Channel issues (none)
Good, that rules out a dead gateway.
The Port 18789 is already in use bit just means your gateway is already running. That is usually not the reason for the “Something went wrong...” reply.
So, next step is to inspect the running gateway, not start another one:
openclaw --version
openclaw gateway status
openclaw models status
openclaw logs --follow
Then send one message that triggers the failure and paste the first real error from openclaw logs --follow.
A couple notes:
- Don’t start a second gateway on the same port.
- The Tailscale
serve · unknownline is probably unrelated unless your problem is specifically remote dashboard access.
If openclaw gateway status says Runtime: running and RPC probe: ok, I’d expect the real issue to be in model/auth/channel handling, and the log should show which one.
Docs:
If this fixes it later, please right-click the solution message → Apps → ✅ Mark Solution so Answer Overflow can index it.
— chunks_vec not updated (sqlite-vec unavailable). Vector recall degraded for this file.
21:54:32+00:00 warn memory {"subsystem":"memory"} chunks written for memory/2026-04-18-orbit-blocks.md without vector embeddings — chunks_vec not updated (sqlite-vec unavailable). Vector recall degraded for this file.
21:54:32+00:00 warn memory {"subsystem":"memory"} chunks written for memory/2026-04-16.md without vector embeddings — chunks_vec not updated (sqlite-vec unavailable). Vector recall degraded for this file.
21:54:32+00:00 warn memory {"subsystem":"memory"} chunks written for memory/2026-04-19-orbit-dashboard-fix.md without vector embeddings — chunks_vec not updated (sqlite-vec unavailable). Vector recall degraded for this file.
21:54:32+00:00 warn memory {"subsystem":"memory"} chunks written for memory/2026-04-19-dashboard-fix.md without vector embeddings — chunks_vec not updated (sqlite-vec unavailable). Vector recall degraded for this file.
21:54:32+00:00 warn memory {"subsystem":"memory"} chunks written for memory/act-research-2026.md without vector embeddings — chunks_vec not updated (sqlite-vec unavailable). Vector recall degraded for this file.
Log tail truncated (increase --max-bytes).
c limit 3;" && printf '\n---\n' && node /home/kmandve/.openclaw/workspace/orbit/scripts/cadence-status.js","workdir":"/home/kmandve/.openclaw/workspace","yieldMs":10000,"background":true,"timeout":180}
20:34:04+00:00 error [tools] exec failed: exec preflight: complex interpreter invocation detected;
Nice, this is the real clue. Let me check that exact exec error so I don’t guess.
Yep, the sqlite-vec warnings are not the crash. They just mean memory search is degraded a bit.
The real failure is this:
error [tools] exec failed: exec preflight: complex interpreter invocation detected
So OpenClaw is blocking a shell-wrapped exec command for safety. In other words, something is trying to run a command shaped like:
bash -c "… && node /path/script.js"
or similar, and exec now refuses that form.
What to change
Use a direct interpreter command instead of bash -c, /bin/bash -c, env bash -c, process substitution, etc.
Good:
node /home/kmandve/.openclaw/workspace/orbit/scripts/cadence-status.js
python /path/to/script.py
bash /path/to/script.sh
Bad:
bash -c "node /path/to/script.js"
env bash -c "python /path/to/script.py"
python <(cat script.py)
In your log snippet
The problem is probably the whole chained command before:
&& node /home/kmandve/.openclaw/workspace/orbit/scripts/cadence-status.js
The node ...js part is fine by itself. The wrapper/chaining around it is what got blocked.
Likely fix
- Find the agent/task/prompt that generated that exec command
- Rewrite it to run the script directly
- If it really needs multiple shell steps, put them in a real
.shfile and run:
bash /path/to/file.sh
Also, please still paste:
openclaw --version
That helps confirm whether you’re on a build with this stricter exec preflight.
If you want, paste the full rejected exec command and I can rewrite it into a safe form.
:"/home/kmandve/.openclaw/workspace","yieldMs":10000,"background":true,"timeout":180}
20:34:04+00:00 error [tools] exec failed: exec preflight: complex interpreter invocation detected; refusing to run without script preflight validation. Use a direct python <file>.py or node <file>.js command. raw_params={"command":"cd /home/kmandve/.openclaw/workspace/orbit && node scripts/init-db.js 2>&1","timeout":30}
21:16:09+00:00 error [tools] exec failed: exec preflight: complex interpreter invocation detected; refusing to run without script preflight validation. Use a direct python <file>.py or node <file>.js command. raw_params={"command":"python3 - <<'PY'\nfrom pathlib import Path\nsrc = Path('/home/kmandve/.openclaw/workspace/orbit/scripts/send-email.js').read_text()\nchecks = [\n 'recipientHasManualOrReplyBlock',\n 'recipientHasRecentSameTypeSend',\n "releaseSendLease(db, contact.id, lease.previous);",\n "already had a recent ${type} send",\n "is manual/replied. Skipping ${type}"\n]\nfor c in checks:\n print(('PASS' if c in src else 'FAIL'), c)\nPY\nnode /home/kmandve/.openclaw/workspace/orbit/scripts/monitor-replies.js\nsqlite3 /home/kmandve/.openclaw/workspace/orbit/state/orbit.db ".headers on" ".mode c…
21:16:51+00:00 error [tools] exec failed: exec preflight: complex interpreter invocation detected; refusing to run without script preflight validation. Use a direct python <file>.py or node <file>.js command. raw_params={"command":"cd /home/kmandve/.openclaw/workspace/orbit && node scripts/init-db.js 2>&1"}
21:23:23+00:00 error [tools] exec failed: exec preflight: complex interpreter invocation detected; refusing to run without script preflight validation. Use a direct python <file>.py or node <file>.js command. raw_params={"command":"sqlite3 /home/kmandve/.openclaw/workspace/orbit/state/orbit.db ".headers on" ".mode column" "with sent_today as ( select timestamp, details from activity_log where action='email_sent' and
I want to confirm one nuance here, because cd … && node … should tell us the clean fix path.
Perfect, now we have the exact cause.
Those rejected commands confirm the issue is the command shape, not the gateway:
1) This one is getting blocked
{"command":"cd /home/kmandve/.openclaw/workspace/orbit && node scripts/init-db.js 2>&1","timeout":30}
Use this instead:
{"command":"node scripts/init-db.js","workdir":"/home/kmandve/.openclaw/workspace/orbit","timeout":30}
So:
- use
workdirinstead ofcd ... &&
- drop
2>&1(you usually don’t need shell redirection here)
2) This one is also getting blocked
{"command":"python3 - <<'PY'\n...\nPY\nnode ...\nsqlite3 ..."}
That is exactly the kind of multi-step shell blob exec preflight rejects now.
Use one of these patterns instead:
- split it into separate exec calls
- or save the logic into real files, then run:
python3 check_something.pynode scripts/monitor-replies.jssqlite3 /path/db.sqlite "...sql..."
3) What to change in practice
If this is your agent generating commands, teach it to avoid:
cd ... && ...2>&1bash -c ...- heredocs like
python3 - <<'PY' - long chained commands
Prefer:
- one direct command per exec
- explicit
workdir - direct
node <file>.js/python <file>.py