continuedev/continue · error · Error

Relace provider does not support streaming FIM completion.

Error message

Relace provider does not support streaming FIM completion.

What it means

Relace's adapter explicitly rejects FIM (fill-in-the-middle) streaming requests: 'Relace provider does not support streaming FIM completion.' Its editing model is driven through the chat edit API, not raw FIM.

Source

Thrown at packages/openai-adapters/src/apis/Relace.ts:165

  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

  1. Use Relace's chat edit endpoint (chatCompletionStream with prompt/prediction) instead of FIM
  2. Point FIM requests at a FIM-capable provider
  3. Gate FIM traffic on provider capability checks
Defensive patterns

Strategy: fallback

Validate before calling

if (provider === 'relace') throw new Error('Relace has no FIM; use chat edit API');

Type guard

const supportsFim = (p: string) => p !== 'relace';

Try / catch

try { yield* api.fimStream(body); } catch (e) { if (e.message.includes('does not support streaming FIM')) { /* reroute to FIM provider */ } else throw e; }

Prevention

When it happens

Trigger: Calling fimStream() on a Relace adapter with FimCreateParamsStreaming.

Common situations: Code-completion/autocomplete features configured with Relace expecting Codestral-style FIM endpoints; generic FIM routing across all providers.

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


AI-assisted analysis of continuedev/continue@5522c6f44c (2026-08-27). Data as JSON: /api/errors/254ab5c09b0d14fd. Report an issue: GitHub.