It needs an answer
The most common one, and it is working as intended.
A Worker that hits a decision only a human can make asks the question and waits. The ticket shows it needs input, and the question appears in the chat with the agent's own recommended answer pre-selected.
Answer it and the run continues in the same session. If you leave it, the ticket sits there. Nothing times out and nothing guesses on your behalf.
In an unattended run (a goal drain or an automation) the inline question is dropped instead. The Worker proceeds on its recommended answer and records it in the plan's Open questions as an explicit stated assumption. You get the finding either way, so the assumption is visible in review rather than silent.
It is waiting at a gate
If your project has approval gates turned on, a ticket can be complete and still not proceed.
- Build gate - the plan needs N approvals before a Worker is dispatched.
- Merge gate - the diff needs N approvals before any merge path runs.
The card shows gate progress, so a ticket waiting on people rather than on machines is visible from the board.
Its session died
Rarer, and the one that looks alarming. A machine slept, a process was killed, a network dropped.
Fredrin detects a ticket that claims to be running but has no live session, and offers recovery: resume the session where it left off, or reset the build and start clean.
Resume keeps the transcript and the worktree. Use it when the run was mostly fine.
Reset build deletes the ticket's jobs and conversation and returns it to the backlog. Use it when you want a genuinely fresh start, including a different model. Dragging a card back to Backlog is not the same thing: the old jobs survive and the runtime pickers stay locked.
It finished, and you did not notice
Worth ruling out. A ticket in Review is not stuck, it is waiting on you. Check whether the column moved before assuming the Worker did.
Diagnosing
In order:
- Look at the column. Review means it is done. Blocked means it needs you. Running means it is still working.
- Open the chat tab. An unanswered question is visible immediately.
- Open the terminal tab. The raw session shows what the CLI itself is doing.
- Check gate progress on the card. Waiting on approvals looks identical to waiting on nothing.
If none of those explains it, troubleshooting covers the environmental causes: a failed prerequisite, a port conflict, an expired credential.
Next steps
- Running a ticket - what a healthy run looks like.
- Troubleshooting - environmental failures.
- Automations - unattended runs and how they degrade.