Skip to content

License Notice Not Dismissible

URI: https://docs.ankatech.co/errors/license-notice-not-dismissible
HTTP Status: 422 Unprocessable Entity

When you see this

A platform administrator asked to dismiss the deployment licence notice (POST /api/v3/admin/platform/license-notice/dismissal) while the deployment is in a band that cannot be dismissed. The request was well formed and carried no body: the server re-resolved the licence itself and classified it, so the refusal is about the state of the deployment, not about anything the caller sent. Only the WARNING band may be dismissed. CRITICAL, GRACE and READ_ONLY are refused, and so is the case where the licence state could not be read at all — there is then no banner to dismiss.

The refusal is deliberate rather than a silent no-op. Accepting the request would let a client hide a banner the server considers non-dismissible, and the banner announcing that the deployment is already read-only is the one that must never be hideable. It carries its own type rather than the generic invalid-state-transition one so that a client can recognise it without matching on detail.

Common Causes

  • The banner escalated from WARNING to CRITICAL (or into GRACE) between the console's read and the dismiss click, so the band the server resolved is no longer the dismissible one.
  • The deployment is read-only (READ_ONLY): the licence lapsed past its grace window, or no licence was ever in effect.
  • The licence state could not be read from the license server on this request, so no band exists to dismiss.
  • A client sent the dismissal without first reading dismissible on the notice, or decided dismissibility from a rule of its own instead of the server's answer.

Response Example

{
  "type": "https://docs.ankatech.co/errors/license-notice-not-dismissible",
  "title": "License Notice Not Dismissible",
  "status": 422,
  "detail": "The deployment licence notice is in band READ_ONLY, which cannot be dismissed.",
  "instance": "/api/v3/admin/platform/license-notice/dismissal",
  "timestamp": 1730000000,
  "extensions": {
    "requestId": "550e8400-e29b-41d4-a716-446655440000"
  }
}

Content-Type: application/problem+json — the response follows RFC 9457 Problem Details. The detail names the band and nothing else; the band is a server-computed classification of a state the caller was already shown, so it discloses nothing the notice read did not.

How to Resolve

  1. Re-read GET /api/v3/admin/platform/license-notice and render the dismiss control only when its dismissible member is true. That member is the server's answer; a client must never decide dismissibility from band or daysRemaining on its own.
  2. If the band is CRITICAL, GRACE or READ_ONLY, there is nothing to dismiss: the notice stays until the licence is renewed, and a read-only deployment is refusing crypto writes at the point of use with 402 regardless of the banner.
  3. If the licence state could not be read, treat the notice as unresolved and retry the read; the dismissal will be accepted once the deployment is back in WARNING.

See Deployment Licence Notice* for the bands, the dismissal key and why only one band is dismissible.

For full schema definitions, examples, and interactive testing, see the Developer Hub Reference.

* restricted content — see higher-tier documentation