zed-industries/zed · error · LanguageModelCompletionError

ChatGPT subscription compaction returned no replacement cont

Error message

ChatGPT subscription compaction returned no replacement context

What it means

The compaction event stream completed without ever emitting a CompactionUpdate::Finished event, so there is no replacement context to swap in. The upstream ended the stream early (error, empty response, or only usage/intermediate events).

Source

Thrown at crates/openai_subscribed/src/openai_subscribed.rs:855

            let mut usage = language_model::TokenUsage::default();

            while let Some(event) = event_stream.next().await {
                match event? {
                    LanguageModelCompletionEvent::Compaction(
                        language_model::CompactionUpdate::Finished(context),
                    ) => {
                        if compacted_context.replace(context).is_some() {
                            return Err(LanguageModelCompletionError::Other(anyhow!(
                                "ChatGPT subscription compaction returned multiple replacement contexts"
                            )));
                        }
                    }
                    LanguageModelCompletionEvent::UsageUpdate(updated_usage) => {
                        usage = updated_usage;
                    }
                    _ => {}
                }
            }

            let context = compacted_context.ok_or_else(|| {
                LanguageModelCompletionError::Other(anyhow!(
                    "ChatGPT subscription compaction returned no replacement context"
                ))
            })?;
            Ok(CompactionResult { context, usage })
        })
        .boxed()
    }

    fn supported_effort_levels(&self) -> Vec<LanguageModelEffortLevel> {
        let default_effort = self.model.default_reasoning_effort();
        self.model
            .supported_reasoning_efforts()
            .iter()
            .copied()
            .filter_map(|effort| {

View on GitHub (pinned to 5a9b9558db)

Solutions

  1. Retry the compaction request — truncated streams are often transient network failures
  2. Check that the conversation context is not empty or already below the compaction threshold
  3. If persistent, inspect the upstream response for errors surfaced before the stream ended
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at crates/openai_subscribed/src/openai_subscribed.rs:823 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of zed-industries/zed@5a9b9558db (2026-08-20). Data as JSON: /api/errors/398ac5076e8c312f. Report an issue: GitHub.