Skip to content

[Bug]: Chat UI: prompts rejected immediately ("OpenCode 2 didn't accept this message") when the selected model is a GitHub Copilot model #31475

Closed

Description

@AlxTx

Operating system

macOS

Orca version

1.4.232

Details

In the Chat UI, any prompt sent while a github-copilot/* model is selected fails right away with a red "OpenCode 2 didn't accept this message." Models from the opencode provider work in the same session. OpenCode 1 shows the same behavior with Copilot models.

Steps to reproduce

  1. Open a worktree and start an OpenCode 2 agent as a chat
  2. Select github-copilot/gpt-6-luna
  3. Send any message
  4. The message bubble appears, followed by the red error. No reply arrives

Expected
The prompt reaches OpenCode and the model replies, as with non-Copilot models.
Actual

  • Orca marks the agent done with outcome: failure.
  • OpenCode never records the user message. The exported session only contains the model-switched entry.
  • The failure is recorded about 4 ms after the model switch.
    Evidence (one session, via opencode2 session export)
  1. Created with github-copilot/gpt-6-luna. No message recorded.
  2. Switched to an opencode provider free model. Message accepted, assistant replied, idle succeeded.
  3. Switched back to github-copilot/gpt-6-luna. Prompt rejected, no message recorded, Orca shows failure.
    What works
  • opencode2 run --model github-copilot/gpt-6-luna "Reply OK" returns OK.
  • The OpenCode 2 service is healthy and Copilot credentials are listed by opencode2 auth list.
  • Orca's agentSession.startup reports outcome: ready.
    Logs
  • Orca main.trace.ndjson: no error recorded for the rejected send.
  • OpenCode opencode.log: no error for the session.
  • agentModelCatalog.discovery for opencode2 returns a varying model count across runs (67, 10, 24, 37). This may or may not be related.

Suspicion (unconfirmed)
The Chat UI may send a provider, model or variant payload that OpenCode rejects for Copilot models only. The CLI path does not hit this.

Workaround
Use a non-Copilot model in the Chat UI, or use the OpenCode 2 terminal agent with Copilot models.

Activity

  1. added theissue type on Oct 21, 2026
  2. yzyDavid commented on Oct 23, 2026

    @yzyDavid

    Root cause for this class of failure identified in #32183: OpenCode 2.x (v2.1.2/2.1.3) does not implement session/set_model — it returns -32601 "Method not found" — and Orca's model-write path (acp-session-runtime.ts → applyAcpMessageOptions) turns that into AgentSessionOptionRejectedError, rejecting the message before session/prompt is ever sent. Your Copilot models hit the same path because they differ from the agent's current/default model; the default model skips the write (the reported()[key] === value condition). Verified fallback: session/set_config_option {configId: "model", value} works on opencode 2.1.2 and switches the model correctly.

  3. yzyDavid commented on Oct 23, 2026

    @yzyDavid

    Correction to my earlier comment: on v1.4.237 the OpenCode 2 model switch actually goes through session/set_config_option (Orca's write() prefers the agent-declared model config option, which OpenCode 2 exposes), so session/set_model is not the trigger here. The confirmed cause for this symptom class is the effort-admission guard fixed in #32004 (merged 2026-10-22, not yet in v1.4.237) — a message with no effort on a model with no known default effort was refused whenever the agent reported one. Full verification in my update on #32183.

  4. nwparker commented on Oct 24, 2026

    @nwparker
    Contributor

    Thanks for the detailed report, @AlxTx. Chats failing with a model-only change (no known default effort for the selected model) were fixed in #32004 (shipped in v1.4.239): the guard now only refuses when Orca has already applied a value that differs from the agent's initial one, for both ACP and Pi RPC chats. Could you try the latest build? If it still happens, please reply or reopen with the details.

  5. nwparker commented on Oct 26, 2026

    @nwparker
    Contributor

    Thanks for the detailed report and the session export evidence, @AlxTx. This is fixed by #32004 (752f531), which shipped in v1.4.239. When a chat switched to a model with no known default effort, the message was refused locally before it reached OpenCode. That's why the failure showed up about 4 ms after the model switch and no user message was recorded. Now Orca refuses only if it has already applied an effort value that differs from the one the session started with, so switching to a Copilot model and sending works. If you still see "didn't accept this message" on the latest build, please comment here and we'll reopen.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingos:macosIssues affecting macOS

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions