Skip to content

ci(swebench): every smoke run fails with 'cloud model unavailable (HTTP 404)' #4869

Open

Description

@kovtcharov-amd

The SWE-bench smoke check fails on every PR that runs it, so it currently tells us nothing about the agent. All three tasks error in about 2 seconds with model backend failed: The selected cloud model is unavailable (HTTP 404), before the agent takes a step. It has not passed once since the FIREWORKS_API_KEY secret was added on 2026-10-04 (failed runs: 2026-10-06 00:27, and 08:52 on #4864–#4867).

The key and the model are fine: with that key, GET https://api.fireworks.ai/inference/v1/models lists accounts/fireworks/models/deepseek-v4p1-flash, and a direct chat completion to it answers. The break is between GAIA and Fireworks inside the job: the embedded Lemonade it starts reports "cloud": {"providers": []}, so fireworks.deepseek-v4p1-flash resolves to nothing.

Next step: register the Fireworks provider with the embedded Lemonade in eval_swebench.yml before gaia eval tasks run, the way the Agent UI and TUI do (src/gaia/ui/routers/providers.py, POST /api/providers/fireworks/connect), instead of relying on Lemonade reading LEMONADE_FIREWORKS_API_KEY from its environment as the workflow's header comment assumes.

🔍 Technical details
  • Workflow: .github/workflows/eval_swebench.yml; SWE_MODEL: fireworks.deepseek-v4p1-flash; the key reaches lemond as LEMONADE_FIREWORKS_API_KEY (job env), and child_env() does not strip it (only GAIA's internal tokens are stripped).
  • Embedded Lemonade 2026.40.0, gaia lemonade embedded status → Backends: none; no provider registration step appears in the log.
  • Example failing job: https://github.com/amd/gaia/actions/runs/37439029552/job/112187893380
  • Not a required check, so it does not block merges.

Activity

  1. added
    bugSomething isn't working
    evalEvaluation framework changes
    p2low priority
    on Oct 6, 2026
  2. github-actions commented on Oct 6, 2026

    @github-actions
    Contributor

    The code backs this up. Lemonade only uses LEMONADE_FIREWORKS_API_KEY for a cloud provider that is already registered with it, and nothing registers Fireworks with the fresh embedded Lemonade in CI. That's why the provider list is empty and every request gets a 404.

    The fix doesn't need the Agent UI server. Add a step to eval_swebench.yml after the embedded Lemonade starts that sends the same registration request the UI's /connect sends, straight to Lemonade. The env key should then be picked up without a separate auth call. Then check /system-info and fail the step if Fireworks shows no discovered models. Without that check, a bad key or a missing provider looks like an agent regression again.

    🔍 Technical details
    • connect_provider (src/gaia/ui/routers/providers.py) runs POST /install with {"backend": "cloud", "provider": "fireworks", "wire_format": "openai", "base_url": FIREWORKS_BASE_URL, "auth_header_name": "Authorization", "auth_header_prefix": "Bearer "}, then POST /cloud/auth only when a key was pasted.
    • ensure_authenticated (src/gaia/llm/cloud_keys.py) returns False when /system-info has no entry for the provider. It treats env_var_set as already authenticated, so once the provider is registered the job-env key should be enough. The readiness probe's key replay can't help here, because there's nothing to replay into.
    • Send lemonade_auth_headers(resolve_lemonade_api_key()) with the request, because the embedded instance is locked with LEMONADE_API_KEY. A short python -c that reuses _registration("fireworks", …) keeps the payload in step with the UI and TUI (tui/internal/lemonade/cloud.go).
    • A 404 from POST /install means this Lemonade can't register cloud providers. The UI maps that to "update to 11.8.1+". I haven't checked 2026.40.0 against that floor, so the first run should confirm it.
    • Update the workflow's header comment too. It currently says the env var alone is enough.
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 workingevalEvaluation framework changesp2low priority

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions