Skip to content

github-copilot: gemini-3.8-flash Responses API failure recurs on 2.0.25 #53961

Closed

Description

@InCerryGit

Description

GitHub Copilot gemini-3.8-flash failed in an OpenCode 2.0.25 subagent session with:

model gemini-3.8-flash does not support Responses API.

This appears to be a recurrence of #53712, which was closed by its reporter after the problem stopped occurring, without a linked fix. The same error is still observable on 2.0.25. This report does not assume a dropped variant or claim a confirmed root cause.

OpenCode version

2.0.25 (release/latest channel)

Operating System

Linux x64 under WSL2, kernel 6.18.40.1-microsoft-standard-WSL2; shell /usr/bin/bash.

Terminal

OpenChamber web UI, using a managed opencode serve instance. Terminal environment variables are not set.

Plugins

[email protected], [email protected], OpenChamber agent-tool integration, and an opencode-mem loader. The configuration also contains -opencode.browser; its loaded status was not independently verified. A plugin-disabled reproduction has not been performed.

Steps to reproduce

Observed workflow:

  1. Run OpenCode 2.0.25 as an OpenChamber-managed server with GitHub Copilot authenticated.
  2. Configure an oh-my-opencode-slim custom subagent to use github-copilot/gemini-3.8-flash.
  3. Dispatch a background task to that subagent from a primary session.
  4. The child task terminates with the error above, before returning a task result.

The delegated task was read-only configuration troubleshooting. Its private prompt and session contents are intentionally omitted. Only one occurrence was observed in this workflow; failure frequency has not been established. A replacement task using another provider/model completed, but that is not a controlled Copilot comparison.

Expected Behavior

The model should be routed to an endpoint that GitHub Copilot supports for it, and the child session should return a response.

Actual Behavior

The child task failed with model gemini-3.8-flash does not support Responses API. Retrieving its terminal result confirmed the same failure.

Additional Context

In #53712, the reporter found that the Copilot language hook honors options.endpoint when present, but the fallback heuristic can select Responses for gemini-* when live endpoint metadata is missing. They reported that Copilot's live model list consistently advertised /chat/completions for gemini-3.8-flash.

That is a relevant hypothesis, not independently confirmed for this failed request. We have not captured its outgoing endpoint or live supported-endpoints metadata. Please investigate whether the fallback remains unsafe when model endpoint metadata is unavailable, and whether a documented per-model endpoint override is an appropriate workaround. Forcing every Copilot model onto chat completions could affect models that require Responses, so a model-specific workaround would be preferable.

No service restart, plugin-disabled run, or paid model-call reproduction has been performed specifically for this report.

Activity

  1. opencode-agent commented on Oct 8, 2026

    @opencode-agent
    Contributor

    Thanks for the detailed report and for linking #53712.

    I couldn't reproduce the failure itself: the error text comes from GitHub Copilot's API, and this sandbox has no Copilot account. I did read the code on 2.0.25 and on the latest v2 (a67cf4c), and the path suspected in #53712 is there and unchanged:

    • OpenCode only sets a Copilot model's endpoint (Responses or chat completions) from Copilot's live model list.
    • If loading that list fails, OpenCode logs failed to sync GitHub Copilot models and carries on without endpoint information.
    • With no endpoint information, a fallback sends every gemini-* model to the Responses API. That fallback was added on purpose in fix(core): route responses-only Copilot models to the Responses API #51024, which assumed Copilot serves Gemini only on Responses.

    If Copilot lists only /chat/completions for gemini-3.8-flash, as #53712 observed, any request made while the live list is missing or out of date would fail exactly like this. That would also explain why it comes and goes. Confirming it needs someone with Copilot access to check the live model data, so a maintainer will need to look at it.

    Things that would help if it happens again:

    • Whether the server log has a failed to sync GitHub Copilot models warning around the time of the failure.

    A possible model-specific workaround, which I haven't tested against Copilot: set the endpoint for just this model in your config:

    {
      "provider": {
        "github-copilot": {
          "models": {
            "gemini-3.8-flash": { "settings": { "endpoint": "chat" } }
          }
        }
      }
    }

    Related: #53712 (same error and model), #51024 (added the Responses fallback for Gemini, Grok and MAI Code).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions