Hi Apoorv,
Thanks for the detailed question. Here's a concise explanation and response to your situation:
Issue:
You're receiving a 402 PaymentRequired
error from the Microsoft Graph Teams Recording API (/recordings/{id}/content
) even though:
- You’re not using metered billing.
You rely on the 600-minute evaluation quota per tenant per month.
The error occurs early in the month (e.g., July 2).
Answers to Your Questions:
- Does the evaluation quota reset on the 1st of each month?
Yes, officially, Microsoft states that the 600-minute evaluation quota resets on the 1st of each calendar month for each app–tenant pair.
- Why would I receive a 402 error so early in the month?
There are a few likely reasons:
Quota delay / backend sync lag: The reset job might not complete immediately at midnight UTC on the 1st. It can take up to 24–48 hours in some cases.
Cross-tenant consumption: If your app is multi-tenant, the 600 minutes are per tenant, but one busy tenant can exhaust their allocation.
Misconfigured app identity: Ensure the App ID used for requests is consistent and matches the one tracked for quota. Otherwise, usage might be attributed differently or not reset correctly.
Bug or stale tracking data: Some users have reported quota usage lingering past reset time, potentially due to stale metering records.
- Can I check evaluation quota usage?
Currently, Microsoft Graph does not expose evaluation quota metrics via API or portal. You cannot see the remaining minutes unless you're using Azure Metered Billing (which offers detailed usage insights).
- Is this a known delay or bug?
Yes, this behavior is known but undocumented. Several developers have observed delayed resets or unexplained early 402 errors. Microsoft has previously acknowledged this as a possible backend sync delay in internal telemetry.
Recommended Action:
Wait 24–48 hours (i.e., until July 3–4) to see if the quota resets correctly.
If urgent, consider enabling metered billing, which:
Prevents 402 errors
Provides detailed usage metrics
If the issue persists after 48 hours:
Open a support ticket via [https://developer.microsoft.com/en-us/graph/support](https://developer.microsoft.com/en-us/graph/support)
Workaround:
If possible, cache or stagger non-essential recording downloads until the quota becomes available, or retry failed 402 responses with backoff logic.
Let me know if you'd like help drafting a support ticket or setting up metered billing.
Best regards, Martin