{"record":{"id":"7e3dd49c3c9433c0","repo":"continuedev/continue","slug":"relace-provider-does-not-support-streaming-complet","errorCode":null,"errorMessage":"Relace provider does not support streaming completion.","messagePattern":"Relace provider does not support streaming completion\\.","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/openai-adapters/src/apis/Relace.ts","lineNumber":159,"sourceCode":"        completion_tokens: result.usage.completion_tokens || 0,\n        total_tokens: result.usage.total_tokens,\n      },\n    });\n  }\n\n  completionNonStream(\n    body: CompletionCreateParamsNonStreaming,\n    signal: AbortSignal,\n  ): Promise<Completion> {\n    throw new Error(\n      \"Relace provider does not support non-streaming completion.\",\n    );\n  }\n  completionStream(\n    body: CompletionCreateParamsStreaming,\n    signal: AbortSignal,\n  ): AsyncGenerator<Completion> {\n    throw new Error(\"Relace provider does not support streaming completion.\");\n  }\n  fimStream(\n    body: FimCreateParamsStreaming,\n    signal: AbortSignal,\n  ): AsyncGenerator<ChatCompletionChunk> {\n    throw new Error(\n      \"Relace provider does not support streaming FIM completion.\",\n    );\n  }\n  embed(body: EmbeddingCreateParams): Promise<CreateEmbeddingResponse> {\n    throw new Error(\"Relace provider does not support embeddings.\");\n  }\n  rerank(body: RerankCreateParams): Promise<CreateRerankResponse> {\n    throw new Error(\"Relace provider does not support reranking.\");\n  }\n  list(): Promise<Model[]> {\n    throw new Error(\"Relace provider does not support model listing.\");\n  }","sourceCodeStart":141,"sourceCodeEnd":177,"githubUrl":"https://github.com/continuedev/continue/blob/5522c6f44ca0ac3528b37244818fbfa39b5af470/packages/openai-adapters/src/apis/Relace.ts#L141-L177","documentation":"Relace's adapter does not implement legacy streaming text completions; completionStream always throws. Relace only exposes its edit-style chat/FIM interface.","triggerScenarios":"Calling completionStream() on a Relace adapter instance.","commonSituations":"Streaming completion pipelines pointed at a Relace model id; capability-agnostic dispatch code assuming every adapter supports the full completion surface.","solutions":["Use chatCompletionStream for Relace requests","Send legacy streaming completions to another provider","Add capability flags and skip Relace for legacy completion routes"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":"if (provider === 'relace') throw new Error('Use chatCompletionStream instead');","typeGuard":"const supportsCompletionStream = (p: string) => p !== 'relace';","tryCatchPattern":"try { yield* api.completionStream(body); } catch (e) { if (e.message.includes('does not support streaming completion')) yield* api.chatCompletionStream(toChatParams(body)); else throw e; }","preventionTips":["Never send legacy completions to Relace"],"tags":["relace","unsupported-operation","streaming","completions"],"backgroundTag":"unsupported-operation","analyzedSha":"5522c6f44ca0ac3528b37244818fbfa39b5af470","analyzedAt":"2026-08-27T11:28:54.683Z","schemaVersion":2},"datasetVersion":"2026-08-27T13:17:12.746Z"}