#4.25 acting strange, repeats messages, sometimes hangs

1 messages Ā· Page 1 of 1 (latest)

pine mirage
#

Hi all, i just upgraded from 4.20 to 4.25 and it is behaving strangely. I ask it questions and it repeats previous answers word for word. It sometimes doesn’t even answer.

The only clue i have from a self diagnostic is ā€œmissing module from internal toolsetā€. It says it will try to fix but never comes back. It also doesn’t seem to remember previous conversations any more.

Mac Mini M4 24 GB
Using Claude
Messaging via Signal

Suggestions?

onyx islandBOT
#

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

formal nimbusBOT
#

That pattern sounds like a bad session/transcript state after the upgrade, not Claude itself. There was a 2026.4.24-era transcript duplication issue that doctor --fix is meant to repair.

I’d do this first on the Mac:

openclaw --version
openclaw gateway stop
openclaw doctor --fix
openclaw gateway restart
openclaw status --all

Then in Signal, send a standalone:

/new
#

That starts a fresh session without deleting old transcripts, and should stop the ā€œrepeating previous answerā€ loop if the active session got poisoned.

The ā€œmissing module from internal toolsetā€ clue may be bundled plugin/runtime deps. doctor --fix should repair those too, but stopping the gateway first avoids it racing itself during repair.

If it still happens, paste the redacted output from:

openclaw --version
openclaw status --all
openclaw doctor

Docs: https://docs.openclaw.ai/help/faq and https://docs.openclaw.ai/gateway/doctor 🦐

pine mirage
#

I ran the sequence of commands you suggested. It is still behaving strangely and even killed my Signal setup. I restarted the machine and using TUI.

Here are the results from the last 3 commands you posted:

openclaw --version
OpenClaw 2026.4.25 (aa36ee6)

formal nimbusBOT
#

Oof, sorry — that’s frustrating. The commands shouldn’t unregister Signal, so I’d avoid re-registering/relinking Signal for now. Let’s inspect before changing more.

Please paste the full redacted output from these read-only checks:

openclaw status --all
openclaw doctor
openclaw channels status --probe
openclaw pairing list signal
pgrep -af signal-cli

And for the Signal-specific log tail:

grep -i "signal" "/tmp/openclaw/openclaw-$(date +%Y-%m-%d).log" | tail -80
#

For the repeating/hanging part: 2026.4.25 includes repair logic for a 2026.4.24 transcript-duplication bug, but if it’s still happening after /new, I want to see whether doctor actually found/repaired session branches or whether session writes are failing.

For Signal: the likely buckets are:

  • Signal channel disabled/migrated config weirdly
  • signal-cli daemon not starting after restart
  • pairing/allowlist state changed
  • gateway is healthy but Signal probe is failing

Docs refs: https://docs.openclaw.ai/channels/signal#troubleshooting and https://docs.openclaw.ai/gateway/doctor 🦐

pine mirage
#

Sorry having trouble pasting the logs. Too long

formal nimbusBOT
#

No worries — don’t paste the full logs inline. Please either attach a .txt file here, or run this smaller filtered bundle:

LOG="$(ls -t /tmp/openclaw/openclaw-*.log | head -1)"

{
  echo "=== version ==="
  openclaw --version
  echo
  echo "=== gateway ==="
  openclaw gateway status
  echo
  echo "=== status ==="
  openclaw status --all
  echo
  echo "=== doctor relevant lines ==="
#
  openclaw doctor 2>&1 | grep -Ei "error|warn|fail|missing|module|toolset|signal|session|duplicate|runtime|plugin|repair" | tail -120
  echo
  echo "=== channel probe ==="
  openclaw channels status --probe
  echo
  echo "=== signal logs ==="
  grep -Ei "signal|error|warn|fail|missing|module" "$LOG" | tail -120
} > ~/Desktop/openclaw-diagnostics.txt

Then upload ~/Desktop/openclaw-diagnostics.txt.

Before uploading, quickly skim/redact any phone numbers, tokens, or API keys. Signal logs often contain phone-ish identifiers. 🦐

pine mirage
#

Can i send a dropbox link? It is not letting me attach

formal nimbusBOT
#

Yes — a Dropbox link is okay if it’s redacted first.

Important: this #help thread may be publicly indexed, so don’t share raw logs with phone numbers, tokens, API keys, Signal UUIDs, etc.

Best format:

  • plain .txt
  • not a zip if possible
  • Dropbox link set to ā€œanyone with link can viewā€
  • remove it later if you want

If you want a quick extra redaction pass before upload:

cp ~/Desktop/openclaw-diagnostics.txt ~/Desktop/openclaw-diagnostics-redacted.txt

Then manually search the redacted copy for:

#
  • token
  • apiKey
  • Authorization
  • phone numbers
  • Signal account IDs / UUIDs

Send the Dropbox link to the redacted file here and I’ll look at the relevant bits. 🦐

formal nimbusBOT
#

I got the file. Two useful things jump out:

  1. You’re not actually running Claude right now.
    The gateway log says:
[gateway] agent model: ollama/llama3.1:8b

That would absolutely explain repetition, weak tool use, ā€œmissing moduleā€ hallucinations, and hangs. First fix is to switch the default back to your Anthropic/Claude model:

openclaw models status
openclaw models list | grep -i anthropic
openclaw models set <copy-the-claude-model-ref-from-your-list>
openclaw gateway restart
#

Then start fresh in TUI:

/new
  1. Signal does not look permanently broken.
    It timed out/restarted, but later log lines show signal-cli started again and doctor says Signal: ok. So I’d fix the model first, then test Signal again with a standalone:
/new

Also: your doctor output is read-only and still says Run "openclaw doctor --fix". The orphan transcript cleanup is safe-ish — it renames an unreferenced transcript — but don’t worry about the live lock while TUI is open.

If this still repeats after switching off Ollama, then the next useful paste is just:

pine mirage
#

My Signal conversation is to an instance of Openclaw that has llama set, but my tui is using sonnet! How do i get sonnet back to Signal by default? It seems to be launching into conversation with an instance using llama

formal nimbusBOT
#

Yep — that’s not a separate OpenClaw instance, it’s a separate session. TUI and Signal can have independent persisted /model overrides.

Do this:

  1. In TUI, get the exact Sonnet ref/alias from:
/model status
  1. Set the global default back to that from terminal:
openclaw models set <sonnet-ref-or-alias>
openclaw gateway restart
#
  1. In Signal, send this as a standalone message:
/model <sonnet-ref-or-alias>

Then start clean:

/new

Or combine it:

/new <sonnet-ref-or-alias>
#

Then check in Signal:

/status

If Signal ignores /model, that means command authorization/pairing is the next issue — but if it works, Signal should stop inheriting the old Llama session override.

pine mirage
#

Ok i did that sequence above. However upon restart, /new sonnet took forever to come back with a reply. /status shows sonnet model is set.

formal nimbusBOT
#

Good — if /status in Signal shows Sonnet, don’t keep changing models. The old Llama session override is probably fixed.

A slow /new sonnet right after restart can be cold start/session rebuild, but it should not keep happening. Try one tiny fresh prompt in Signal:

Reply with exactly: pineapple-428

If it hangs, repeats, or takes >60–90s, paste this read-only bundle:

openclaw --version
openclaw status --all
openclaw sessions --active 120 --verbose

LOG="$(ls -t /tmp/openclaw/openclaw-*.log | head -1)"
#
grep -Ei "agent model|sonnet|anthropic|ollama|timeout|rate|overload|error|warn|session|queue|signal" "$LOG" | tail -180

Main thing I want to verify now: whether it’s actually using Anthropic but timing out/rate-limiting, or whether session/queue state is still wedged after the 4.25 repair.

Docs refs: https://docs.openclaw.ai/help/faq and https://docs.openclaw.ai/concepts/session 🦐

pine mirage
#

Results of above coming in multiple posts.

Openclaw —version yielded:

OpenClaw 2026.4.25 (aa36ee6)

formal nimbusBOT
#

Got it — 2026.4.25 is useful context. That release had a lot of plugin/session/runtime-deps churn, and 4.26/4.27 include fixes in nearby areas, so I’d first move off 4.25.

Try:

openclaw update
openclaw doctor
openclaw gateway restart
openclaw status --all

If it still repeats/hangs after that, please paste the redacted openclaw status --all plus the log around one bad turn:

openclaw logs --follow
#

The ā€œmissing module from internal toolsetā€ clue sounds more like a plugin/runtime-dependency or mixed-version gateway issue than Claude itself. Also check that openclaw --version and openclaw gateway status agree after restart — on macOS it’s possible for the CLI to update while the LaunchAgent is still running older/stale code.

Docs: https://docs.openclaw.ai/install/updating and https://docs.openclaw.ai/help/faq

pine mirage
#

Right now my openclaw setup is giving an error and will not return results

formal nimbusBOT
#

I opened the status report — there’s a pretty clear smoking gun.

The current failures are:

Unknown model: openai/sonnet

So even though you’re ā€œusing Claudeā€, this session/config is trying to run sonnet under the OpenAI provider. That’ll fail every time.

I’d do this in order:

openclaw update
openclaw doctor
openclaw gateway restart
#
openclaw models status
openclaw models list --provider anthropic

Then set the default to one of the valid anthropic/... entries shown by your models list output:

openclaw models set <valid anthropic/... model from the list>

And in the Signal chat, send:

/new
#

That starts a fresh session and clears the possibly-bad per-session model/history state.

Also: your logs show the Anthropic ā€œassistant message prefillā€ failure too — that has fixes in newer builds after 4.25, so getting off 2026.4.25 is important here. The ā€œport already in useā€ line is not the problem; it just means the Gateway is already running.

Docs: https://docs.openclaw.ai/install/updating and https://docs.openclaw.ai/cli/models

#

That sessions output confirms it: one active session is pinned to bare sonnet.

That likely becomes openai/sonnet, matching the log error:

Unknown model: openai/sonnet

Fix the stale session/model state:

openclaw models list --provider anthropic
openclaw models set <valid anthropic/... model from that list>
openclaw gateway restart

Then send this in each broken chat/session, especially Signal:

#
/new

If you want to force it in-chat too:

/model anthropic/claude-sonnet-4-6
/new

Use the exact anthropic/... model shown by models list. Also still update off 4.25 — your earlier logs show Anthropic prefill errors that 4.26+ touched.

#

Yep, grep confirms the same pattern plus one more thing:

  • Unknown model: openai/sonnet — bad/stale model selection
  • stuck session ... state=processing
  • Profile anthropic:default timed out
  • llm-idle-timeout ... claude-sonnet-4-6 produced no reply

So I’d treat this as stale session/model state + 4.25 stuck-session bugs, not Signal itself.

Recommended reset path:

openclaw update
openclaw doctor
openclaw models status
openclaw models list --provider anthropic
#
openclaw models set <valid anthropic/... model>
openclaw gateway restart

Then in Signal send:

/new

If /new doesn’t clear it, try explicitly:

/model anthropic/claude-sonnet-4-6
/new
#

Use the exact model ID from models list.

The Signal warnings about ā€œNo profile name setā€ are probably noise. The important failures are the stale openai/sonnet selection and the stuck/timeout session lane.

#

Yep — at this point don’t ask the broken OpenClaw agent to fix itself. Run this from Terminal on the Mac:

openclaw update
openclaw doctor
openclaw gateway restart
openclaw models status

Then verify the model isn’t still openai/sonnet:

openclaw models list --provider anthropic
openclaw models set <valid anthropic/... model from the list>
openclaw gateway restart
#

After that, in Signal send:

/new

If any Terminal command errors, paste the exact error text. The earlier logs strongly point to a bad/stale model pin (openai/sonnet) plus a stuck session lane on 4.25, so updating + resetting the session is the cleanest path.

pine mirage
#

First default is set to openai/sonnet. how do i reset that to anthropic/claude-sonnet-4-6? also how do i ensure that the alias of ā€œsonnetā€ sets this model? Right now somehow openai/sonnet is in the list of models. No idea how it got there.

formal nimbusBOT
#

Yep — fix this from Terminal, not via the broken agent.

Run:

openclaw models set anthropic/claude-sonnet-4-6
openclaw models aliases remove sonnet
openclaw models aliases add sonnet anthropic/claude-sonnet-4-6
openclaw gateway restart

If aliases remove sonnet says alias not found, that’s fine — just run the add command.

Then verify:

#
openclaw models status
openclaw models aliases list

If openai/sonnet is still in your configured allowlist and you want it gone:

openclaw config unset 'agents.defaults.models["openai/sonnet"]'
openclaw gateway restart

Finally, in Signal send:

/new