continuedev/continue · error · Error
Relace provider does not support non-streaming completion.
Error message
Relace provider does not support non-streaming completion.
What it means
Relace is an editing/FIM-only provider; its adapter explicitly rejects legacy non-streaming text completions with this error rather than silently failing.
Source
Thrown at packages/openai-adapters/src/apis/Relace.ts:151
content: mergedCode,
model: body.model,
});
yield usageChatChunk({
model: body.model,
usage: {
prompt_tokens: result.usage.prompt_tokens || 0,
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> {View on GitHub (pinned to 5522c6f44c)
Solutions
- Use chatCompletionNonStream / chatCompletionStream (the edit API) instead of legacy completions
- Route legacy completion traffic to an OpenAI-compatible adapter
- Catch this error and fall back to a chat-completion-shaped request
Defensive patterns
Strategy: fallback
Validate before calling
if (provider === 'relace') throw new Error('Relace has no legacy completions; use chatCompletionNonStream'); Type guard
const supportsLegacyCompletion = (p: string) => p !== 'relace';
Try / catch
try { return await api.completionNonStream(body); } catch (e) { if (e.message.includes('does not support non-streaming completion')) return await api.chatCompletionNonStream(toChatParams(body)); throw e; } Prevention
- Map legacy completion params to chat params for Relace
When it happens
Trigger: Calling completionNonStream() on a Relace adapter with CompletionCreateParamsNonStreaming.
Common situations: Generic completion dispatch code that tries non-streaming first; older codebases using /v1/completions-style calls routed to Relace.
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 streaming completion.
- Relace provider does not support streaming FIM completion.
- Relace provider does not support embeddings.
- Relace provider does not support reranking.
- Relace provider does not support model listing.
AI-assisted analysis of continuedev/continue@5522c6f44c (2026-08-27).
Data as JSON: /api/errors/dbb306b284eedf6f.
Report an issue: GitHub.