#Quote exceeded on no-cost copilot model

1 messages · Page 1 of 1 (latest)

obsidian knollBOT
#

To help others find answers, you can mark your question as solved via Right click solution message -> Apps -> âś… Mark Solution

jaunty marshBOT
#

On GitHub Copilot, “GPT‑4.1 doesn’t consume premium requests” is only true on paid Copilot plans.

Per GitHub’s own docs, Copilot Free includes ~50 premium requests/month and “all chat interactions count as premium requests” — so once Premium is 0%, you’ll get 429 even if you pick GPT‑4.1.
Source: https://docs.github.com/en/copilot/concepts/billing/copilot-requests#how-do-request-allowances-work-per-plan

Given your status line:

  • Premium 0% left · Chat 100% left

…that strongly suggests the token/account OpenClaw is using is in a state where premium requests are exhausted/blocked, and the Copilot API is rejecting the call.

A couple things to check that commonly explain the mismatch:

  1. Are you definitely logged into the GitHub account that has the paid Copilot plan?
    Device-flow auth is easy to accidentally complete with the “wrong” GitHub account (personal vs work). If the token belongs to a Free account, GPT‑4.1 will still burn premium and then 429.

  2. If you have multiple Copilot licenses (org + personal, multiple enterprises):

#

GitHub can require picking a “Usage billed to” entity; if none is selected, premium requests can be blocked. (GitHub calls this out in the same doc.)

  1. What does the 429 body actually say?
    If you paste the full 429 error text/JSON from the gateway logs, we can tell whether it’s quota (“exceeded premium request allowance”) vs rate limit.

Also: what openclaw --version are you on?

OpenClaw’s Copilot provider docs (setup + model selection) are here: https://docs.openclaw.ai/providers/github-copilot

#

Run the log tail, reproduce the 429 once, then paste the error chunk.

1) Tail logs live (recommended)

In a terminal:

openclaw logs --follow

Then trigger the error (send a message / run the same action that hits Copilot). Copy the lines around the 429.

2) Get the full structured error (more detail)

openclaw logs --follow --json --limit 2000 --max-bytes 2000000

If you want to make it easier to spot, you can pipe/grep:

#
openclaw logs --follow --json --limit 2000 --max-bytes 2000000 | rg -i "github-copilot|copilot|429|premium|rate"

3) If the logs still don’t include enough detail: bump file log level

--verbose only affects console, not file logs. To capture more detail in the file logs, set the gateway file logging level to debug/trace:

openclaw config set logging.level debug
openclaw gateway restart

Then retry step (2).

4) Where the raw file log lives (if you prefer tailing it directly)

By default it’s:

#

/tmp/openclaw/openclaw-YYYY-MM-DD.log

So you can do:

ls -t /tmp/openclaw/openclaw-*.log | head -1
tail -n 300 /tmp/openclaw/openclaw-YYYY-MM-DD.log | rg -i "copilot|429"

Paste the JSON lines that include the 429 (and redact any tokens if they appear, though they usually won’t in a 429).

#

Those lines are just the Copilot auth/usage status output — they don’t include the failing request. The 429 will only show up in logs at the moment you trigger a Copilot completion (send a message to the bot / do whatever action hits Copilot).

Here’s the most reliable way to capture the full 429:

1) Tail logs while reproducing (and remove ANSI noise)

Terminal A:

openclaw logs --follow --plain --json --limit 2000 --max-bytes 2000000

Terminal B: trigger the actual Copilot call (send the Discord message that causes the 429).
Then copy/paste the new lines that appear right after you reproduce it (especially anything with ERROR, status, 429, copilot).

2) If you still don’t see it, turn up file log level (errors + request details)

Right now your file logs may be at info, and some provider details can be debug-level.

#
openclaw config set logging.level debug
openclaw gateway restart

Then repeat step (1).

(If needed: trace instead of debug.)

3) If it still doesn’t show, grab the service logs directly (Linux)

In another terminal:

journalctl --user -u openclaw-gateway.service -f --no-pager

(If your unit name differs, list them with systemctl --user | rg openclaw.)