account.getQuota returns the request timestamp as resetDate instead of the quota reset date
Nobody has claimed this yet.
- Dominant language
- Shell
- Stars
- 11.2k
- Forks
- 1.9k
- Avg merge
- 14h 16m
- Merged PRs (30d)
- 6
Description
Describe the bug
The Copilot CLI JSON-RPC account.getQuota response returns an incorrect resetDate for quota snapshots.
Environment:
- GitHub Copilot CLI: 1.0.80
- CLI started with:
copilot --server --no-auto-update --log-level error --stdio
I sent the following JSON-RPC request:
{"jsonrpc":"2.0","id":2,"method":"account.getQuota","params":{}}
For premium_interactions, the raw response included:
{
"entitlementRequests": 1500,
"usedRequests": 1500,
"remainingPercentage": 0,
"resetDate": "2026-08-15T23:06:14.840-07:00"
}
This timestamp matched the time the account.getQuota request was made, rather than the account's actual premium quota reset date. The same resetDate timestamp was returned for chat, completions, and premium_interactions.
The GitHub Copilot web UI shows the actual billing-cycle reset date, for example:
Resets in 16 days on Sep 1, 2026
The CLI response does not include a separate quota_reset_at or equivalent field.
Because resetDate tracks the request time, CLI/API consumers cannot accurately display when the premium quota resets.
Expected behavior:
- resetDate should contain the actual quota/billing-cycle reset timestamp; or
- account.getQuota should expose a separate reset timestamp field for each quota bucket.
Actual behavior:
- resetDate is effectively the quota-fetch timestamp and changes each time account.getQuota is called.
Affected version
No response
Steps to reproduce the behavior
No response
Expected behavior
No response
Additional context
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the account.getQuota JSON-RPC handler and the code that constructs quota snapshots. Trace how resetDate is populated for each quota bucket, then verify that repeated requests no longer return the request timestamp and that the response exposes the actual quota reset time.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- shell
- Domain
- api, cli
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 57/100