Skip to content

docs(gotcha 27): the Copilot check refuses on an account entitlement - #403

Merged
oddharsh merged 3 commits into
mainfrom
docs/gotcha-27-copilot-entitlement
Aug 15, 2026
Merged

docs(gotcha 27): the Copilot check refuses on an account entitlement#403
oddharsh merged 3 commits into
mainfrom
docs/gotcha-27-copilot-entitlement

Conversation

@oddharsh

Copy link
Copy Markdown
Owner

Gotcha 27 has been growing for a week around a question it could not answer: which setting silences dynamic/agents/github-advanced-security. It answered UNKNOWN, so the last three sessions each went hunting through repository config and came back with a fingerprint instead of a cause.

The refusal comes from the account rather than the repo:

gh api -H "Editor-Version: vscode/1.0" /copilot_internal/user \
  --jq '{sku: .access_type_sku, premium: .quota_snapshots.premium_interactions}'
{"sku": "free_limited_copilot",
 "premium": {"entitlement": 0, "has_quota": false, "credits_used": 0}}

Entitlement is exactly 0 and credits_used is 0, so the budget is unspent rather than exhausted and waiting refills nothing. Agentic autofix went to public preview on 2026-07-10, requires a Copilot license with the cloud agent, draws down AI credits, and asks for claude-opus-4.6, which sits on Pro+ alone since the June 2026 billing change. 400 The requested model is not supported is literally true of this account, on every push, indefinitely.

That explains the 2026-08-12 measurement in one line, since a feature toggle cannot grant an entitlement, and it retires the "until GitHub fixes their model routing" reading: there is no outage to end, and the recovery signal the gotcha tells you to grep for will never arrive on this plan.

Also recorded:

  • The lever nobody has pulled. GitHub's disabling doc gives two ways to stop agentic autofix. Turning off Copilot Autofix was tried and changed nothing. Opting the repo out of the Copilot cloud agent has never been tried, has no REST endpoint (user/copilot/coding_agent, repos/:owner/:repo/copilot/coding_agent and user/settings/copilot all 404), and lives at github.com/settings/copilot.
  • Count corrected to thirteen, the last three being two on photos: pin exif-sooc 0.2.0 in the guards, and fix the install command #400 and one on docs(gotcha 36): approve a parked ramp before merging anything else #401.
  • The general lesson: a check that fails identically on every diff, including a prose-only one, is reporting on something outside the repository, so widen the search early.

Docs only. pnpm run lint exits 0 and no served byte moves.

The paragraph asking which setting silences
`dynamic/agents/github-advanced-security` answered UNKNOWN and sent the last
three sessions looking through repository config. The refusal comes from the
account: `/copilot_internal/user` reports `free_limited_copilot` with an AI
credit entitlement of exactly 0 and `credits_used: 0`, so the budget is unspent
rather than exhausted. Agentic autofix went to public preview 2026-07-10, needs
a Copilot license with the cloud agent, draws down those credits, and asks for
`claude-opus-4.6`, which sits on Pro+ alone since the June 2026 billing change.
`400 The requested model is not supported` is literally true here, on every
push, indefinitely.

Records the one lever nobody has pulled (opting the repo out of the Copilot
cloud agent, which has no REST endpoint), retires the "wait for GitHub to fix
their model routing" reading, and corrects the running count to thirteen.
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Aug 15, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
✅ Deployment successful!
View logs
aadhar-sh 888b883 Aug 15 2026, 12:40 PM

Both CLAUDE.md and infra.json said the only credential that can read
`code-scanning/default-setup` is a classic PAT with `repo`. The gh CLI's own
OAuth token reads it fine: measured 2026-08-15, unauthenticated curl answers 401
and `gh api` answers 200 on a `gho_` token scoped
`admin:public_key, gist, read:org, repo`. The CI conclusion is unchanged, since
`repo` is the disqualifying scope either way, so what moves is the workstation
bar: no PAT needs minting.

The sharper half is that being logged in buys nothing on its own.
`check-infra.mjs` reads `process.env.GITHUB_TOKEN` and never shells out to gh,
so a workstation with a good `gh auth login` still reports the tier as an
unverifiable 401, exactly as CI does. The advisory said "on a workstation with
`gh` logged in", which is the misleading half, so it now names the variable and
carries the working recipe. Measured minutes apart on one machine: the bare run
printed the note, and `GITHUB_TOKEN=$(gh auth token) pnpm run infra:check`
asserted the tier and caught a real `state` drift.

Also records what actually silenced the Copilot check (gotcha 27): disabling
CodeQL default setup removes it, measured on #403, at the cost of all code
scanning until an advanced setup replaces it.
@github-actions

github-actions Bot commented Aug 15, 2026

Copy link
Copy Markdown
Contributor

Wire-size diff vs merge base

8b0edc2e7cddaa

Brotli q11, the quality the edge serves. Every number here is deterministic:
an unchanged file produces no row. Advisory — this check fails on nothing.

Client assets

No change. 20 files, 73.98 KiB Brotli total.

Pages

No change. 48 files, 496.95 KiB Brotli total.

Worker bundle

No change. 273.06 KiB gzip.

Dictionary deltas (pd/)

No change. 144 deltas, 464.25 KiB total.

@oddharsh
oddharsh merged commit c7633a1 into main Aug 15, 2026
3 checks passed
@oddharsh
oddharsh deleted the docs/gotcha-27-copilot-entitlement branch August 15, 2026 12:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant