#OpenClaw seems to be reporting 2 versions.

1 messages ยท Page 1 of 1 (latest)

rose grove
#

๐Ÿฆž OpenClaw 2026.4.24 (cbcfdf6)

Config was last written by a newer OpenClaw (2026.4.25); current version is 2026.4.24.
Config was last written by a newer OpenClaw (2026.4.25); current version is 2026.4.24.
Config was last written by a newer OpenClaw (2026.4.25); current version is 2026.4.24.

How can I track down if there are 2 versions running?

I always seem to have this issue as Openclaw didn't install in the default location but in /usr/local/bin/openclaw

little quarryBOT
#

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

steady pumiceBOT
#

Yep โ€” this is the split-brain / newer config guard. It means something wrote your config with 2026.4.25, but the binary currently running is 2026.4.24.

Run this read-only diagnostic block:

echo "CLI resolution:"
type -a openclaw
which openclaw
readlink -f "$(command -v openclaw)"
openclaw --version
openclaw config get meta.lastTouchedVersion

echo
echo "Gateway/service:"
openclaw gateway status --deep
#
echo
echo "Running processes:"
pgrep -af 'openclaw|node.*openclaw' || true

echo
echo "Port listener:"
lsof -nP -iTCP:18789 -sTCP:LISTEN || true

If youโ€™re on Linux/systemd, also check what the service is actually launching:

systemctl --user cat openclaw-gateway.service
systemctl --user status openclaw-gateway.service --no-pager
#

If youโ€™re on macOS/launchd:

launchctl print gui/$UID/ai.openclaw.gateway | grep -E 'program|arguments|state|pid'

What youโ€™re looking for: one path says 2026.4.25, but the service/process points at an older /usr/local/bin/openclaw or old npm/nvm path.

Once found, fix is usually:

openclaw update
openclaw gateway install --force
openclaw gateway restart

Docs: https://docs.openclaw.ai/gateway/troubleshooting#split-brain-installs-and-newer-config-guard ๐Ÿฆ

rose grove
#

state = running
program = /usr/local/bin/node
arguments = {
pid = 41894
state = active
state = active
job state = running
properties = partial import | keepalive | runatload | inferred program

steady pumiceBOT
#

Thatโ€™s the right clue โ€” launchd is running /usr/local/bin/node, but we still need the arguments to see which OpenClaw JS/package itโ€™s launching.

Run these next:

ps -p 41894 -o pid,ppid,command
launchctl print gui/$UID/ai.openclaw.gateway | sed -n '/arguments = {/,/}/p'
plutil -p ~/Library/LaunchAgents/ai.openclaw.gateway.plist 2>/dev/null || cat ~/Library/LaunchAgents/ai.openclaw.gateway.plist

Also compare all installed CLI locations:

type -a openclaw
which openclaw
openclaw --version
#
/usr/local/bin/openclaw --version 2>/dev/null || true
npm prefix -g
npm ls -g openclaw --depth=0

The mismatch will usually be one of these:

  • your shell runs one openclaw, but launchd points to another
  • launchd has an old npm/nvm/global package path baked into its plist
  • /usr/local/bin/openclaw is a stale symlink/wrapper

Once you know the intended openclaw is 2026.4.25, reinstall the LaunchAgent from that same CLI:

openclaw gateway install --force
rose grove
#

Locations:

"openclaw is /Users/macmini/.local/bin/openclaw
openclaw is /Users/macmini/.local/bin/openclaw
openclaw is /Users/macmini/.openclaw/bin/openclaw
openclaw is /usr/local/bin/openclaw
openclaw is /usr/local/bin/openclaw
/Users/macmini/.local/bin/openclaw
OpenClaw 2026.4.24 (cbcfdf6)
"

"OpenClaw 2026.4.25 (aa36ee6)
/Users/macmini/.local
/Users/macmini/.local/lib
โ””โ”€โ”€ openclaw@2026.4.24

"

steady pumiceBOT
#

Yep, found it.

Your shell is picking:

/Users/macmini/.local/bin/openclaw
OpenClaw 2026.4.24

โ€ฆbut another install here appears to be newer:

/usr/local/bin/openclaw
OpenClaw 2026.4.25

Also, duplicate lines in type -a usually just mean duplicate PATH entries โ€” annoying, but not the main issue.

#

Pick one canonical install. Since your npm prefix is /Users/macmini/.local, Iโ€™d update that one so the first openclaw in PATH is current:

npm i -g openclaw@latest
hash -r
openclaw --version

Then reinstall/restart the LaunchAgent from the now-current CLI:

openclaw gateway install --force
openclaw gateway restart

If openclaw --version still says 2026.4.24 after that, run:

rose grove
#

This should be the main one: "/Users/macmini/.local/bin/openclaw"

steady pumiceBOT
#

Good โ€” then force everything through that exact binary so PATH/launchd canโ€™t surprise you:

npm install -g --prefix "$HOME/.local" openclaw@2026.4.25
"$HOME/.local/bin/openclaw" --version

Once that prints OpenClaw 2026.4.25, reinstall the service using that same path:

"$HOME/.local/bin/openclaw" gateway install --force
"$HOME/.local/bin/openclaw" gateway restart
"$HOME/.local/bin/openclaw" gateway status --deep

Then verify launchd is no longer pointing at the stale install:

#
ps -p 41894 -o pid,ppid,command
launchctl print gui/$UID/ai.openclaw.gateway | sed -n '/arguments = {/,/}/p'

If /usr/local/bin/openclaw keeps causing confusion, donโ€™t delete it yet โ€” just move it later once .local is confirmed healthy. The important part is: install, service plist, and running process all resolve through /Users/macmini/.local/bin/openclaw.

rose grove
#

npm error code EACCES
npm error syscall rename
npm error path /Users/macmini/.local/lib/node_modules/openclaw
npm error dest /Users/macmini/.local/lib/node_modules/.openclaw-vQ6fwOp4
npm error errno -13
npm error Error: EACCES: permission denied, rename '/Users/macmini/.local/lib/node_modules/openclaw' -> '/Users/macmini/.local/lib/node_modules/.openclaw-vQ6fwOp4'
npm error at async Object.rename (node:internal/fs/promises:782:10)
npm error at async moveFile (/usr/local/lib/node_modules/npm/node_modules/@npmcli/fs/lib/move-file.js:30:5)
npm error at async Promise.allSettled (index 0)
npm error at async #reifyPackages (/usr/local/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/reify.js:309:11)
npm error at async Arborist.reify (/usr/local/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/reify.js:121:5)
npm error at async Install.exec (/usr/local/lib/node_modules/npm/lib/commands/install.js:150:5)
npm error at async Npm.exec (/usr/local/lib/node_modules/npm/lib/npm.js:208:9)
npm error at async module.exports (/usr/local/lib/node_modules/npm/lib/cli/entry.js:67:5) {
npm error errno: -13,
npm error code: 'EACCES',
npm error syscall: 'rename',
npm error path: '/Users/macmini/.local/lib/node_modules/openclaw',
npm error dest: '/Users/macmini/.local/lib/node_modules/.openclaw-vQ6fwOp4'
npm error }
npm error
npm error The operation was rejected by your operating system.
npm error It is likely you do not have the permissions to access this file as the current user
npm error
npm error If you believe this might be a permissions issue, please double-check the
npm error permissions of the file and its containing directories, or try running
npm error the command again as root/Administrator.
npm error A complete log of this run can be found in: /Users/macmini/.npm/_logs/2026-04-27T18_12_18_419Z-debug-0.log
OpenClaw 2026.4.24 (cbcfdf6)

steady pumiceBOT
#

Thatโ€™s a permissions problem on the intended install, likely from a past sudo npm install -g.

First confirm ownership:

ls -ld "$HOME/.local" "$HOME/.local/lib" "$HOME/.local/lib/node_modules" "$HOME/.local/lib/node_modules/openclaw" "$HOME/.local/bin/openclaw"

Then fix just the .local OpenClaw/npm bits:

sudo chown "$(id -un):$(id -gn)" "$HOME/.local" "$HOME/.local/lib" "$HOME/.local/lib/node_modules"
sudo chown -R "$(id -un):$(id -gn)" "$HOME/.local/lib/node_modules/openclaw" "$HOME/.local/bin/openclaw"

Then retry:

#
npm install -g --prefix "$HOME/.local" openclaw@2026.4.25
"$HOME/.local/bin/openclaw" --version

If that prints 2026.4.25, reinstall/restart from that exact binary:

"$HOME/.local/bin/openclaw" gateway install --force
"$HOME/.local/bin/openclaw" gateway restart

Avoid sudo npm install -g here โ€” thatโ€™s usually how this permission loop starts.

rose grove
#

drwxr-xr-x 6 macmini staff 192 1 Mar 21:39 /Users/macmini/.local
lrwxr-xr-x 1 root staff 41 27 Apr 12:43 /Users/macmini/.local/bin/openclaw -> ../lib/node_modules/openclaw/openclaw.mjs
drwxr-xr-x 3 macmini staff 96 1 Mar 21:39 /Users/macmini/.local/lib
drwxr-xr-x 7 macmini staff 224 27 Apr 12:43 /Users/macmini/.local/lib/node_modules
drwxr-xr-x 13 root staff 416 27 Apr 12:43 /Users/macmini/.local/lib/node_modules/openclaw

steady pumiceBOT
#

Yep, that confirms it: the active .local install is partly root-owned, so npm canโ€™t replace it.

Fix ownership on just that install:

sudo chown "$(id -un):$(id -gn)" "$HOME/.local/bin"
sudo chown -h "$(id -un):$(id -gn)" "$HOME/.local/bin/openclaw"
sudo chown -R "$(id -un):$(id -gn)" "$HOME/.local/lib/node_modules/openclaw"

Then retry:

npm install -g --prefix "$HOME/.local" openclaw@2026.4.25
"$HOME/.local/bin/openclaw" --version
#

If that shows 2026.4.25, refresh launchd from that binary:

"$HOME/.local/bin/openclaw" gateway install --force
"$HOME/.local/bin/openclaw" gateway restart
"$HOME/.local/bin/openclaw" gateway status --deep

This root ownership is almost certainly why you keep getting stuck with the older first-in-PATH OpenClaw. Avoid sudo npm install -g after this or itโ€™ll come back. ๐Ÿฆ

rose grove
#

npm warn deprecated node-domexception@1.0.0: Use your platform's native DOMException instead

added 8 packages, removed 5 packages, and changed 427 packages in 6s

70 packages are looking for funding
run npm fund for details
OpenClaw 2026.4.25 (aa36ee6)

steady pumiceBOT
#

Nice โ€” the main binary is current now. ๐ŸŽ‰

Now do the service refresh from that same binary:

"$HOME/.local/bin/openclaw" gateway install --force
"$HOME/.local/bin/openclaw" gateway restart
"$HOME/.local/bin/openclaw" gateway status --deep

Then sanity check:

openclaw --version
openclaw config get meta.lastTouchedVersion
launchctl print gui/$UID/ai.openclaw.gateway | sed -n '/arguments = {/,/}/p'
#

Expected: no newer-config warning, and launchd arguments should resolve through the .local OpenClaw install.

rose grove
#

Should I remove the other openclaw versions?

steady pumiceBOT
#

Yes โ€” but only after the .local install + gateway service are confirmed healthy.

Iโ€™d do it in this order:

  1. Verify canonical one works:
"$HOME/.local/bin/openclaw" --version
"$HOME/.local/bin/openclaw" gateway status --deep
  1. Keep this one:
/Users/macmini/.local/bin/openclaw
#
  1. Do not delete ~/.openclaw โ€” thatโ€™s your config/state directory.

  2. Then remove the stale /usr/local npm install if it exists:

sudo npm uninstall -g --prefix /usr/local openclaw

Then check:

type -a openclaw
openclaw --version

If /usr/local/bin/openclaw still appears afterward, inspect it before deleting:

#
ls -l /usr/local/bin/openclaw

If itโ€™s just a stale symlink to OpenClaw, move it aside rather than delete first:

sudo mv /usr/local/bin/openclaw /usr/local/bin/openclaw.bak

Main rule: one active OpenClaw CLI in PATH, one LaunchAgent using that same CLI.

rose grove
#

OpenClaw 2026.4.25 (aa36ee6)

๐Ÿฆž OpenClaw 2026.4.25 (aa36ee6) โ€” Runs on a Raspberry Pi. Dreams of a rack in Iceland.

2026.4.25
arguments = {
/usr/local/bin/node
/Users/macmini/.local/lib/node_modules/openclaw/dist/index.js
gateway
--port
18789
}

steady pumiceBOT
#

Perfect โ€” thatโ€™s healthy now. The running LaunchAgent is using:

/Users/macmini/.local/lib/node_modules/openclaw/dist/index.js

โ€ฆand everything reports 2026.4.25.

At this point itโ€™s safe to clean up the stale /usr/local OpenClaw install if you want:

sudo npm uninstall -g --prefix /usr/local openclaw
type -a openclaw
openclaw --version

If /usr/local/bin/openclaw still appears and ls -l /usr/local/bin/openclaw shows itโ€™s just a leftover OpenClaw symlink, move it aside:

#
sudo mv /usr/local/bin/openclaw /usr/local/bin/openclaw.bak

Donโ€™t remove ~/.openclaw โ€” thatโ€™s your actual state/config. Nice catch, this was exactly the split install issue. ๐Ÿฆ

rose grove
#

now the question is, when a new version is available, and I run "openclaw update" it installs it in the wrong location. Why?

steady pumiceBOT
#

Because openclaw update follows the OpenClaw binary + package manager context you invoked from.

So if your shell resolves openclaw to /usr/local/bin/openclaw, or npmโ€™s global prefix points at /usr/local, the updater can refresh that install instead of your intended:

/Users/macmini/.local/bin/openclaw

To lock it down:

npm config set prefix "$HOME/.local"
hash -r

Make sure this is early in ~/.zshrc:

#
export PATH="$HOME/.local/bin:$PATH"

Then verify:

command -v openclaw
npm prefix -g
npm root -g
openclaw --version
openclaw update --dry-run

Expected:

#
command -v openclaw -> /Users/macmini/.local/bin/openclaw
npm prefix -g    -> /Users/macmini/.local
npm root -g      -> /Users/macmini/.local/lib/node_modules

After removing the stale /usr/local OpenClaw, future openclaw update should stop drifting. The dry run is the safest check before the next real update.

rose grove
#

/Users/macmini/.local/bin/openclaw
/Users/macmini/.local
/Users/macmini/.local/lib/node_modules
OpenClaw 2026.4.25 (aa36ee6)
Update dry-run
No changes were applied.

Root: /Users/macmini/.local/lib/node_modules/openclaw
Install kind: package
Mode: npm
Channel: stable
Tag/spec: openclaw@latest
Current version: 2026.4.25
Target version: 2026.4.25

Planned actions:

  • Refresh package install with spec openclaw@latest; current version already matches 2026.4.25
  • Run plugin update sync after core update
  • Refresh shell completion cache (if needed)
  • Restart gateway service and run doctor checks
steady pumiceBOT
#

That looks clean now โœ…

Future openclaw update will target the right place:

Root: /Users/macmini/.local/lib/node_modules/openclaw
Mode: npm

So the root cause was:

  1. .local OpenClaw was first in PATH but stuck at 2026.4.24
  2. that .local package was root-owned, so npm couldnโ€™t update it
  3. another install had already written config as 2026.4.25, triggering the newer-config warning

Now that ownership + npm prefix + PATH are aligned, you should be good.

#

If this fixed it, please right-click the solution message โ†’ Apps โ†’ โœ… Mark Solution so Answer Overflow indexes it for the next person who hits this. ๐Ÿฆ

rose grove
#

so for next time, do i just use the same command? "openclaw update" or something else?

steady pumiceBOT
#

Yes โ€” next time just use:

openclaw update

Now that your PATH/npm prefix are fixed, that should update the correct install.

If you want to be extra safe before applying:

openclaw update --dry-run
openclaw update

And after:

#
openclaw --version
openclaw gateway status

If it ever drifts again, first check these three:

command -v openclaw
npm prefix -g
openclaw update --dry-run

They should keep pointing at /Users/macmini/.local.

rose grove
#

ok, after the 2026.4.24 and 2026.4.25 updates, my openclaw's personality has changed and the responses were incredibly slow.

How can I diagnose these issues?

steady pumiceBOT
#

Yep โ€” Iโ€™d diagnose this in two tracks: session/context damage and model/config drift.

First run:

openclaw doctor

Pay attention to anything about session transcript branch repair. There was a 2026.4.24 prompt transcript rewrite bug that can duplicate internal context in session history, which can make replies weird/slow. If doctor reports that, run:

openclaw doctor --fix
openclaw gateway restart

Then compare a fresh session:

#
/new

Ask the same simple question there. If the fresh session feels normal, the issue was likely old session history/context.

For model/config drift:

openclaw status --all
openclaw models status --probe
openclaw config get agents.defaults.models
openclaw config get agents.defaults.workspace
openclaw config get agents.defaults.promptOverlays

For personality specifically, check that your workspace is still the one containing your SOUL.md / AGENTS.md. Personality lives there, not in ~/.openclaw directly.

rose grove
#

How can I paste the output?

steady pumiceBOT
#

Best way: paste it in a code block so Discord doesnโ€™t mangle it.

Use triple backticks:

```text
paste output here
```

For long output, save it to a file and attach it:

openclaw status --all > ~/Desktop/openclaw-status.txt
openclaw doctor > ~/Desktop/openclaw-doctor.txt 2>&1
#

Then drag those .txt files into Discord.

If logs contain tokens/secrets, prefer:

openclaw status --all

That report should redact sensitive values. For raw logs, skim for API keys/tokens before posting.

rose grove
#

it wont allow me to drag the .txt file

steady pumiceBOT
#

No worries โ€” split it into chunks and paste as code blocks.

Generate smaller files first:

openclaw status --all > ~/Desktop/openclaw-status.txt
openclaw doctor > ~/Desktop/openclaw-doctor.txt 2>&1

split -b 1800 ~/Desktop/openclaw-status.txt ~/Desktop/status-part-
split -b 1800 ~/Desktop/openclaw-doctor.txt ~/Desktop/doctor-part-

Then copy/paste each part:

cat ~/Desktop/status-part-aa
#
cat ~/Desktop/status-part-ab
cat ~/Desktop/doctor-part-aa

Paste each output wrapped like:

```text
paste chunk here
```

Or, easiest if the output isnโ€™t huge, just paste the most relevant sections:

  • version/model lines
  • workspace path
  • doctor warnings/errors
#
  • any โ€œslowโ€, โ€œretryโ€, โ€œtimeoutโ€, โ€œfailoverโ€, or โ€œtranscript repairโ€ lines.
rose grove
#

2026-04-27T19:20:40.171+01:00 [model-fallback/decision] model fallback decision: decision=candidate_failed requested=google/gemini-3-flash-preview candidate=google/gemini-3-flash-preview reason=rate_limit next=openrouter/google/gemini-2.0-flash-001 detail=Google Generative AI API error (429): Resource has been exhausted (e.g. check quota). [code=RESOURCE_EXHAUSTED]
2026-04-27T19:20:49.519+01:00 [WARN] socket-mode:SlackWebSocket:3 A pong wasn't received from the server before the timeout of 5000ms!
2026-04-27T19:20:49.670+01:00 [agent/embedded] session file repaired: rewrote 4 assistant message(s) (70866b2c-186f-4022-85c0-d2a055f512bb.jsonl)
2026-04-27T19:20:49.776+01:00 [slack] socket disconnected (disconnect). retry 1/12 in 2s

#

2026-04-27T19:20:50.263+01:00 [model-fallback/decision] model fallback decision: decision=skip_candidate requested=anthropic/claude-sonnet-4-6 candidate=anthropic/claude-sonnet-4-6 reason=billing next=openrouter/google/gemini-2.0-flash-001 detail=Provider anthropic has billing issue (skipping all models)
2026-04-27T19:21:00.112+01:00 [agent/embedded] embedded run failover decision: runId=70866b2c-186f-4022-85c0-d2a055f512bb stage=assistant decision=surface_error reason=rate_limit from=google/gemini-3-flash-preview profile=sha256:ac092b59b472 rawError=Google Generative AI API error (429): Resource has been exhausted (e.g. check quota). [code=RESOURCE_EXHAUSTED]
2026-04-27T19:21:00.558+01:00 [model-fallback/decision] model fallback decision: decision=candidate_succeeded requested=google/gemini-3-flash-preview candidate=openrouter/google/gemini-2.0-flash-001 reason=unknown next=none
2026-04-27T19:21:04.380+01:00 [model-fallback/decision] model fallback decision: decision=candidate_succeeded requested=anthropic/claude-sonnet-4-6

steady pumiceBOT
#

That log explains both symptoms pretty well:

google/gemini-3-flash-preview โ†’ 429 rate_limit/resource exhausted
fallback โ†’ openrouter/google/gemini-2.0-flash-001

So responses are slow because it first tries the Google model, waits for failure, then retries/falls back. Personality changed because youโ€™re not always talking to the same model anymore.

Do this:

openclaw models status --probe
openclaw config get agents.defaults.models
openclaw logs --follow | grep -Ei 'model-fallback|rate_limit|429|timeout|session file repaired|socket'
#

Fix options:

  1. If you want Google primary: check quota/billing/API limits for that key.
  2. If you want speed now: remove or move the rate-limited Google model lower in your fallback list, or switch default to the working model.
  3. For weird personality in old chats: run:
openclaw doctor --fix
openclaw gateway restart

Then start a fresh session with /new and compare. The session file repaired line means OpenClaw fixed some transcript weirdness, but old sessions may still feel โ€œoffโ€ from prior corrupted/duplicated context.

The Slack pong warning is separate-ish: it can delay Slack delivery/reconnects, but the model fallback is the big one here.

#

Yep, now we have the full story:

  • Anthropic is sometimes skipped for billing
  • Google Gemini 3 Flash Preview is hitting 429 RESOURCE_EXHAUSTED
  • OpenClaw then falls back to OpenRouter Gemini 2.0 Flash
  • Later Anthropic succeeds, so the billing issue may be intermittent / credential-specific / model-specific

That model hopping explains the personality shift and latency.

Next checks:

openclaw models status --probe
openclaw auth status
openclaw config get agents.defaults.models
#

If Anthropic is the personality you liked, make it the first reliable model and fix its billing/auth issue. If Google keeps 429ing, remove it from the active fallback chain for now.

For a quick speed/stability test, temporarily switch the current session to the working fallback model:

/model openrouter/google/gemini-2.0-flash-001

Or start fresh with a specific model:

/new openrouter/google/gemini-2.0-flash-001

Then compare response speed/personality. If thatโ€™s fast, the slowdown is definitely the failed primary candidates + fallback retries.

rose grove
#

dont give me any responses yet, let me paste in the full output and it will be in chunks, I will tell you when Im done

#

2026-04-27T19:20:23.146+01:00 [plugins] openclaw-engram: recall timings: queryPolicy=standard/full, recallPlan=full, objectiveState=skip, causalTrajectories=skip, cmcCausalChains=skip, calibrationRules=skip, trustZones=skip, harmonicRetrieval=skip, verifiedRecall=skip, verifiedRules=skip, workProducts=skip, queryAware=skip, transcript=skip, nativeKnowledge=skip, convRecall=skip, identityContinuity=1ms, entityRetrieval=2ms, summaries=2ms, compounding=2ms, profile=4ms, ki=14ms, qmd=43ms, qmdPost=1697ms, total=1742ms
2026-04-27T19:20:23.449+01:00 [ws] โ‡„ res โœ“ sessions.list 162ms conn=8018b96aโ€ฆ1b90 id=6ffe2280โ€ฆ7d23
2026-04-27T19:20:23.590+01:00 [ws] โ‡„ res โœ“ sessions.list 106ms conn=8018b96aโ€ฆ1b90 id=79a34039โ€ฆ92a5

#

2026-04-27T19:20:24.116+01:00 [slack] socket mode connected
2026-04-27T19:20:24.224+01:00 [ws] โ‡„ res โœ“ sessions.list 105ms conn=8018b96aโ€ฆ1b90 id=0efb7398โ€ฆ77e8
2026-04-27T19:20:26.281+01:00 [ws] โ‡„ res โœ“ sessions.list 107ms conn=8018b96aโ€ฆ1b90 id=5b508df0โ€ฆ09ab
โ€ฆ 18 lines omitted โ€ฆ
2026-04-27T19:20:59.896+01:00 [ws] โ‡„ res โœ“ sessions.list 107ms conn=8018b96aโ€ฆ1b90 id=c3f4f26dโ€ฆ084d
2026-04-27T19:21:00.230+01:00 [ws] โ‡„ res โœ“ sessions.list 108ms conn=8018b96aโ€ฆ1b90 id=8e96de24โ€ฆ8984
2026-04-27T19:21:03.855+01:00 [ws] โ‡„ res โœ“ sessions.list 110ms conn=8018b96aโ€ฆ1b90 id=02cd695dโ€ฆ2e64

#

2026-04-27T19:21:04.001+01:00 [ws] โ‡„ res โœ“ sessions.list 112ms conn=8018b96aโ€ฆ1b90 id=b8c758feโ€ฆ8d3b
2026-04-27T19:22:58.690+01:00 [plugins] openclaw-engram: recall phase-1: starting parallel work at +0ms
2026-04-27T19:22:58.694+01:00 [plugins] openclaw-engram: recall phase-1: parallel work done at +5ms (phase took 5ms)
2026-04-27T19:22:59.043+01:00 [plugins] openclaw-engram: recall phase-2 checkpoints: afterQmd=351ms, afterQuestions=352ms, afterQap=352ms
2026-04-27T19:22:59.044+01:00 [plugins] openclaw-engram: recall timings: queryPolicy=standard/full, recallPlan=full, objectiveState=skip, causalTrajectories=skip, cmcCausalChains=skip, calibrationRules=skip, trustZones=skip, harmonicRetrieval=skip, verifiedRecall=skip, verifiedRules=skip,

#

workProducts=skip, queryAware=skip, transcript=skip, nativeKnowledge=skip, convRecall=skip, identityContinuity=1ms, summaries=2ms, compounding=2ms, profile=3ms, ki=4ms, entityRetrieval=4ms, qmd=5ms, qmdPost=346ms, total=352ms
2026-04-27T19:22:59.317+01:00 [ws] โ‡„ res โœ“ sessions.list 114ms conn=8018b96aโ€ฆ1b90 id=78cfa464โ€ฆ49ad
2026-04-27T19:22:59.456+01:00 [ws] โ‡„ res โœ“ sessions.list 106ms conn=8018b96aโ€ฆ1b90 id=f710c752โ€ฆ9f83
2026-04-27T19:23:01.355+01:00 [slack] socket mode connected
2026-04-27T19:23:04.131+01:00 [ws] โ‡„ res โœ“ sessions.list 110ms conn=8018b96aโ€ฆ1b90 id=79b98e42โ€ฆd51a
2026-04-27T19:23:04.265+01:00 [ws] โ‡„ res โœ“ sessions.list 104ms conn=8018b96aโ€ฆ1b90 id=d0d96063โ€ฆ15e7
2026-04-27T19:23:41.870+01:00 [ws] โ‡„ res โœ“ channels.status 186ms conn=0740ec98โ€ฆ4dce id=3e557b56โ€ฆed67

#

2026-04-27T19:23:42.449+01:00 [ws] โ‡„ res โœ“ health 162ms conn=81b59b5bโ€ฆ1504 id=a70353e5โ€ฆc42b

Gateway restart attempts (tail): /Users/macmini/.openclaw/logs/gateway-restart.log
[2026-04-27T11:45:16Z] openclaw restart attempt source=launchd-handoff mode=kickstart target=gui/501/ai.openclaw.gateway waitPid=25953
[2026-04-27T11:45:17Z] openclaw restart done source=launchd-handoff mode=kickstart
[2026-04-27T11:47:48Z] openclaw restart attempt source=launchd-handoff mode=kickstart target=gui/501/ai.openclaw.gateway waitPid=26164
[2026-04-27T11:47:49Z] openclaw restart done source=launchd-handoff mode=kickstart
[2026-04-27T12:43:31Z] openclaw restart attempt source=launchd-handoff mode=kickstart target=gui/501/ai.openclaw.gateway waitPid=33270
โ€ฆ 7 lines omitted โ€ฆ

#

[2026-04-27T14:38:23Z] openclaw restart attempt source=launchd-handoff mode=kickstart target=gui/501/ai.openclaw.gateway waitPid=35830
[2026-04-27T14:38:24Z] openclaw restart done source=launchd-handoff mode=kickstart
[2026-04-27T15:33:07Z] openclaw restart attempt source=launchd-handoff mode=kickstart target=gui/501/ai.openclaw.gateway waitPid=37492
[2026-04-27T15:33:12Z] openclaw restart done source=launchd-handoff mode=kickstart
[2026-04-27T15:48:38Z] openclaw restart attempt source=launchd-handoff mode=kickstart target=gui/501/ai.openclaw.gateway waitPid=38084
[2026-04-27T15:48:44Z] openclaw restart done source=launchd-handoff mode=kickstart
[2026-04-27T16:12:38Z] openclaw restart attempt source=launchd-handoff mode=kickstart target=gui/501/ai.openclaw.gateway waitPid=39267

#

[2026-04-27T16:12:43Z] openclaw restart done source=launchd-handoff mode=kickstart
[2026-04-27T17:34:04Z] openclaw restart attempt source=launchd-handoff mode=kickstart target=gui/501/ai.openclaw.gateway waitPid=40381
[2026-04-27T17:34:09Z] openclaw restart done source=launchd-handoff mode=kickstart
โœ“ Channel issues (none)

Pasteable debug report. Auth tokens redacted.
Troubleshooting: https://docs.openclaw.ai/troubleshooting

โ—‡

๐Ÿฆž OpenClaw 2026.4.25 (aa36ee6) โ€” Powered by open source, sustained by spite and good documentation.

#

19:24:26 [agents/auth-profiles] read anthropic credentials from claude cli keychain
19:25:08 [plugins] [lcm] Plugin loaded (enabled=true, db=/Users/macmini/.openclaw/lcm.db, threshold=0.75)
19:25:08 [plugins] openclaw-engram: SDK detection: version=2026.4.25, beforePromptBuild=true, memoryPromptSection=true, typedHooks=true
19:25:08 [plugins] openclaw-engram: initialized (debug=false, qmdEnabled=true, transcriptEnabled=false, hourlySummariesEnabled=true, localLlmEnabled=false)
19:25:53 [plugins] openclaw-engram: recall: init gate timed out โ€” proceeding without full init
19:25:53 [plugins] openclaw-engram: recall phase-1: starting parallel work at +3ms
19:25:53 [plugins] openclaw-engram: recall phase-1: parallel work done at +11ms (phase took 8ms)

#

19:25:54 [plugins] openclaw-engram: recall: init gate timed out โ€” proceeding without full init
19:25:54 [plugins] openclaw-engram: recall phase-1: starting parallel work at +1ms
19:25:54 [plugins] openclaw-engram: recall phase-1: parallel work done at +5ms (phase took 4ms)
19:25:54 [plugins] openclaw-engram: recall phase-2 checkpoints: afterQmd=503ms, afterQuestions=503ms, afterQap=503ms
19:25:54 [plugins] openclaw-engram: recall timings: queryPolicy=standard/full, recallPlan=full, objectiveState=skip, causalTrajectories=skip, cmcCausalChains=skip, calibrationRules=skip, trustZones=skip, harmonicRetrieval=skip, verifiedRecall=skip, verifiedRules=skip, workProducts=skip, queryAware=skip, qmd=skip, transcript=skip, nativeKnowledge=skip, convRecall=skip, identityContinuity=3ms, summaries=2ms, compounding=2ms, profile=5ms, ki=7ms, entityRetrieval=8ms, total=503ms
19:25:54 [plugins] openclaw-engram: recall phase-2 checkpoints: afterQmd=334ms, afterQuestions=373ms, afterQap=373ms

#

19:25:54 [plugins] openclaw-engram: recall timings: queryPolicy=standard/full, recallPlan=full, objectiveState=skip, causalTrajectories=skip, cmcCausalChains=skip, calibrationRules=skip, trustZones=skip, harmonicRetrieval=skip, verifiedRecall=skip, verifiedRules=skip, workProducts=skip, queryAware=skip, qmd=skip, transcript=skip, nativeKnowledge=skip, convRecall=skip, identityContinuity=1ms, summaries=1ms, compounding=1ms, profile=2ms, entityRetrieval=3ms, ki=4ms, total=373ms
19:26:14 [plugins] openclaw-engram: recall: init gate timed out โ€” proceeding without full init
19:26:14 [plugins] openclaw-engram: recall phase-1: starting parallel work at +3ms
19:26:14 [plugins] openclaw-engram: recall phase-1: parallel work done at +11ms (phase took 8ms)
19:26:14 [plugins] openclaw-engram: recall phase-2 checkpoints: afterQmd=254ms, afterQuestions=255ms, afterQap=255ms
19:26:14 [plugins] openclaw-engram: recall timings: queryPolicy=standard/full, recallPlan=full, objectiveState=skip, causalTrajectories=skip, cmcCausalChains=skip, calibrationRules=skip, trustZones=skip, harmonicRetrieval=skip, verifiedRecall=skip, verifiedRules=skip, workProducts=skip, queryAware=skip, qmd=skip, transcript=skip, nativeKnowledge=skip, convRecall=skip, identityContinuity=2ms, summaries=2ms, compounding=2ms, profile=5ms, entityRetrieval=6ms, ki=8ms, total=255ms

#

19:26:16 [plugins] openclaw-engram: recall: init gate timed out โ€” proceeding without full init
19:26:16 [plugins] openclaw-engram: recall phase-1: starting parallel work at +1ms
19:26:16 [plugins] openclaw-engram: recall phase-1: parallel work done at +7ms (phase took 6ms)
19:26:16 [plugins] openclaw-engram: recall phase-2 checkpoints: afterQmd=291ms, afterQuestions=292ms, afterQap=292ms
19:26:16 [plugins] openclaw-engram: recall timings: queryPolicy=standard/full, recallPlan=full, objectiveState=skip, causalTrajectories=skip, cmcCausalChains=skip, calibrationRules=skip, trustZones=skip, harmonicRetrieval=skip, verifiedRecall=skip, verifiedRules=skip, workProducts=skip, queryAware=skip, qmd=skip, transcript=skip, nativeKnowledge=skip, convRecall=skip, identityContinuity=1ms, summaries=1ms, compounding=1ms, profile=4ms, entityRetrieval=5ms, ki=6ms, total=292ms
19:26:35 [plugins] openclaw-engram: recall: init gate timed out โ€” proceeding without full init
19:26:35 [plugins] openclaw-engram: recall phase-1: starting parallel work at +2ms
19:26:35 [plugins] openclaw-engram: recall phase-1: parallel work done at +9ms (phase took 7ms)

#

19:26:35 [plugins] openclaw-engram: recall phase-2 checkpoints: afterQmd=294ms, afterQuestions=295ms, afterQap=295ms
19:26:35 [plugins] openclaw-engram: recall timings: queryPolicy=standard/full, recallPlan=full, objectiveState=skip, causalTrajectories=skip, cmcCausalChains=skip, calibrationRules=skip, trustZones=skip, harmonicRetrieval=skip, verifiedRecall=skip, verifiedRules=skip, workProducts=skip, queryAware=skip, qmd=skip, transcript=skip, nativeKnowledge=skip, convRecall=skip, identityContinuity=2ms, summaries=2ms, compounding=2ms, profile=5ms, entityRetrieval=5ms, ki=7ms, total=295ms
19:26:38 [plugins] openclaw-engram: recall: init gate timed out โ€” proceeding without full init
19:26:38 [plugins] openclaw-engram: recall phase-1: starting parallel work at +0ms
19:26:38 [plugins] openclaw-engram: recall phase-1: parallel work done at +6ms (phase took 6ms)
19:26:39 [plugins] openclaw-engram: recall phase-2 checkpoints: afterQmd=234ms, afterQuestions=234ms, afterQap=234ms
19:26:39 [plugins] openclaw-engram: recall timings: queryPolicy=standard/full, recallPlan=full, objectiveState=skip, causalTrajectories=skip, cmcCausalChains=skip, calibrationRules=skip, trustZones=skip, harmonicRetrieval=skip, verifiedRecall=skip, verifiedRules=skip, workProducts=skip, queryAware=skip, qmd=skip, transcript=skip, nativeKnowledge=skip, convRecall=skip, identityContinuity=1ms, summaries=1ms, compounding=1ms, profile=5ms, entityRetrieval=6ms, ki=6ms, total=234ms

#

19:26:54 [plugins] openclaw-engram: recall: init gate timed out โ€” proceeding without full init
19:26:54 [plugins] openclaw-engram: recall phase-1: starting parallel work at +2ms
19:26:54 [plugins] openclaw-engram: recall phase-1: parallel work done at +17ms (phase took 15ms)
19:26:54 [plugins] openclaw-engram: recall phase-2 checkpoints: afterQmd=650ms, afterQuestions=650ms, afterQap=650ms
19:26:54 [plugins] openclaw-engram: recall timings: queryPolicy=standard/full, recallPlan=full, objectiveState=skip, causalTrajectories=skip, cmcCausalChains=skip, calibrationRules=skip, trustZones=skip, harmonicRetrieval=skip, verifiedRecall=skip, verifiedRules=skip, workProducts=skip, queryAware=skip, qmd=skip, transcript=skip, nativeKnowledge=skip, convRecall=skip, identityContinuity=2ms, summaries=3ms, compounding=3ms, profile=12ms, entityRetrieval=13ms, ki=15ms, total=650ms
19:26:58 [plugins] openclaw-engram: recall: init gate timed out โ€” proceeding without full init
19:26:58 [plugins] openclaw-engram: recall phase-1: starting parallel work at +1ms
19:26:58 [plugins] openclaw-engram: recall phase-1: parallel work done at +5ms (phase took 4ms)
19:26:59 [plugins] openclaw-engram: recall phase-2 checkpoints: afterQmd=1787ms, afterQuestions=1788ms, afterQap=1788ms
19:26:59 [plugins] openclaw-engram: recall timings: queryPolicy=standard/full,

#

recallPlan=full, objectiveState=skip, causalTrajectories=skip, cmcCausalChains=skip, calibrationRules=skip, trustZones=skip, harmonicRetrieval=skip, verifiedRecall=skip, verifiedRules=skip, workProducts=skip, queryAware=skip, qmd=skip, transcript=skip, nativeKnowledge=skip, convRecall=skip, identityContinuity=0ms, compounding=0ms, summaries=0ms, profile=3ms, entityRetrieval=4ms, ki=4ms, total=1788ms
19:27:14 [plugins] openclaw-engram: recall: init gate timed out โ€” proceeding without full init
19:27:14 [plugins] openclaw-engram: recall phase-1: starting parallel work at +1ms
19:27:14 [plugins] openclaw-engram: recall phase-1: parallel work done at +8ms (phase took 7ms)
19:27:15 [plugins] openclaw-engram: recall phase-2 checkpoints: afterQmd=276ms, afterQuestions=277ms, afterQap=277ms
19:27:15 [plugins] openclaw-engram: recall timings: queryPolicy=standard/full, recallPlan=full, objectiveState=skip, causalTrajectories=skip, cmcCausalChains=skip, calibrationRules=skip, trustZones=skip, harmonicRetrieval=skip, verifiedRecall=skip, verifiedRules=skip, workProducts=skip, queryAware=skip, qmd=skip, transcript=skip, nativeKnowledge=skip, convRecall=skip, identityContinuity=3ms, summaries=2ms, compounding=3ms, profile=6ms, entityRetrieval=7ms, ki=7ms, total=277ms
โ—‡

#

Config : ~/.openclaw/openclaw.json
Agent dir : ~/.openclaw/agents/main/agent
Default : google/gemini-3-flash-preview
Fallbacks (2) : openrouter/google/gemini-2.0-flash-001, anthropic/claude-sonnet-4-6
Image model : -
Image fallbacks (0): -
Aliases (8) : sonnet -> anthropic/claude-sonnet-4-6, opus -> anthropic/claude-opus-4-7, gemini -> google/gemini-3.1-pro-preview, gemini-flash-lite -> google/gemini-3.1-flash-lite-preview, gpt -> openai/gpt-5.4, sonnet-max -> claude-max/claude-sonnet-4, opus-max -> claude-max/claude-opus-4, qwen-local -> lmstudio/qwen2.5-7b-instruct
Configured models (23): anthropic/claude-sonnet-4-6, anthropic/claude-opus-4-6, anthropic/claude-opus-4-7, anthropic/claude-haiku-4-6, google/gemini-3.1-pro-preview, google/gemini-3.1-flash-preview, google/gemini-3.1-flash-lite-preview, google/gemini-2.5-pro, google/gemini-2.5-flash, google/gemini-2.5-flash-lite, xai/grok-4, xai/grok-4-fast, xai/grok-4-1-fast, xai/grok-3, xai/grok-3-fast, xai/grok-3-mini, xai/grok-3-mini-fast, openai/gpt-5.4, openai/gpt-5.4-pro, openai-codex/gpt-5.4, claude-max/claude-sonnet-4, claude-max/claude-opus-4, lmstudio/qwen2.5-7b-instruct

#

Auth overview
Auth store : ~/.openclaw/agents/main/agent/auth-profiles.json
Shell env : off
Providers w/ OAuth/tokens (4): anthropic (1), claude-cli (1), openai-codex (1), openrouter (1)

  • anthropic effective=profiles:~/.openclaw/agents/main/agent/auth-profiles.json | profiles=1 (oauth=0, token=1, api_key=0) | anthropic:default=token:sk-ant-o...JL8a2gAA [disabled:billing 2h] | env=sk-ant-a...u83eJgAA | source=env: ANTHROPIC_API_KEY
  • anthropic-openai effective=env:sk-ant-a...u83eJgAA | env=sk-ant-a...u83eJgAA | source=env: ANTHROPIC_API_KEY
  • brave effective=env:BSAeaA79...6WrI3uAs | env=BSAeaA79...6WrI3uAs | source=env: BRAVE_API_KEY
  • claude-cli effective=profiles:~/.openclaw/agents/main/agent/auth-profiles.json | profiles=1 (oauth=0, token=1, api_key=0) | anthropic:default=token:sk-ant-o...JL8a2gAA [disabled:billing 2h] | env=sk-ant-a...u83eJgAA | source=env: ANTHROPIC_API_KEY | synthetic=plugin-owned | source=plugin synthetic auth
  • claude-max effective=models.json:no...ed | models.json=no...ed | source=models.json: ~/.openclaw/agents/main/agent/models.json
  • elevenlabs effective=env:sk_c5e80...bb7ee04f | env=sk_c5e80...bb7ee04f | source=env: ELEVENLABS_API_KEY
#
  • github-copilot effective=env:ghp_xRrQ...OK0Ocug5 | env=ghp_xRrQ...OK0Ocug5 | source=env: GITHUB_TOKEN
  • google effective=env:AIzaSyAa...vWKb5pnM | env=AIzaSyAa...vWKb5pnM | source=env: GEMINI_API_KEY
  • openai effective=env:sk-proj-...ai2b1IwA | env=sk-proj-...ai2b1IwA | source=env: OPENAI_API_KEY
  • openai-codex effective=profiles:~/.openclaw/agents/main/agent/auth-profiles.json | profiles=1 (oauth=1, token=0, api_key=0) | openai-codex:me@waynebickerton.com=OAuth (me@waynebickerton.com)
  • openrouter effective=profiles:~/.openclaw/agents/main/agent/auth-profiles.json | profiles=1 (oauth=0, token=1, api_key=0) | openrouter:default=token:sk-or-v1...23b231f5 | env=sk-or-v1...23b231f5 | source=env: OPENROUTER_API_KEY
  • perplexity effective=env:pplx-xW9...ZlUctGB2 | env=pplx-xW9...ZlUctGB2 | source=env: PERPLEXITY_API_KEY
  • xai effective=env:xai-V1Un...MIE5RYmH | env=xai-V1Un...MIE5RYmH | source=env: XAI_API_KEY | synthetic=plugin-owned | source=xAI plugin config
#

Auth probes
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Model โ”‚ Profile โ”‚ Status โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ anthropic/claude-sonnet- โ”‚ anthropic:claude-cli (oauth) โ”‚ timeout ยท 21.8s โ”‚
โ”‚ 4-6 โ”‚ โ”‚ โ†ณ LLM request timed out. โ”‚
โ”‚ anthropic/claude-sonnet- โ”‚ anthropic:default (token) โ”‚ timeout ยท 54.5s โ”‚
โ”‚ 4-6 โ”‚ โ”‚ โ†ณ LLM request timed out. โ”‚
โ”‚ anthropic-openai/- โ”‚ env (api_key) โ”‚ no_model ยท - โ”‚
โ”‚ โ”‚ โ”‚ โ†ณ No model available for โ”‚
โ”‚ โ”‚ โ”‚ probe โ”‚
โ”‚ brave/- โ”‚ env (api_key) โ”‚ no_model ยท - โ”‚
โ”‚ โ”‚ โ”‚ โ†ณ No model available for โ”‚
โ”‚ โ”‚ โ”‚ probe โ”‚
โ”‚ claude-cli/- โ”‚ anthropic:claude-cli (oauth) โ”‚ no_model ยท - โ”‚
โ”‚ โ”‚ โ”‚ โ†ณ

#

No model available for โ”‚
โ”‚ โ”‚ โ”‚ probe โ”‚
โ”‚ claude-cli/- โ”‚ anthropic:default (token) โ”‚ no_model ยท - โ”‚
โ”‚ โ”‚ โ”‚ โ†ณ No model available for โ”‚
โ”‚ โ”‚ โ”‚ probe โ”‚
โ”‚ claude-max/claude- โ”‚ models.json (api_key) โ”‚ timeout ยท 23.7s โ”‚
โ”‚ sonnet-4 โ”‚ โ”‚ โ†ณ LLM request timed out. โ”‚
โ”‚ elevenlabs/- โ”‚ env (api_key) โ”‚ no_model ยท - โ”‚
โ”‚ โ”‚ โ”‚ โ†ณ No model available for โ”‚
โ”‚ โ”‚ โ”‚ probe โ”‚

#

โ”‚ github-copilot/claude- โ”‚ env (api_key) โ”‚ timeout ยท 19.3s โ”‚
โ”‚ haiku-4.5 โ”‚ โ”‚ โ†ณ LLM request timed out. โ”‚
โ”‚ google/gemini-3-flash- โ”‚ env (api_key) โ”‚ timeout ยท 18.9s โ”‚
โ”‚ preview โ”‚ โ”‚ โ†ณ LLM request timed out. โ”‚
โ”‚ openai/gpt-5.4 โ”‚ env (api_key) โ”‚ timeout ยท 18.9s โ”‚
โ”‚ โ”‚ โ”‚ โ†ณ LLM request timed out. โ”‚
โ”‚ openai-codex/gpt-5.4 โ”‚ openai-codex:me@waynebickerton.com โ”‚ timeout ยท 20.6s โ”‚
โ”‚ โ”‚ (me@waynebickerton.com) (oauth) โ”‚ โ†ณ LLM request timed out. โ”‚
โ”‚ openrouter/google/ โ”‚ openrouter:default (token)

#

timeout ยท 21.8s โ”‚
โ”‚ gemini-2.0-flash-001 โ”‚ โ”‚ โ†ณ LLM request timed out. โ”‚
โ”‚ perplexity/- โ”‚ env (api_key) โ”‚ no_model ยท - โ”‚
โ”‚ โ”‚ โ”‚ โ†ณ No model available for โ”‚
โ”‚ โ”‚ โ”‚ probe โ”‚
โ”‚ xai/grok-4 โ”‚ env (api_key) โ”‚ timeout ยท 24.2s โ”‚
โ”‚ โ”‚ โ”‚ โ†ณ LLM request timed out. โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
Probed 9 targets in 174.5s

#

๐Ÿฆž OpenClaw 2026.4.25 (aa36ee6) โ€” Your config is valid, your assumptions are not.

{
"anthropic/claude-sonnet-4-6": {
"alias": "sonnet"
},
"anthropic/claude-opus-4-6": {},
"anthropic/claude-opus-4-7": {
"alias": "opus"
},
"anthropic/claude-haiku-4-6": {},
"google/gemini-3.1-pro-preview": {
"alias": "gemini"
},
"google/gemini-3.1-flash-preview": {},
"google/gemini-3.1-flash-lite-preview": {
"alias": "gemini-flash-lite"
},
"google/gemini-2.5-pro": {},
"google/gemini-2.5-flash": {},
"google/gemini-2.5-flash-lite": {},
"xai/grok-4": {},
"xai/grok-4-fast": {},
"xai/grok-4-1-fast": {},
"xai/grok-3": {},
"xai/grok-3-fast": {},
"xai/grok-3-mini": {},
"xai/grok-3-mini-fast": {},
"openai/gpt-5.4": {
"alias": "gpt"

#

},
"openai/gpt-5.4-pro": {},
"openai-codex/gpt-5.4": {},
"claude-max/claude-sonnet-4": {
"alias": "sonnet-max"
},
"claude-max/claude-opus-4": {
"alias": "opus-max"
},
"lmstudio/qwen2.5-7b-instruct": {
"alias": "qwen-local"
}
}

๐Ÿฆž OpenClaw 2026.4.25 (aa36ee6) โ€” If it works, it's automation; if it breaks, it's a "learning opportunity."

/Users/macmini/.openclaw/workspace

๐Ÿฆž OpenClaw 2026.4.25 (aa36ee6) โ€” I'm like tmux: confusing at first, then suddenly you can't live without me.

Config path not found: agents.defaults.promptOverlays

#

Im done

steady pumiceBOT
#

Got it โ€” the paste shows no remaining version problem. The slowdown/personality issue is model routing.

Main findings:

  1. Your default is slow/failing

    Default: google/gemini-3-flash-preview
    

    Logs show Google hitting quota/rate limits or timing out.

  2. Fallback chain is causing delays

    Fallbacks: openrouter/google/gemini-2.0-flash-001, anthropic/claude-sonnet-4-6
    

    Probes timed out across almost every provider:

#
   Probed 9 targets in 174.5s

That explains โ€œincredibly slowโ€: OpenClaw is waiting ~20โ€“50s per failed candidate.

  1. Anthropic auth is not healthy

    anthropic:default ... [disabled:billing 2h]
    

    So even if Sonnet is your preferred personality, itโ€™s sometimes skipped or timing out.

  2. Engram is not the main issue
    Engram recall is adding ~250msโ€“1.8s. Worth noting, but tiny compared to model timeouts.

Recommended next move: pick one known-working model and remove the bad failover path for now.

Try a session test first:

#
/new openrouter/google/gemini-2.0-flash-001

If thatโ€™s fast, set it as default temporarily:

openclaw models set openrouter/google/gemini-2.0-flash-001
openclaw gateway restart

If you want the old Sonnet-style personality back, fix Anthropic billing/auth first, then:

openclaw models set anthropic/claude-sonnet-4-6
openclaw gateway restart
#

Then check:

openclaw models status --probe
openclaw logs --follow | grep -Ei 'model-fallback|timeout|rate_limit|billing|429'

The goal is: no 429s, no billing skips, no 20s probe timeouts in the primary path.

rose grove
#

can we remove openrouter completely and use models directly?

steady pumiceBOT
#

Yes. You can remove OpenRouter from the active route and use provider-direct models only.

Fastest safe version:

openclaw config set agents.defaults.model '{"primary":"google/gemini-3.1-flash-preview","fallbacks":["anthropic/claude-sonnet-4-6","openai/gpt-5.4"]}' --strict-json
openclaw gateway restart

Or, to disable fallback hopping entirely while testing:

openclaw config set agents.defaults.model '{"primary":"google/gemini-3.1-flash-preview","fallbacks":[]}' --strict-json
openclaw gateway restart

Then verify:

#
openclaw models status --probe
openclaw config get agents.defaults.model

Important: your pasted output also showed direct providers timing out too, so removing OpenRouter may improve personality consistency, but it wonโ€™t fix slowness if Google/Anthropic/OpenAI are still timing out. Pick whichever direct model probes cleanly.

Docs: https://docs.openclaw.ai/concepts/models

rose grove
#

how can I set the default model to sonnet and have no fallback

steady pumiceBOT
#

Use the explicit model ref and an empty fallback list:

openclaw config set agents.defaults.model '{"primary":"anthropic/claude-sonnet-4-6","fallbacks":[]}' --strict-json
openclaw gateway restart

Verify:

openclaw config get agents.defaults.model
openclaw models status --probe

You also have the alias sonnet, so this may work too:

#
openclaw models set sonnet

โ€ฆbut Iโ€™d use the first command because it also clears fallbacks explicitly.

rose grove
#

๐Ÿฆž OpenClaw 2026.4.25 (aa36ee6) โ€” If it works, it's automation; if it breaks, it's a "learning opportunity."

Config overwrite: /Users/macmini/.openclaw/openclaw.json (redacted -> 2ba89678d415fcc160c8976f6bcbf79228e9171a4070fbe718108c905c34038d, backup=/Users/macmini/.openclaw/openclaw.json.bak)
Updated agents.defaults.model. Restart the gateway to apply.

๐Ÿฆž OpenClaw 2026.4.25 (aa36ee6)
Gateway onlineโ€”please keep hands, feet, and appendages inside the shell at all times.

Restarted LaunchAgent: gui/501/ai.openclaw.gateway

steady pumiceBOT
#

Looks good โ€” that applied and restarted.

Now verify the effective model:

openclaw config get agents.defaults.model
openclaw models status

Expected shape:

{
  "primary": "anthropic/claude-sonnet-4-6",
  "fallbacks": []
}
#

One caveat: existing sessions can keep a per-session model override. For a clean test, start a new session:

/new

Then send a normal prompt and watch logs for:

openclaw logs --follow | grep -Ei 'model-fallback|anthropic|timeout|billing'

If you still see Anthropic billing or timeout, then the model selection is fixed, but the Anthropic credential/provider path still needs attention.

rose grove
#

Auth probes
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Model โ”‚ Profile โ”‚ Status โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ anthropic/claude- โ”‚ anthropic:claude-cli (oauth) โ”‚ ok ยท 23.9s โ”‚
โ”‚ sonnet-4-6 โ”‚ โ”‚ โ”‚
โ”‚ anthropic/claude- โ”‚ anthropic:default (token) โ”‚ ok ยท 64.2s โ”‚
โ”‚ sonnet-4-6 โ”‚ โ”‚ โ”‚
โ”‚ anthropic-openai/- โ”‚ env (api_key) โ”‚ no_model ยท - โ”‚
โ”‚ โ”‚ โ”‚ โ†ณ No model available for probe โ”‚
โ”‚ brave/- โ”‚ env (api_key) โ”‚ no_model ยท - โ”‚
โ”‚ โ”‚ โ”‚ โ†ณ No model available for probe โ”‚
โ”‚ claude-cli/- โ”‚ anthropic:claude-cli (oauth) โ”‚ no_model ยท - โ”‚
โ”‚ โ”‚ โ”‚ โ†ณ No model available for probe โ”‚
โ”‚ claude-cli/- โ”‚ anthropic:default (token) โ”‚ no_model ยท - โ”‚
โ”‚ โ”‚ โ”‚ โ†ณ No model available for probe โ”‚
โ”‚ claude-max/claude- โ”‚ models.json (api_key) โ”‚ ok ยท 23.7s โ”‚
โ”‚ sonnet-4 โ”‚ โ”‚ โ”‚
โ”‚ elevenlabs/- โ”‚ env (api

steady pumiceBOT
#

Good news: Sonnet is now working. Bad news: itโ€™s still slow at the provider/auth layer:

anthropic:claude-cli  ok ยท 23.9s
anthropic:default     ok ยท 64.2s

With no fallbacks, OpenClaw wonโ€™t hop to OpenRouter anymore โ€” but it may still try/rotate Anthropic profiles. Iโ€™d pin it to the faster Claude CLI profile:

openclaw config set auth.order.anthropic '["anthropic:claude-cli"]' --strict-json
openclaw gateway restart

Then start a fresh session so it doesnโ€™t keep an old pinned profile:

#
/new

Targeted check:

openclaw models status --probe --probe-provider anthropic --probe-profile anthropic:claude-cli

Ignore the no_model rows for Brave/ElevenLabs/etc โ€” those arenโ€™t chat models. The key thing is getting Anthropic down from ~24s, or choosing a faster direct model if that latency persists.

rose grove
#

I'm going to paste a few chunks of the output, so dont respond until I say "im done"

๐Ÿฆž OpenClaw 2026.4.25 (aa36ee6) โ€” I don't judge, but your missing API keys are absolutely judging you.

โ”‚
19:50:20 [agents/auth-profiles] read anthropic credentials from claude cli keychain
19:51:03 [plugins] [lcm] Plugin loaded (enabled=true, db=/Users/macmini/.openclaw/lcm.db, threshold=0.75)
19:51:03 [plugins] openclaw-engram: SDK detection: version=2026.4.25, beforePromptBuild=true, memoryPromptSection=true, typedHooks=true
19:51:03 [plugins] openclaw-engram: initialized (debug=false, qmdEnabled=true, transcriptEnabled=false, hourlySummariesEnabled=true, localLlmEnabled=false)
19:51:53 [plugins] openclaw-engram: recall: init gate timed out โ€” proceeding without full init
19:51:53 [plugins] openclaw-engram: recall phase-1: starting parallel work at +4ms
19:51:53 [plugins] openclaw-engram: recall phase-1: parallel work done at +9ms (phase took 5ms)
19:51:53 [plugins] openclaw-engram: recall phase-2 checkpoints: afterQmd=555ms, afterQuestions=555ms, afterQap=555ms
19:51:53 [plugins] openclaw-engram: recall timings: queryPolicy=standard/full, recallPlan=full, objectiveState=skip, causalTrajectories=skip, cmcCausalChains=skip, calibrationRules=skip, trustZones=skip, harmonicRetrieval=skip, verifiedRecall=skip, verifiedRules=skip, workProducts=skip, queryAware=skip, qmd=skip, transcript=skip, nativeKnowledge=skip, convRecall=skip, identityContinuity=3ms, summaries=3ms, compounding=3ms, profile=5ms, ki=5ms, entityRetrieval=6ms, total=555ms

#

Config : ~/.openclaw/openclaw.json
Agent dir : ~/.openclaw/agents/main/agent
Default : anthropic/claude-sonnet-4-6
Fallbacks (0) : -
Image model : -
Image fallbacks (0): -
Aliases (8) : sonnet -> anthropic/claude-sonnet-4-6, opus -> anthropic/claude-opus-4-7, gemini -> google/gemini-3.1-pro-preview, gemini-flash-lite -> google/gemini-3.1-flash-lite-preview, gpt -> openai/gpt-5.4, sonnet-max -> claude-max/claude-sonnet-4, opus-max -> claude-max/claude-opus-4, qwen-local -> lmstudio/qwen2.5-7b-instruct
Configured models (23): anthropic/claude-sonnet-4-6, anthropic/claude-opus-4-6, anthropic/claude-opus-4-7, anthropic/claude-haiku-4-6, google/gemini-3.1-pro-preview, google/gemini-3.1-flash-preview, google/gemini-3.1-flash-lite-preview, google/gemini-2.5-pro, google/gemini-2.5-flash, google/gemini-2.5-flash-lite, xai/grok-4, xai/grok-4-fast, xai/grok-4-1-fast, xai/grok-3, xai/grok-3-fast, xai/grok-3-mini, xai/grok-3-mini-fast, openai/gpt-5.4, openai/gpt-5.4-pro, openai-codex/gpt-5.4, claude-max/claude-sonnet-4, claude-max/claude-opus-4, lmstudio/qwen2.5-7b-instruct

#

Auth overview
Auth store : ~/.openclaw/agents/main/agent/auth-profiles.json
Shell env : off
Providers w/ OAuth/tokens (4): anthropic (1), claude-cli (1), openai-codex (1), openrouter (1)

  • anthropic effective=profiles:~/.openclaw/agents/main/agent/auth-profiles.json | profiles=1 (oauth=0, token=1, api_key=0) | anthropic:default=token:sk-ant-o...JL8a2gAA | env=sk-ant-a...u83eJgAA | source=env: ANTHROPIC_API_KEY
  • anthropic-openai effective=env:sk-ant-a...u83eJgAA | env=sk-ant-a...u83eJgAA | source=env: ANTHROPIC_API_KEY
  • brave effective=env:BSAeaA79...6WrI3uAs | env=BSAeaA79...6WrI3uAs | source=env: BRAVE_API_KEY
  • claude-cli effective=profiles:~/.openclaw/agents/main/agent/auth-profiles.json | profiles=1 (oauth=0, token=1, api_key=0) | anthropic:default=token:sk-ant-o...JL8a2gAA | env=sk-ant-a...u83eJgAA | source=env: ANTHROPIC_API_KEY | synthetic=plugin-owned | source=plugin synthetic auth
  • claude-max effective=models.json:no...ed | models.json=no...ed | source=models.json: ~/.openclaw/agents/main/agent/models.json
  • elevenlabs effective=env:sk_c5e80...bb7ee04f | env=sk_c5e80...bb7ee04f | source=env: ELEVENLABS_API_KEY
  • github-copilot effective=env:ghp_xRrQ...OK0Ocug5 | env=ghp_xRrQ...OK0Ocug5 | source=env: GITHUB_TOKEN
  • google effective=env:AIzaSyAa...vWKb5pnM | env=AIzaSyAa...vWKb5pnM | source=env: GEMINI_API_KEY
  • openai effective=env:sk-proj-...ai2b1IwA | env=sk-proj-...ai2b1IwA | source=env: OPENAI_API_KEY
  • openai-codex effective=profiles:~/.openclaw/agents/main/agent/auth-profiles.json | profiles=1 (oauth=1, token=0, api_key=0) | openai-codex:me@waynebickerton.com=OAuth (me@waynebickerton.com)
  • openrouter effective=profiles:~/.openclaw/agents/main/agent/auth-profiles.json | profiles=1 (oauth=0, token=1, api_key=0) | openrouter:default=token:sk-or-v1...23b231f5 | env=sk-or-v1...23b231f5 | source=env: OPENROUTER_API_KEY
#
  • perplexity effective=env:pplx-xW9...ZlUctGB2 | env=pplx-xW9...ZlUctGB2 | source=env: PERPLEXITY_API_KEY
  • xai effective=env:xai-V1Un...MIE5RYmH | env=xai-V1Un...MIE5RYmH | source=env: XAI_API_KEY | synthetic=plugin-owned | source=xAI plugin config

OAuth/token status

  • anthropic usage: 5h 98% left โฑ2h 8m ยท Week 100% left โฑ5d 3h
    • anthropic:default static
  • openai-codex usage: 5h 99% left โฑ4h 34m ยท Week 100% left โฑ6d 23h
  • openrouter
    • openrouter:default static
#

Auth probes
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Model โ”‚ Profile โ”‚ Status โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ anthropic/claude-sonnet-4-6 โ”‚ anthropic:claude-cli (oauth) โ”‚ ok ยท 57.8s โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
Probed 1 target in 94.8s

#

I'm done

steady pumiceBOT
#

Iโ€™m done reading it. The routing is now correct:

Default: anthropic/claude-sonnet-4-6
Fallbacks: 0

So OpenRouter is not in the active reply path anymore. Itโ€™s still present as saved auth, but with zero fallbacks it wonโ€™t be used for normal replies.

The remaining problem is pure Anthropic latency:

anthropic/claude-sonnet-4-6 via anthropic:claude-cli = ok ยท 57.8s
Probed 1 target in 94.8s

Engram is only ~0.5s here, so not the culprit.

#

Iโ€™d do these next:

openclaw models auth order set --provider anthropic anthropic:claude-cli
openclaw gateway restart

Then test one tiny model call outside chat:

time openclaw infer model run --model anthropic/claude-sonnet-4-6 --prompt "Reply with exactly: smoke-ok" --json

If thatโ€™s also ~60s, OpenClaw routing is fine โ€” the Anthropic/Claude credential path is just slow from your machine right now.

Optional comparison:

#
time claude -p "Reply with exactly: smoke-ok"

If claude -p is fast but openclaw infer is slow, thatโ€™s worth filing as a GitHub issue with the probe output. If both are slow, itโ€™s upstream/network/credential latency, not OpenClaw config.

rose grove
#

๐Ÿฆž OpenClaw 2026.4.25 (aa36ee6) โ€” I've survived more breaking changes than your last three relationships.

19:54:56 [agents/auth-profiles] read anthropic credentials from claude cli keychain
Error: Auth profile "anthropic:claude-cli" is for claude-cli, not anthropic.

steady pumiceBOT
#

Ah โ€” my bad, that command was wrong. anthropic:claude-cli is a claude-cli auth profile, not an anthropic profile, so it canโ€™t be placed in auth.order.anthropic.

First undo any bad order override if it was set:

openclaw models auth order clear --provider anthropic
openclaw config unset auth.order.anthropic

If you want normal Anthropic API Sonnet, use:

openclaw models auth order set --provider anthropic anthropic:default
openclaw gateway restart

If you want Claude CLI runtime, keep the model as Sonnet but set the runtime:

#
openclaw config set agents.defaults.agentRuntime '{"id":"claude-cli","fallback":"none"}' --strict-json
openclaw gateway restart

Then start a fresh session:

/new

Docs recommend that shape for Claude CLI: canonical model anthropic/claude-sonnet-4-6 plus agentRuntime.id: "claude-cli".

rose grove
#

What else can I check to find the issue?

steady pumiceBOT
#

Iโ€™d isolate where the 50โ€“90s is happening.

Run these in order:

openclaw config get agents.defaults.model
openclaw config get agents.defaults.agentRuntime
openclaw models auth order get --provider anthropic

Then compare direct vs OpenClaw:

time claude -p "Reply with exactly: smoke-ok"
#
time openclaw infer model run \
  --model anthropic/claude-sonnet-4-6 \
  --prompt "Reply with exactly: smoke-ok" \
  --json

Interpretation:

  • claude -p slow too โ†’ Anthropic/Claude CLI/network issue.
  • claude -p fast, but openclaw infer slow โ†’ OpenClaw runtime/config issue worth filing.
  • both fast, but chat slow โ†’ session/gateway/plugin/channel path.

Also tail only relevant logs during one fresh test:

#
openclaw logs --follow --local-time | grep -Ei 'model-fallback|anthropic|claude|timeout|retry|rate_limit|billing|engram|agent/embedded'

And test from a clean session:

/new

Existing sessions can keep old model/runtime pins, so /new matters here.

rose grove
#

{
"primary": "anthropic/claude-sonnet-4-6",
"fallbacks": []
}

Config path not found: agents.defaults.agentRuntime

๐Ÿฆž OpenClaw 2026.4.25 (aa36ee6) โ€” I can run local, remote, or purely on vibesโ€”results may vary with DNS.

19:58:53 [agents/auth-profiles] read anthropic credentials from claude cli keychain
Agent: main
Provider: anthropic
Auth state file: ~/.openclaw/agents/main/agent/auth-state.json
Order override: anthropic:default

steady pumiceBOT
#

That confirms youโ€™re not using Claude CLI runtime right now.

Current state:

Model: anthropic/claude-sonnet-4-6
Fallbacks: none
agentRuntime: unset โ†’ default OpenClaw Pi runtime
Anthropic auth order: anthropic:default

So the anthropic:claude-cli probe noise is not your active route. Your active route is the normal Anthropic token profile:

anthropic:default
#

Next test the actual active route only:

openclaw models status --probe --probe-provider anthropic --probe-profile anthropic:default

And compare:

time openclaw infer model run \
  --model anthropic/claude-sonnet-4-6 \
  --prompt "Reply with exactly: smoke-ok" \
  --json

If thatโ€™s slow, then the issue is the direct Anthropic token/API path, not OpenRouter, not Claude CLI, and probably not Engram.

#

If you want to try Claude CLI runtime instead:

openclaw config set agents.defaults.agentRuntime '{"id":"claude-cli","fallback":"none"}' --strict-json
openclaw gateway restart

Then /new before testing.

rose grove
#

anthropic/claude-sonnet-4-6 โ”‚ anthropic:default (token) โ”‚ ok ยท 57.1s

Compare:

20:02:34 [agents/auth-profiles] read anthropic credentials from claude cli keychain
20:03:10 [plugins] [lcm] Plugin loaded (enabled=true, db=/Users/macmini/.openclaw/lcm.db, threshold=0.75)
20:03:10 [plugins] openclaw-engram: SDK detection: version=2026.4.25, beforePromptBuild=true, memoryPromptSection=true, typedHooks=true
20:03:10 [plugins] openclaw-engram: initialized (debug=false, qmdEnabled=true, transcriptEnabled=false, hourlySummariesEnabled=true, localLlmEnabled=false)
20:03:46 [agent/embedded] session file repaired: rewrote 2 assistant message(s) (379e6ac6-50dc-47e1-ada9-e76eafa38b2f.jsonl)
20:04:28 [plugins] openclaw-engram: recall: init gate timed out โ€” proceeding without full init
20:04:28 [plugins] openclaw-engram: recall phase-1: starting parallel work at +2ms
20:04:28 [plugins] openclaw-engram: recall phase-1: parallel work done at +5ms (phase took 3ms)
20:04:29 [plugins] openclaw-engram: recall phase-2 checkpoints: afterQmd=519ms, afterQuestions=520ms, afterQap=520ms
20:04:29 [plugins] openclaw-engram: recall timings: queryPolicy=standard/full, recallPlan=full, objectiveState=skip, causalTrajectories=skip, cmcCausalChains=skip, calibrationRules=skip, trustZones=skip, harmonicRetrieval=skip, verifiedRecall=skip, verifiedRules=skip, workProducts=skip, queryAware=skip, qmd=skip, transcript=skip, nativeKnowledge=skip, convRecall=skip, identityContinuity=1ms, summaries=0ms, compounding=1ms, profile=3ms, ki=4ms, entityRetrieval=4ms, total=520ms
{
"ok": true,
"capability": "model.run",
"transport": "local",
"provider": "anthropic",
"model": "claude-sonnet-4-6",
"attempts": [],
"outputs": [
{
"text": "smoke-ok",
"mediaUrl": null
}
]
}
openclaw infer model run --model anthropic/claude-sonnet-4-6 --prompt --json 70.58s user 54.98s system 98% cpu 2:07.63 total

steady pumiceBOT
#

That output gives us a stronger clue: this is not OpenRouter/fallback anymore.

You now have:

primary = anthropic/claude-sonnet-4-6
fallbacks = []
active auth = anthropic:default

But a tiny smoke test still took:

ok ยท 57.1s
total 2:07.63
98% CPU
#

That means there are probably two separate delays:

  1. Anthropic call itself is slow: ~57s
  2. Local OpenClaw startup/repair/plugin work adds more time

Iโ€™d check these next:

openclaw doctor --fix
openclaw gateway restart

Then compare local one-shot vs gateway reuse:

time openclaw infer model run \
#
  --model anthropic/claude-sonnet-4-6 \
  --prompt "Reply with exactly: smoke-ok" \
  --json
time openclaw infer model run \
  --gateway \
  --model anthropic/claude-sonnet-4-6 \
  --prompt "Reply with exactly: smoke-ok" \
  --json

If --gateway is much faster, the slow part is local CLI cold-start/plugin/session repair.
If both are ~60s+, itโ€™s the Anthropic API/token path.

#

Also test raw Anthropic directly:

time curl -sS https://api.anthropic.com/v1/messages \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{"model":"claude-sonnet-4-6","max_tokens":20,"messages":[{"role":"user","content":"Reply with exactly: smoke-ok"}]}'

Interpretation:

  • raw curl slow too โ†’ Anthropic/network/account latency
  • raw curl fast, OpenClaw slow โ†’ likely OpenClaw bug/config/plugin/session issue

The repeated line:

#
session file repaired

is also suspicious. doctor --fix should clear those; if it keeps happening after that, thatโ€™s worth a GitHub issue.

rose grove
#

macmini@macminis-Mini ~ % time openclaw infer model run
--model anthropic/claude-sonnet-4-6
--prompt "Reply with exactly: smoke-ok"
--json
20:07:17 [agents/auth-profiles] read anthropic credentials from claude cli keychain
20:08:00 [plugins] [lcm] Plugin loaded (enabled=true, db=/Users/macmini/.openclaw/lcm.db, threshold=0.75)
20:08:00 [plugins] openclaw-engram: SDK detection: version=2026.4.25, beforePromptBuild=true, memoryPromptSection=true, typedHooks=true
20:08:00 [plugins] openclaw-engram: initialized (debug=false, qmdEnabled=true, transcriptEnabled=false, hourlySummariesEnabled=true, localLlmEnabled=false)
20:09:34 [plugins] openclaw-engram: recall: init gate timed out โ€” proceeding without full init
20:09:34 [plugins] openclaw-engram: recall phase-1: starting parallel work at +6ms
20:09:34 [plugins] openclaw-engram: recall phase-1: parallel work done at +17ms (phase took 11ms)
20:09:35 [plugins] openclaw-engram: recall phase-2 checkpoints: afterQmd=1152ms, afterQuestions=1152ms, afterQap=1152ms
20:09:35 [plugins] openclaw-engram: recall timings: queryPolicy=standard/full, recallPlan=full, objectiveState=skip, causalTrajectories=skip, cmcCausalChains=skip, calibrationRules=skip, trustZones=skip, harmonicRetrieval=skip, verifiedRecall=skip, verifiedRules=skip, workProducts=skip, queryAware=skip, qmd=skip, transcript=skip, nativeKnowledge=skip, convRecall=skip, identityContinuity=6ms, summaries=6ms, compounding=6ms, profile=9ms, entityRetrieval=10ms, ki=12ms, total=1152ms
{
"ok": true,
"capability": "model.run",
"transport": "local",
"provider": "anthropic",
"model": "claude-sonnet-4-6",
"attempts": [],
"outputs": [
{
"text": "smoke-ok",
"mediaUrl": null
}
]
}

#

openclaw infer model run --model anthropic/claude-sonnet-4-6 --prompt --json 61.74s user 53.26s system 77% cpu 2:27.71 total
macmini@macminis-Mini ~ % time openclaw infer model run
--gateway
--model anthropic/claude-sonnet-4-6
--prompt "Reply with exactly: smoke-ok"
--json
{
"ok": true,
"capability": "model.run",
"transport": "gateway",
"provider": "anthropic",
"model": "claude-sonnet-4-6",
"attempts": [],
"outputs": [
{
"text": "smoke-ok",
"mediaUrl": null
}
]
}
openclaw infer model run --gateway --model anthropic/claude-sonnet-4-6 2.12s user 0.34s system 12% cpu 19.558 total

steady pumiceBOT
#

This one is useful: the delay is happening before the actual tiny model output, not in the final response text.

Timeline:

20:07:17 auth profiles
20:08:00 plugins loaded          โ† ~43s
20:09:34 engram recall starts    โ† another ~94s
20:09:35 recall done             โ† recall itself only ~1.1s

So this looks less like โ€œSonnet is slowโ€ and more like local infer cold-start / plugin init / Engram init gate.

Next compare gateway reuse:

#
time openclaw infer model run \
  --gateway \
  --model anthropic/claude-sonnet-4-6 \
  --prompt "Reply with exactly: smoke-ok" \
  --json

If --gateway is fast, normal chat should also be faster after gateway is warm; the slow path is local one-shot startup.

For isolation, temporarily disable Engram/LCM if you donโ€™t need them:

openclaw config set plugins.entries.openclaw-engram.enabled false --strict-json
openclaw config set plugins.entries.lcm.enabled false --strict-json
openclaw gateway restart
#

Then rerun the same test. You can re-enable later with true.

Also paste the final time summary line if you can โ€” the real/user/sys numbers help confirm whether this is CPU-heavy local startup vs network wait.

#

Perfect โ€” that isolates it.

local infer:   2:27 total, huge CPU
gateway infer: 19.6s total, low CPU

So the main problem is local one-shot startup/plugin init, not your model config and not OpenRouter. Normal chat uses the gateway path, so it should be closer to the 19s number now.

I would not disable models further. Next steps:

  1. Use gateway path for diagnostics:

    openclaw infer model run --gateway --model anthropic/claude-sonnet-4-6 --prompt "Reply with exactly: smoke-ok" --json
    
  2. Start a fresh chat session:

#
   /new
  1. If chat is still much slower than ~20s, tail logs during one message:
    openclaw logs --follow --local-time | grep -Ei 'engram|lcm|model|anthropic|timeout|fallback|session file repaired'
    

The 2:27 local infer is probably worth a GitHub issue if itโ€™s reproducible โ€” especially with those 60s user / 53s system CPU numbers. Include both timings and note that --gateway is much faster.

rose grove
steady pumiceBOT
#

Thatโ€™s just macOS saying youโ€™re currently in bash, while Appleโ€™s default shell is now zsh. Itโ€™s not an OpenClaw error.

You can ignore it for this debugging.

If you want to switch your login shell to zsh later:

chsh -s /bin/zsh

Then open a new Terminal window.

For now, from that bash-3.2$ prompt you can still run the OpenClaw commands normally.

rose grove
#

{
"ok": true,
"capability": "model.run",
"transport": "gateway",
"provider": "anthropic",
"model": "claude-sonnet-4-6",
"attempts": [],
"outputs": [
{
"text": "smoke-ok",
"mediaUrl": null
}
]
}

real 0m7.179s
user 0m2.051s
sys 0m0.331s

steady pumiceBOT
#

Nice โ€” thatโ€™s healthy now.

gateway infer: 7.2s real

So your active Gateway/model path is fine. The earlier slowness was from the local one-shot infer cold start, not the running assistant path.

At this point:

  1. Use /new in the chat where personality felt weird.
  2. Keep:
    primary: anthropic/claude-sonnet-4-6
    fallbacks: []
    
  3. If normal chat is still slow, itโ€™s likely session history/repair or channel delivery, not model routing. Tail:
#
   openclaw logs --follow --local-time | grep -Ei 'session file repaired|engram|model|anthropic|timeout|fallback'

But the core model path is now back to sane.

rose grove
#

bash-3.2$ openclaw logs --follow --local-time | grep -Ei 'engram|lcm|model|anthropic|timeout|fallback|session file repaired'
โ”‚ - plugins.entries.lcm: plugin not found: lcm (stale config entry โ”‚
โ”‚ - plugins.entries.openclaw-engram: plugin disabled (disabled in โ”‚
Config warnings:

  • plugins.entries.lcm: plugin not found: lcm (stale config entry ignored; remove it from plugins config)
  • plugins.entries.openclaw-engram: plugin disabled (disabled in config) but config is present
    gateway connect failed: Error: gateway closed (1000):
    Gateway not reachable. Is it running and accessible?
    Gateway target: ws://127.0.0.1:18789
    Source: local loopback
    Config: /Users/macmini/.openclaw/openclaw.json
    Bind: loopback
    Hint: run openclaw doctor.
steady pumiceBOT
#

Those plugin warnings are probably not fatal, but the important part is:

Gateway not reachable

First check if the service is actually up:

openclaw gateway status --deep
openclaw doctor

Then restart once:

#
openclaw gateway restart
openclaw gateway status --require-rpc

The stale plugin config can be cleaned up after that:

openclaw config unset plugins.entries.lcm

For openclaw-engram, only remove it if you donโ€™t plan to re-enable it:

openclaw config unset plugins.entries.openclaw-engram
#

Then:

openclaw gateway restart

If openclaw logs --follow canโ€™t connect, use the raw file log instead:

tail -f "$(ls -t /tmp/openclaw/openclaw-*.log | head -1)" | grep -Ei 'engram|lcm|model|anthropic|timeout|fallback|session file repaired|error'

So: fix reachability first, stale plugin cleanup second.

rose grove
#

Service: LaunchAgent (loaded)
File logs: /tmp/openclaw/openclaw-2026-04-27.log
Command: /usr/local/bin/node /Users/macmini/.local/lib/node_modules/openclaw/dist/index.js gateway --port 18789
Service file: ~/Library/LaunchAgents/ai.openclaw.gateway.plist
Service env: OPENCLAW_GATEWAY_PORT=18789

Config (cli): ~/.openclaw/openclaw.json
Config (service): ~/.openclaw/openclaw.json

Gateway: bind=loopback (127.0.0.1), port=18789 (service args)
Probe target: ws://127.0.0.1:18789
Dashboard: http://127.0.0.1:18789/
Probe note: Loopback-only gateway; only local clients can connect.

Runtime: running (pid 53186, state active)
Connectivity probe: ok
Capability: admin-capable

Listening: 127.0.0.1:18789
Other gateway-like services detected (best effort):

  • ai.mervbot.dashboard (user, plist: /Users/macmini/Library/LaunchAgents/ai.mervbot.dashboard.plist)
  • ai.openclaw.xmcp (user, plist: /Users/macmini/Library/LaunchAgents/ai.openclaw.xmcp.plist)
  • com.openclaw.git-autocommit (user, plist: /Users/macmini/Library/LaunchAgents/com.openclaw.git-autocommit.plist)
    Cleanup hint: launchctl bootout gui/$UID/ai.openclaw.gateway
    Cleanup hint: rm ~/Library/LaunchAgents/ai.openclaw.gateway.plist

Recommendation: run a single gateway per machine for most setups. One gateway supports multiple agents (see docs: /gateway#multiple-gateways-same-host).
If you need multiple gateways (e.g., a rescue bot on the same host), isolate ports + config/state (see docs: /gateway#multiple-gateways-same-host).

steady pumiceBOT
#

Gateway is healthy now:

Runtime: running
Connectivity probe: ok
Capability: admin-capable
Listening: 127.0.0.1:18789

The โ€œother gateway-like servicesโ€ are not necessarily bad โ€” theyโ€™re just other LaunchAgents with OpenClaw-ish names. Donโ€™t remove them unless you know you donโ€™t use them. The cleanup hint shown is generic and would remove the current gateway, so donโ€™t run that.

Now retry logs without piping first:

openclaw logs --follow --local-time
#

If that works, then use the grep version. If it closes again, use the file directly:

tail -f /tmp/openclaw/openclaw-2026-04-27.log | grep -Ei 'engram|lcm|model|anthropic|timeout|fallback|session file repaired|error'

The stale plugin entries are safe cleanup:

openclaw config unset plugins.entries.lcm

Only unset Engram if you want it disabled permanently:

openclaw config unset plugins.entries.openclaw-engram
#

Then restart once.

rose grove
#

Config warnings:

  • plugins.entries.openclaw-engram: plugin disabled (disabled in config) but config is present

๐Ÿฆž OpenClaw 2026.4.25 (aa36ee6)
Like having a senior engineer on call, except I don't bill hourly or sigh audibly.

โ”‚
โ—‡ Config warnings โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ โ”‚
โ”‚ - plugins.entries.openclaw-engram: plugin disabled (disabled in config) but config is โ”‚
โ”‚ present โ”‚
โ”‚ โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
Config warnings:

  • plugins.entries.openclaw-engram: plugin disabled (disabled in config) but config is present
    Gateway not reachable. Is it running and accessible?
    Gateway target: ws://127.0.0.1:18789
    Source: local loopback
    Config: /Users/macmini/.openclaw/openclaw.json
steady pumiceBOT
#

That warning is just config hygiene:

openclaw-engram: plugin disabled but config is present

Clean it up:

openclaw config unset plugins.entries.openclaw-engram
openclaw gateway restart

Then check:

#
openclaw gateway status --require-rpc

If status says healthy but openclaw logs --follow still says unreachable, use the direct file log for now:

tail -f /tmp/openclaw/openclaw-2026-04-27.log

One thing to avoid: donโ€™t keep running openclaw logs --follow | grep ... while the gateway is restarting โ€” it may exit with โ€œnot reachableโ€ during the restart window. Wait until gateway status --require-rpc is OK first.

rose grove
#

ok what next

steady pumiceBOT
#

Next, do a clean end-to-end check from the running gateway and a fresh chat.

  1. Confirm gateway is reachable:
openclaw gateway status --require-rpc
  1. Confirm model route:
openclaw config get agents.defaults.model
openclaw models auth order get --provider anthropic

Expected:

#
primary: anthropic/claude-sonnet-4-6
fallbacks: []
Order override: anthropic:default
  1. Run one gateway smoke test:
time openclaw infer model run --gateway \
  --model anthropic/claude-sonnet-4-6 \
  --prompt "Reply with exactly: smoke-ok" \
  --json
  1. In the chat/app where personality felt wrong, send:
#
/new

Then ask a normal test question.

If itโ€™s still slow/weird after /new, tail logs while sending that one message:

tail -f /tmp/openclaw/openclaw-2026-04-27.log | grep -Ei 'model|anthropic|timeout|fallback|session file repaired|error'
rose grove
#

Config warnings:

  • plugins.entries.openclaw-engram: plugin disabled (disabled in config) but config is present
    {
    "ok": true,
    "capability": "model.run",
    "transport": "gateway",
    "provider": "anthropic",
    "model": "claude-sonnet-4-6",
    "attempts": [],
    "outputs": [
    {
    "text": "smoke-ok",
    "mediaUrl": null
    }
    ]
    }

real 0m19.973s
user 0m2.235s
sys 0m0.361s

steady pumiceBOT
#

Thatโ€™s acceptable for Sonnet via gateway โ€” not instant, but healthy enough and no fallback noise.

Only remaining cleanup is this warning:

plugins.entries.openclaw-engram: plugin disabled but config is present

If you donโ€™t plan to use Engram right now:

openclaw config unset plugins.entries.openclaw-engram
openclaw gateway restart

Then final checks:

#
openclaw doctor
openclaw gateway status --require-rpc
openclaw config get agents.defaults.model

After that, test the actual chat with:

/new

If chat still feels wrong after /new, the model path is probably not the issue anymore โ€” weโ€™d look at workspace/personality files (SOUL.md, AGENTS.md) or channel/session history next.

rose grove
#

bash: plugins.entries.openclaw-engram:: command not found

steady pumiceBOT
#

Looks like you pasted the warning line into bash by accident. No harm.

Run the actual command:

openclaw config unset plugins.entries.openclaw-engram
openclaw gateway restart

Donโ€™t include the warning text itself:

plugins.entries.openclaw-engram: plugin disabled...
rose grove
#

ok how do i set terminal back to zsh

steady pumiceBOT
#

Run:

chsh -s /bin/zsh

Then close Terminal completely and open a new window.

To verify:

echo $SHELL

Expected: