{"record":{"id":"4f233c4e2c1a84a9","repo":"Hmbown/CodeWhale","slug":"reserved-runtime-turn-id-does-not-match-the-durable","errorCode":null,"errorMessage":"reserved Runtime turn id does not match the durable operation binding","messagePattern":"reserved Runtime turn id does not match the durable operation binding","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/tui/src/runtime_threads.rs","lineNumber":9736,"sourceCode":"        thread_id: &str,\n        req: StartTurnRequest,\n    ) -> Result<(TurnRecord, bool)> {\n        self.start_turn_inner_reporting_replay(thread_id, req, None)\n            .await\n    }\n\n    pub(crate) async fn start_turn_with_reserved_id(\n        &self,\n        thread_id: &str,\n        req: StartTurnRequest,\n        reserved_turn_id: &str,\n    ) -> Result<TurnRecord> {\n        validated_record_id(reserved_turn_id, \"reserved turn id\")?;\n        let turn = self\n            .start_turn_inner(thread_id, req, Some(reserved_turn_id))\n            .await?;\n        if turn.id != reserved_turn_id {\n            bail!(\"reserved Runtime turn id does not match the durable operation binding\");\n        }\n        Ok(turn)\n    }\n\n    async fn start_turn_inner(\n        &self,\n        thread_id: &str,\n        req: StartTurnRequest,\n        reserved_turn_id: Option<&str>,\n    ) -> Result<TurnRecord> {\n        self.start_turn_inner_reporting_replay(thread_id, req, reserved_turn_id)\n            .await\n            .map(|(turn, _replayed)| turn)\n    }\n\n    async fn start_turn_inner_reporting_replay(\n        &self,\n        thread_id: &str,","sourceCodeStart":9718,"sourceCodeEnd":9754,"githubUrl":"https://github.com/Hmbown/CodeWhale/blob/73e0f67d83c59909b571efdfc88c4bc28c309cb1/crates/tui/src/runtime_threads.rs#L9718-L9754","documentation":"start_turn_with_reserved_id postcondition: the turn created under the reserved id came back with a different id, meaning the runtime did not honor the reservation; the mismatch fails loudly because the reserved id and the durable operation binding would otherwise diverge.","triggerScenarios":"Thrown at crates/tui/src/runtime_threads.rs:9736 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Retry the turn without a reserved id, or with a reserved id derived from the same operation binding.","Ensure the caller passes a reserved id only alongside the operation key that produced it."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"73e0f67d83c59909b571efdfc88c4bc28c309cb1","analyzedAt":"2026-09-22T01:30:00.501Z","contentChangedAt":"2026-09-22T01:30:00.501Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}