continuedev/continue · warning · Error

Method not implemented.

Error message

Method not implemented.

What it means

The Gemini adapter does not support legacy non-streaming text completions; completionNonStream is an intentional stub. Gemini is only reachable through its chat/generateContent surface here.

Source

Thrown at packages/openai-adapters/src/apis/Gemini.ts:454

  }

  async *streamWithGenAI(
    genAI: GoogleGenAI,
    body: ChatCompletionCreateParamsStreaming,
  ): AsyncGenerator<ChatCompletionChunk> {
    const convertedBody = this._convertBody(body, false, true);
    const response = await this.generateStream(
      genAI,
      body.model,
      convertedBody,
    );
    yield* this.processStreamResponse(response, body.model);
  }

  completionNonStream(
    _body: CompletionCreateParamsNonStreaming,
  ): Promise<Completion> {
    throw new Error("Method not implemented.");
  }
  completionStream(
    body: CompletionCreateParamsStreaming,
  ): AsyncGenerator<Completion> {
    throw new Error("Method not implemented.");
  }
  fimStream(
    body: FimCreateParamsStreaming,
  ): AsyncGenerator<ChatCompletionChunk> {
    throw new Error("Method not implemented.");
  }
  async rerank(body: RerankCreateParams): Promise<CreateRerankResponse> {
    throw new Error("Method not implemented.");
  }

  async embed(body: EmbeddingCreateParams): Promise<CreateEmbeddingResponse> {
    const inputs = Array.isArray(body.input) ? body.input : [body.input];
    const response = await customFetch(this.config.requestOptions)(

View on GitHub (pinned to 5522c6f44c)

Solutions

  1. Use chatCompletionNonStream instead.
  2. Route legacy prompt-style requests to a completions-capable provider.
  3. Add capability flags in your router.

Example fix

// before
await gemini.completionNonStream({ model: 'gemini-2.0-flash', prompt: 'hi' });
// after
await gemini.chatCompletionNonStream({ model: 'gemini-2.0-flash', messages: [{ role: 'user', content: 'hi' }] });
Defensive patterns

Strategy: fallback

Type guard

const supportsLegacyCompletions = (p: API): boolean => !(p instanceof Gemini);

Try / catch

catch (e) { if (/not implemented/.test(e.message)) return p.chatCompletionNonStream(promptToChat(body)); throw e; }

Prevention

When it happens

Trigger: Calling completionNonStream(CompletionCreateParamsNonStreaming) on the Gemini adapter.

Common situations: Unified completion routers falling back to /v1/completions for base-model prompts routed to Gemini.

Related errors


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