Repository navigation
Description
Before submitting
- I searched existing issues and did not find a duplicate.
- I included enough detail to reproduce or investigate the problem.
Area
apps/server
Steps to reproduce
On macOS, T3 Code Beta 0.1.2, bundled @cursor/sdk 1.0.35, Cursor provider, model claude-opus-5-5:
- Use a long-lived Cursor thread and send a normal agent prompt (tools, then a final answer).
- Let the turn finish.
- Watch the thread for the next ~20 seconds.
This is not tied to one prompt. The same thread hit it five times between 19:25 and 19:56 UTC on 2026-10-23. The same run.completed error is also in that thread's provider log on 2026-10-22, and in a second Cursor thread on 2026-10-20. Provider logs for Codex, Claude Code, and OpenCode sessions on this machine have zero matches.
Expected behavior
Once turn-ended has been delivered, the run completes as finished. A later retryable stream error does not resume from an older checkpoint, and the thread does not show a provider error after the answer is already on screen.
Actual behavior
The real turn ends and its text is already in the transcript. About 9–16 seconds later the SDK resumes inside the same run (no new run.start from T3), streams a short new closing from an older checkpoint, ends that turn, waits again, and does it a second time. The run then completes with:
status: error
error.message: Agent turn stopped after repeated resume attempts made no progress
T3 shows that as Provider error. The SDK's own displayInfo for this throw is title "Agent stopped retrying", detail "The connection was interrupted repeatedly without saving progress, so the agent stopped to avoid repeating the same work. Retry to continue from the last saved state."
The next user message still works, because the streamed answer was already saved. The two resumes can append a second, slightly different closing paragraph. They did not re-run the original tool calls.
All five failures this afternoon, from ~/.t3/userdata/logs/provider/events.<threadId>.log. Each run has exactly three turn-ended events and one run.completed. Both resumes share one input-token count and write no cache:
| Ended (UTC) | Real turn in / out / cache write | Resume input, both times | Resume output tokens |
|---|---|---|---|
| 19:25:39 | 538,322 / 6,835 / 72,912 | 81,305 | 900, then 936 |
| 19:28:16 | 331,916 / 1,972 / 2,634 | 83,939 | 740, then 850 |
| 19:33:29 | 644,582 / 5,966 / 13,242 | 97,181 | 669, then 655 |
| 19:42:58 | 514,589 / 3,422 / 99,884 | 108,277 | 283, then 337 |
| 19:56:36 | 693,509 / 8,779 / 120,332 | 124,415 | 86, then 66 |
Example tail of run-052e00a4-4ca1-49b1-947d-93d847ad6bc3 (durationMs 588298):
19:56:17.709 turn-ended in 693509 out 8779 cacheWrite 120332
19:56:26.720 turn-ended in 124415 out 86 cacheWrite 0
19:56:36.652 turn-ended in 124415 out 66 cacheWrite 0
19:56:36.837 run.completed status=error
"Agent turn stopped after repeated resume attempts made no progress"
There are no protocol events in the gaps. The provider log does not include the SDK's [AGENT_ERROR_DIAGNOSTICS] line, so the underlying retryable error (the cause) is not visible there.
Not a duplicate of #19112 or #23412. Those are the Windows store.db path past 252 characters: no checkpoint file is created, retries resend the original action and re-execute tools, and the run ends as [internal] unable to open database file or Connection failed repeatedly. Here:
- Host is macOS 26.6.2, so
MAX_PATHdoes not apply. - The first
turn-endedhas a large cache write, so a checkpoint of the finished turn was produced. - The resumes start from a smaller, stable input-token count and write 0 cache. They regenerate a short closing. They do not replay the tool calls.
- The thrown message is the SDK's no-progress guard, not the database or transport-cap errors.
In the bundled 1.0.35 retry loop, a retry resets the no-progress counter when handleCheckpoint saved a new checkpoint. Otherwise, if the current action is resumeAction and the attempt streamed application progress, the counter increments. At 2 it stops automatic resume and throws this message. A terminal checkpoint (ineligible_terminal_turn) would have completed the run without resuming. turn-ended reached T3, and that terminal checkpoint did not.
Impact
Major degradation or frequent failure
Version or commit
T3 Code (Beta) 0.1.2, bundled @cursor/sdk 1.0.35
Environment
macOS 26.6.2 (darwin 25.6.0), T3 Code Beta 0.1.2 desktop (Electron 44.9.3), Cursor provider, model claude-opus-5-5 (fast: false)
Logs or stack traces
See the table above. Source log: ~/.t3/userdata/logs/provider/events.<threadId>.log, events with "message":"Agent turn stopped after repeated resume attempts made no progress".
Workaround
Send another message. The answer from the first turn-ended is already in the transcript, and the error is marked retryable. There is no project-side change that avoids it.
Activity