silent fallback to opus 4.8 or gpt 5.3 codex · Issue #226 · upstash/box · GitHub
Skip to content

silent fallback to opus 4.8 or gpt 5.3 codex #226

Open

Description

@mtahasylmz

Hey team,

Box silently uses some predefined models when some other model is chosen with OpenRouter as the provider.

Go to the console, create a box with claude code harness, choose, say, DeepSeek V4 Flash from OpenRouter. It will say that it successfully created the box, yet Claude Code falls back to Opus 4.8. If you do it with Codex, it will silently fallback to GPT-5.3-codex.

I realized this when i used my own OpenRouter key, and its logs reported me different models than i used and my credit is gone way faster. I thought it is because of BYOK but the following image is a box with Upstash Managed model provider.

Image

see that console claims it to be deepseek and local logs tell otherwise.

let me know if i am missing sth.

Thanks

Activity

  1. mtahasylmz commented on Aug 21, 2026

    @mtahasylmz
    Author

    I do not think it is related only to OpenRouter btw, i think this is because of a local model list in the source code since these fallback models were the latest models when box was first introduced. Below is a concise report from my agent. I know that this is not related to this SDK repo but i think this is the best way to reach out.


    Bug: Claude Code silently ignores selected OpenRouter model

    Using @upstash/box@0.7.0 with an Upstash-managed key:

    await Box.create({
      runtime: "node",
      agent: {
        harness: Agent.ClaudeCode,
        model: "openrouter/deepseek/deepseek-r1",
        apiKey: BoxApiKey.UpstashKey,
      },
    });

    The Box metadata records the requested DeepSeek model, but Claude Code’s session JSONL records:

    anthropic/claude-opus-4.8
    

    Reproduced with both DeepSeek R1—an official OpenRouterModel value—and DeepSeek V4 Flash. It also reproduces through the raw /v2/box REST API, without the SDK.

    Expected: execute the selected model, or reject unsupported combinations before inference.

    Actual: silently executes and bills an unrelated Opus model.

    Example retained Boxes:

    • romantic-mongrel-63475 — DeepSeek R1
    • sterling-gorilla-09237 — DeepSeek V4 Flash
  2. mtahasylmz commented on Aug 21, 2026

    @mtahasylmz
    Author

    By the way, apart from this issue, it would be great if we were able to see which harness it is when we are inspecting a specific box on console. It is visible on the boxes list, yet when i click on one of them, there is no indicator stating which harness it is.

  3. buggyhunter commented on Aug 30, 2026

    @buggyhunter
    Contributor

    @mtahasylmz thanks for the report, working on it rn

  4. buggyhunter commented on Aug 31, 2026

    @buggyhunter
    Contributor

    @mtahasylmz it should be fixed rn

    can you give a try?

  5. mtahasylmz commented on Aug 31, 2026

    @mtahasylmz
    Author

    @buggyhunter now it works thank you

    Image

    there's a smaller problem. probably a stale prompt. the agent is somehow convinced that available models are Opus 4.8, Sonnet 4.6, and Haiku 4.5.

    yet there is no problem with reaching to gateway and analyzing them. so it can query available models and change to a different one seamlessly.

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions