Stalled session (orange) and the Continue alert
A session turns orange with the label "Stalled?" when its Claude Code process stops producing output for longer than your stall-detection time (Settings → Sessions → Stall detection time, default 15 minutes). It is not an error and not a question — the agent simply went silent. Common triggers: the CLI wedged after a long operation (a big auto-compaction, a slow tool, a dropped network connection).
What it is
A session turns orange with the label "Stalled?" when its Claude Code process stops producing output for longer than your stall-detection time (Settings → Sessions → Stall detection time, default 15 minutes). It is not an error and not a question — the agent simply went silent. Common triggers: the CLI wedged after a long operation (a big auto-compaction, a slow tool, a dropped network connection).
One exception (2026-06-20): if the agent's last words explicitly declared a background wait — the canonical "Waiting on a background process to finish…" sentinel — the session auto-waits (⏱ Auto-waited) instead of stalling, even when its turn never cleanly finished. The waiting detector now covers that case on the stall path too, so a session that told you it was waiting no longer lands in the orange "Stalled?" state.
Sleep doesn't count as silence (2026-07-04). Stall timing is wall-clock, so putting the computer to sleep (or a brief app freeze) used to read as one long stretch of agent silence — waking a laptop could greet you with spurious "Session timed out" kills or unneeded "Please continue" nudges for sessions that were fine. Now, when Omniscio notices that time jumped, the stall detector grants one fresh detection window instead of counting the sleep as silence. A genuinely hung session still times out — one normal window after wake, not zero.
Unlike "Needs You" (amber) — where there's a visible question, plan, or permission prompt to act on — a stalled session has nothing in the transcript explaining the silence. So the chat panel shows a small orange alert just above the message box:
⚠️ This session stopped responding and may be stuck. Nothing was lost — continue to pick up where it left off. [ Continue ]
Clicking Continue sends a "Please continue" turn and auto-resumes the CLI
(via --resume), exactly as if you'd typed it. The session flips back to
green/running and carries on from where it stalled. (Typing any message into the
composer does the same thing.)
Continue also moves you on (2026-06-26). After you press Continue on a paused
or gray (ended) session, Omniscio advances your selection to the next such session
— the same "take me to the next one" you already get from archiving — so you can
rip through a pile of stopped sessions without clicking back into the list between
each. A stalled / Needs-You session likewise advances to the next item needing
you. If there's nothing left to move to, you simply stay on the session you just
resumed as it turns green. (This is the one-click Continue / C shortcut /
wait-timeout nudge; a normal typed reply still follows your Post-send
navigation preference instead.)
Every engine resumes on Continue (2026-06-10). Earlier, Codex / Pi / OpenClaw
showed a [ Start a new session ] button instead — their single long-lived
child can't be rehydrated and there is no --resume. They now resume the same
way Claude does: clicking Continue re-spawns the engine and replays the
session's stored conversation as context on that first message, so you pick up
where you left off without starting over. (Claude resumes via --resume; the
Claude-binary and one-shot-CLI providers were always resumable.) If the engine
genuinely can't restart — e.g. its API key was removed — you get one clear error
instead. See codex-provider.md.
Where to find it
Where it shows — and where it deliberately doesn't
- Chat panel only. The alert + Continue button live above the composer of the stalled session. That is the single stall-specific surface.
- A stalled session goes quiet in the sidebar (updated 2026-08-11). Under the
owner rule that reclassified
errorandstalledas non-attention, a stalled session no longer lands in your Inbox, no longer adds a project count badge, and no longer plays a chime. Instead it settles into the sidebar's Interrupted group — alongside ended sessions — where you can open it and press Continue when you're ready. (Before this, a stalled session appeared in the Inbox with a plain orange dot.) One exception: if the app is already quietly reconnecting a dropped session, it stays in Live with a "Reconnecting…" dot until it returns. See interrupted-sessions-section.md.
How it behaves
Auto-continue: does Omniscio try to revive it first?
Whether Omniscio nudges a silent session itself before flagging it depends on
Settings → Sessions → Auto-Continue Mid-Task (autoContinueEnabled, off by
default, in the "Waiting & keeping sessions going" group):
- Auto-Continue ON — when a session goes silent past the stall-detection time, Omniscio first sends up to 3 automatic "Please continue" nudges (spaced ~30s apart). It only marks the session Stalled? (and shows the alert) if all three fail to revive output.
- Auto-Continue OFF (default) — Omniscio skips the nudges and surfaces the Stalled? alert immediately once the time passes, leaving the decision to you.
Either way, once a session is stalled nothing resumes it automatically — it waits for you. This is distinct from two other recovery features that do not cover the stalled state:
- Crash recovery auto-resumes sessions that were running when Omniscio itself restarted.
- Aborted-response recovery self-heals when the
CLI drops a turn mid-flight (stamped
response_aborted, statusneeds_you/error) — a different failure from a stall.
How to clear it
Open the session and click Continue in the orange alert, press C, or type
any message into the composer. All three resume the turn. Pressing C works even
though Omniscio autofocuses the message box on a stalled session — the empty box no
longer swallows the key (it reverts to typing a literal c the moment you start a
reply). See keyboard-shortcuts.md.
Related
- session-stuck-in-needs-you.md — the amber "Needs You" states (question / plan / permission / rate-limit / auth / API error / stopped) and how to clear each.
- aborted-response-recovery.md — self-healing for when the CLI drops a turn mid-flight.
- crash-recovery.md — auto-resume after an Omniscio restart.
- waiting-detector.md — suppresses spurious "needs you" flips when the agent says it's waiting on something.
Last verified 2026-09-23