{"version":"2.1.311","anchor":"ccr-upload-hold-later-worker-start-rows-waits-model-turn","canonical_anchor":"ccr-upload-hold-later-worker-start-rows-waits-model-turn","heading":"Remote worker event uploads: attempt header, retry and hold changes","tier":"internal","area":"Telemetry","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/ccr-upload-hold-later-worker-start-rows-waits-model-turn","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311","markdown":"### Remote worker event uploads: attempt header, retry and hold changes\n\nRemote workers now number each event upload attempt, retry when auth headers are missing, and can wait briefly before writing start rows\n\n**What**\n\nIn a remote session, the cloud worker running Claude Code uploads a stream of events about the session. Several parts of that upload changed.\n\n- Each internal event upload now carries the attempt number in a request header when it is known.\n\n- An upload with no sign-in headers now fails with a retryable error, \"internal event POST not sent\", instead of the general \"internal event POST failed\".\n\n- A 404 (not found) reply counts toward ending the session as gone only when the request was not to one particular excluded path.\n\n- Metadata reports drop repeats of values already recorded at start.\n\n- Writes of start rows, the first entries after a person's message, can wait up to a limit set by a `startRowsMaxWaitMs` flush policy.\n\n- Whether events are held now follows the policy the server sends, instead of `eventHoldEnabled()`.\n\n- Once a marking result is uploaded, the worker reports `model_turn_stored` internal metadata.\n\n**Why**\n\nThese are reliability changes inside remote sessions. Uploads that fail for lack of sign-in details are retried, and a stray not-found reply is less likely to end a session that is still alive.\n\n- Area: Telemetry\n- Tier: Under the hood\n- Useful: 1\/5\n- Signal: 2\/5\n- Scope: individual\n- Heads-up: no"}