Unmeterable Usage Event
URI: https://docs.ankatech.co/errors/unmeterable-usage-event
HTTP Status: 400 Bad Request
When you see this
A usage report was refused because it cannot be metered as submitted. The License Server does not record such a report with the offending field erased or substituted: a usage row whose subject or algorithm cannot be resolved cannot be reconciled, and a fabricated value is indistinguishable at rest from an operation the platform actually performed. The report is refused so it can be corrected and resubmitted — the error direction is deliberately safe, since a refused record can only ever under-bill, never over-bill.
Common Causes
tenantIdis absent or is not a valid UUID, so the subject of the report cannot be identified.- The
algorithmfield named a value the platform's algorithm catalogue does not declare. - The named client belongs to a different tenant than the one the report claims — metering it would attribute one tenant's operation to another.
The detail names the field and never echoes the submitted value.
Response Example
{
"type": "https://docs.ankatech.co/errors/unmeterable-usage-event",
"title": "Unmeterable Usage Event",
"status": 400,
"detail": "the 'algorithm' field named an algorithm the platform's catalogue does not declare; the record is quarantined rather than metered with the value erased",
"instance": "/api/licenses/report"
}
Content-Type: application/problem+json — the response follows RFC 9457 Problem Details.
How to Resolve
- Read the
detail: it names the field that could not be resolved. The submitted value is not echoed, but the caller already has it. - For a subject failure, send a
tenantIdthat is a valid UUID and aclientIdthat belongs to that tenant. - For an algorithm failure, send a name the platform's algorithm catalogue declares. Any accepted spelling resolves to the canonical name, so two spellings of one algorithm aggregate onto one billing line.
- Resubmit the corrected report. Nothing was recorded, so there is no partial row to clean up.
For full schema definitions, examples, and interactive testing, see the Developer Hub Reference.