copilot/auto has no catalog pricing, so the zero-config default 400s intermittently
- Dominant language
- Go
- Stars
- 5.1k
- Forks
- 541
- Avg merge
- 5h 46m
- Merged PRs (30d)
- 760
Description
> Filed by @heiskr. Drafted with GitHub Copilot.
The documented zero-config path fails. `copilot` is the default engine and `engine:` can be omitted. Omitting `model:` yields `auto`, which resolves first to `copilot/auto`, a server-side passthrough with no concrete model name. The AWF proxy has no pricing entry for it and rejects every inference request with HTTP 400, surfaced as `missing_model_pricing`.
Nothing is misconfigured. The workflows that broke have no `model:` key and were not modified.
**It's intermittent, which is what makes it expensive to diagnose.** Per the alias table, `auto` resolves to `copilot/auto`, then `large`. When resolution falls through to `large` it yields a concrete priced model and the run succeeds. So identical zero-config workflows in the same org on the same day both fail repeatedly and succeed, depending on which candidate wins.
Repro
```markdown
---
on: workflow_dispatch
permissions: read-all
engine: copilot
---
# Probe
Say hello.
```
No `model:` key. `max-ai-credits` defaults to `1000`, so pricing enforcement is active without opting in.
What we observed
Workflows that had run clean for weeks began failing at roughly 2026-08-19 12:20 UTC with no corresponding commit, so something changed on the platform side rather than in the workflows. One workflow failed five times over three hours while another, also zero-config, succeeded in the same window.
About a dozen workflows in our org set no model and carry the same latent exposure. We can share run IDs privately if that helps.
Why the suggested workarounds don't fit
The failure message offers three fixes, and all three ask the user to compensate for an unpriceable default:
1. `models.default-ai-credits-pricing` invents a rate for a model whose identity is unknown, which makes AIC accounting fiction.
2. Mapping `auto` to a known model duplicates what alias resolution already does.
3. Pinning a model discards the routing `auto` exists to provide.
#49042 flagged this class as latent risk in July.
**Suggested directions**, roughly in order of preference: give `copilot/auto` a catalog entry or a built-in default rate; or drop `copilot/auto` from the `auto` alias while `max-ai-credits` is active so it resolves to `large`; or resolve it to a concrete model at compile time like every other alias.
Contributor guide
Assessment
This issue has not been assessed yet.