#my openclaw keeps saying this

1 messages · Page 1 of 1 (latest)

pearl vessel
#

Something went wrong while processing your request. Please try again.

boreal viperBOT
frail sunBOT
#

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

boreal viperBOT
empty dirgeBOT
#

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.

pearl vessel
#

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)
empty dirgeBOT
#

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 · unknown line 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.

pearl vessel
#

— 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;

empty dirgeBOT
#

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 .sh file 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.

pearl vessel
#

:"/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

empty dirgeBOT
#

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 workdir instead of cd ... &&
#
  • 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.py
    • node scripts/monitor-replies.js
    • sqlite3 /path/db.sqlite "...sql..."
#

3) What to change in practice

If this is your agent generating commands, teach it to avoid:

  • cd ... && ...
  • 2>&1
  • bash -c ...
  • heredocs like python3 - <<'PY'
  • long chained commands

Prefer:

  • one direct command per exec
  • explicit workdir
  • direct node <file>.js / python <file>.py