{"record":{"id":"352611ee52444bd2","repo":"zed-industries/zed","slug":"provider-name-abandoned-compaction-without-produ","errorCode":null,"errorMessage":"{provider_name} abandoned compaction without producing replacement context","messagePattern":"(.+?) abandoned compaction without producing replacement context","errorType":"exception","errorClass":"LanguageModelCompletionError","httpStatus":null,"severity":"error","filePath":"crates/anthropic/src/completion.rs","lineNumber":88,"sourceCode":"/// context, or reports that the provider abandoned compaction.\npub async fn collect_compaction_result(\n    mut stream: BoxStream<\n        'static,\n        Result<LanguageModelCompletionEvent, LanguageModelCompletionError>,\n    >,\n    provider_name: LanguageModelProviderName,\n) -> Result<(CompactedContext, TokenUsage), LanguageModelCompletionError> {\n    let mut context = None;\n    let mut usage = TokenUsage::default();\n    while let Some(event) = stream.next().await {\n        match event? {\n            LanguageModelCompletionEvent::Compaction(CompactionUpdate::Finished(\n                compacted_context,\n            )) => {\n                context = Some(compacted_context);\n            }\n            LanguageModelCompletionEvent::Compaction(CompactionUpdate::Failed) => {\n                return Err(LanguageModelCompletionError::Other(anyhow!(\n                    \"{provider_name} abandoned compaction without producing replacement context\"\n                )));\n            }\n            LanguageModelCompletionEvent::UsageUpdate(updated_usage) => {\n                usage = updated_usage;\n            }\n            LanguageModelCompletionEvent::Stop(_) => {\n                return context.map(|context| (context, usage)).ok_or(\n                    LanguageModelCompletionError::StreamEndedUnexpectedly {\n                        provider: provider_name,\n                    },\n                );\n            }\n            LanguageModelCompletionEvent::Queued { .. }\n            | LanguageModelCompletionEvent::Started\n            | LanguageModelCompletionEvent::Text(_)\n            | LanguageModelCompletionEvent::Thinking { .. }\n            | LanguageModelCompletionEvent::RedactedThinking { .. }","sourceCodeStart":70,"sourceCodeEnd":106,"githubUrl":"https://github.com/zed-industries/zed/blob/f4178619acd0d47ea1f76a2025c42962c6d6638c/crates/anthropic/src/completion.rs#L70-L106","documentation":"collect_compaction_result drains an Anthropic compaction stream and never received a CompactionUpdate::Finished event before the stream ended; the provider stopped without delivering a replacement summary, so the old context would be lost if compaction were applied, and the error names the offending provider.","triggerScenarios":"Thrown at crates/anthropic/src/completion.rs:88 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Retry the compaction request — transient provider cutoffs usually succeed on a second attempt","Keep the original (uncompacted) context on failure so the conversation can continue with full history","If it recurs persistently, fall back to local (client-side) summarization of the thread"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"f4178619acd0d47ea1f76a2025c42962c6d6638c","analyzedAt":"2026-08-20T19:29:52.058Z","contentChangedAt":"2026-08-20T19:29:52.058Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}