continuedev/continue · error · Error
Relace provider does not support streaming completion.
Error message
Relace provider does not support streaming completion.
What it means
Relace's adapter does not implement legacy streaming text completions; completionStream always throws. Relace only exposes its edit-style chat/FIM interface.
Source
Thrown at packages/openai-adapters/src/apis/Relace.ts:159
completion_tokens: result.usage.completion_tokens || 0,
total_tokens: result.usage.total_tokens,
},
});
}
completionNonStream(
body: CompletionCreateParamsNonStreaming,
signal: AbortSignal,
): Promise<Completion> {
throw new Error(
"Relace provider does not support non-streaming completion.",
);
}
completionStream(
body: CompletionCreateParamsStreaming,
signal: AbortSignal,
): AsyncGenerator<Completion> {
throw new Error("Relace provider does not support streaming completion.");
}
fimStream(
body: FimCreateParamsStreaming,
signal: AbortSignal,
): AsyncGenerator<ChatCompletionChunk> {
throw new Error(
"Relace provider does not support streaming FIM completion.",
);
}
embed(body: EmbeddingCreateParams): Promise<CreateEmbeddingResponse> {
throw new Error("Relace provider does not support embeddings.");
}
rerank(body: RerankCreateParams): Promise<CreateRerankResponse> {
throw new Error("Relace provider does not support reranking.");
}
list(): Promise<Model[]> {
throw new Error("Relace provider does not support model listing.");
}View on GitHub (pinned to 5522c6f44c)
Solutions
- Use chatCompletionStream for Relace requests
- Send legacy streaming completions to another provider
- Add capability flags and skip Relace for legacy completion routes
Defensive patterns
Strategy: fallback
Validate before calling
if (provider === 'relace') throw new Error('Use chatCompletionStream instead'); Type guard
const supportsCompletionStream = (p: string) => p !== 'relace';
Try / catch
try { yield* api.completionStream(body); } catch (e) { if (e.message.includes('does not support streaming completion')) yield* api.chatCompletionStream(toChatParams(body)); else throw e; } Prevention
- Never send legacy completions to Relace
When it happens
Trigger: Calling completionStream() on a Relace adapter instance.
Common situations: Streaming completion pipelines pointed at a Relace model id; capability-agnostic dispatch code assuming every adapter supports the full completion surface.
Understand the failure class
Background: UnsupportedOperationException and "is not supported" errors: when a library deliberately refuses a call — this error's family across 30 libraries.
Related errors
- Relace provider does not support non-streaming completion.
- GitLab Private Token is required!
- Relace provider does not support streaming FIM completion.
- Relace provider does not support embeddings.
- Relace provider does not support reranking.
AI-assisted analysis of continuedev/continue@5522c6f44c (2026-08-27).
Data as JSON: /api/errors/7e3dd49c3c9433c0.
Report an issue: GitHub.