Real-world failure modes

Why your OpenClaw agent goes dark, gets dumber, or breaks on update

The five real problems people hit with OpenClaw — and the exact configuration + discipline fixes for each. If you're tinkering more than you're shipping, the answer is almost always one of these.

The agent goes dark / unresponsive mid-conversation

"It just stops responding. I type and nothing happens. Have to restart the whole conversation."

Root cause

The main thread is blocked on a long inline tool chain — usually a multi-step research, debug, or batch operation that should've been delegated. Often compounded by context running long enough to silently truncate during a tool call.

The fixes
Sub-agent for anything > 2–3 tool calls

In AGENTS.md, make this an explicit standing rule, not a suggestion. Coding tasks → tmux coding-agent loop. Research / multi-step diagnosis / batch ops → spawn a subagent with an explicit timeout. Inline only for quick lookups and single-file changes. The main thread is the chat — it has to stay responsive.

Bump the model context window

OpenClaw caps Claude Opus 4.7 at 200k by default. Override it to 1M in your model config so the agent doesn't silently truncate mid-tool-call on a long session. (Same model, same price tier — just removes the cap.)

Trim HEARTBEAT.md

If your heartbeat checklist is 40 items long and runs every 20 minutes, every heartbeat is itself a long inline chain. Tier it — ~12 quick inline checks max, heavy work delegated to crons or subagents.

Gets dumber over a long single-topic conversation

"It was sharp at the start, but after an hour on the same thread it starts repeating itself or losing the plot."

Root cause

Pure LLM behavior — the longer the context, the more the model has to attend to, and the less weight it gives to recent specifics. Compounded if all your projects share one thread.

The fixes
One Telegram group per project

Don't run all of your work through one mega-thread. Spin up a dedicated chat per project / topic — Chief of Staff, Project A, Project B, etc. Each thread stays scoped, context never bloats, and the agent stays sharp because it's only ever attending to one subject at a time.

Configure OpenClaw to NOT auto-clear context in Telegram

OpenClaw's default is to clear context aggressively. In a per-project group, you want the opposite — keep context across the year so it accumulates project knowledge. Set the auto-clear cadence to something rare (or off).

Memory plugins do the heavy lifting

Persistent memory plugins (lossless-claw for lossless DAG-based recall, hindsight for entity-graph extraction) mean the agent can answer 'what did we decide three weeks ago about X' without having that turn still in context. Combine with the memory/ folder structure (daily journal, curated MEMORY.md, per-person files) and the LLM 'getting dumber' stops being a system-level problem.

Updates break the agent — and you have to tinker every time

"Every time OpenClaw updates, something breaks and I have to figure out what."

Root cause

OpenClaw is moving fast (multiple releases per month). The fast pace is the point — but it means every update lands on a slightly different config surface area. Without a discipline layer, configs drift and small changes silently break the agent.

The fixes
Pin OpenClaw + read the changelog before upgrading

Don't blindly upgrade. Read the release notes, run on the previous stable for a day, then upgrade in your own time. Major releases have flagged a handful of breaking changes — knowing about them upfront is the whole game.

Run an upgrade-monitor cron

Schedule a daily check that diffs the installed OpenClaw version against the latest, summarizes the changelog, and pings you only when there's something to actually decide. Cuts the cognitive overhead of staying current.

Doctor scripts for the config surface area

Write tiny diagnostic scripts that check the bits you care about (allowlists, env vars, plugin states, model overrides). Wire them into the heartbeat. When something silently breaks, the doctor catches it in the next 30 minutes instead of next week.

The main agent does all the work — no 'let's reset' button

"It's one big monolithic thread doing everything. I want to start a new conversation without losing everything."

Root cause

If the main thread is also the work thread, every long task pollutes the chat context. There's no clean separation between 'talking to the assistant' and 'running a job.'

The fixes
Per-project Telegram groups (again)

Same answer as the dumber-over-time problem — the natural reset is starting a new thread for a new topic. Each group is its own scoped conversation. The agent picks up project knowledge from MEMORY.md and project CONTEXT.md, not from re-reading three months of chat history.

Subagent = the work thread

When the agent delegates to a subagent (coding loop, research task, batch op), that work happens out-of-band. The main chat sees a summary at the end, not the 200-tool-call trail. The 'reset conversation' you want is structurally built in — the work threads come and go, the chat threads persist.

Native steering when you do need to pivot mid-task

OpenClaw's /steer command (2026.5.3+) interrupts an in-flight run and redirects it without starting a new turn. Use this when you don't want a new conversation, you just want the current one to change course.

Picks the wrong model and you don't know it

"It feels slower / dumber than it should. Not sure if it's the model or my setup."

Root cause

OpenClaw's default model selection is a moving target — provider availability, context window, and pricing change constantly. Without explicit overrides, you might be running an older or smaller model than you think.

The fixes
Set a known-good primary + fallback

In your OpenClaw config, explicitly set both primary and fallback models. Today's sane defaults are Claude Opus 4.7 primary with Sonnet 4.6 fallback — but check the current state when you read this; model lineups change quarterly.

Add an embedding key for memory plugins

Memory plugins (hindsight, lossless-claw) need an embedding model to compute similarity. OpenAI is the easiest source today. Without an embedding key, the memory layer is just text storage — no real recall.

Use /status to verify what's actually loaded

Every time you suspect model weirdness, run /status. It tells you the active model, reasoning level, context budget. Most 'why is it dumb' moments resolve with one quick status check.

60-second triage

When your agent feels broken, walk this list before tearing anything down. Most “OpenClaw is broken” moments resolve at step 1, 4, or 7.

# 60-second OpenClaw triage when something feels off

1. /status                          # is the right model loaded?
2. check heartbeat tier count       # are you running 12 things every 20min?
3. check active subagents           # is one stuck holding the main thread?
4. check context window in config   # 200k? bump to 1M for opus-4-7
5. last OpenClaw upgrade?           # did breaking changes land?
6. memory plugins enabled?          # hindsight + lossless-claw + embed key?
7. one mega-thread or per-project?  # split it
bash

The meta-fix

Most of these problems aren't OpenClaw bugs. They're the absence of a discipline layer on top of OpenClaw.

One mega-thread doing everything will always go dark, get dumber, and break on update. Per-project Telegram groups + sub-agent-by-default + the three-layer memory pattern + project-context auto-inject + standing rules — that's the structure that keeps the agent fast, sharp, and resilient as the platform underneath it changes.

That's what the rest of this template is. Each piece exists because removing it brought one of these failure modes back.

Hit a failure mode that isn't on this list? File it here. Real failures earn their way onto this page.