{"record":{"id":"7c175777bb8626d3","repo":"zeroclaw-labs/zeroclaw","slug":"cancel-tokens-lock-poisoned","errorCode":null,"errorMessage":"cancel_tokens lock poisoned","messagePattern":"cancel_tokens lock poisoned","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/zeroclaw-gateway/src/api.rs","lineNumber":1885,"sourceCode":") -> impl IntoResponse {\n    if let Err(e) = require_auth(&state, &headers) {\n        return e.into_response();\n    }\n\n    let Some(ref backend) = state.session_backend else {\n        return (\n            StatusCode::NOT_FOUND,\n            Json(serde_json::json!({\"error\": \"Session persistence is disabled\"})),\n        )\n            .into_response();\n    };\n\n    let session_key = resolve_gateway_session_key(&id, |key| backend.session_exists(key));\n\n    let token = state\n        .cancel_tokens\n        .lock()\n        .expect(\"cancel_tokens lock poisoned\")\n        .remove(&session_key);\n    if let Some(token) = token {\n        token.cancel();\n        ::zeroclaw_log::record!(\n            INFO,\n            ::zeroclaw_log::Event::new(module_path!(), ::zeroclaw_log::Action::Note)\n                .with_attrs(::serde_json::json!({\"session_key\": session_key})),\n            \"cancelled in-flight turn for deleted session\"\n        );\n    }\n\n    match backend.delete_session(&session_key) {\n        Ok(true) => Json(serde_json::json!({\"deleted\": true, \"session_id\": id})).into_response(),\n        Ok(false) => (\n            StatusCode::NOT_FOUND,\n            Json(serde_json::json!({\"error\": \"Session not found\"})),\n        )\n            .into_response(),","sourceCodeStart":1867,"sourceCodeEnd":1903,"githubUrl":"https://github.com/zeroclaw-labs/zeroclaw/blob/88bb9c8533fc57ed7a03e36ca7c9ed2bf8336dcc/crates/zeroclaw-gateway/src/api.rs#L1867-L1903","documentation":"Error \"cancel_tokens lock poisoned\" thrown in zeroclaw-labs/zeroclaw.","triggerScenarios":"Thrown at crates/zeroclaw-gateway/src/api.rs:1885 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Restart the gateway; a poisoned lock means a task panicked while holding it.","Report a bug with the earlier panic backtrace so the poisoning root cause can be fixed."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"88bb9c8533fc57ed7a03e36ca7c9ed2bf8336dcc","analyzedAt":"2026-08-23T01:07:41.857Z","schemaVersion":2},"datasetVersion":"2026-08-23T08:06:27.607Z"}