Skip to content

Probe Capacity Exhausted

URI: https://docs.ankatech.co/errors/probe-capacity-exhausted
HTTP Status: 503 Service Unavailable

When you see this

This core-api instance already had its full allowance of key-backend probes in flight, so the probe was refused rather than queued. A probe is not an ordinary read: it opens a connection to a third party's HSM or Cloud KMS, authenticated as that tenant's own credential, and can hold a request thread for the whole probe budget before it answers. The bound is sixteen concurrent probes per instance. The response carries Retry-After: 5, because a permit is freed the moment an in-flight probe answers.

Common Causes

  • Several operators running key-backend diagnostics at the same moment — for example a sweep across a page of tenants.
  • Probes held open by slow or unresponsive tenant backends, occupying permits for their full budget.
  • An automated poller invoking the probe surface faster than probes complete.

Response Example

{
  "type": "https://docs.ankatech.co/errors/probe-capacity-exhausted",
  "title": "Probe Capacity Exhausted",
  "status": 503,
  "detail": "A required service is temporarily unavailable. Please retry later.",
  "instance": "/api/v3/s2s/tenants/7c9e6679-7425-40de-944b-e07fc1f90ae7/key-backend/probe",
  "correlationId": "550e8400-e29b-41d4-a716-446655440000",
  "timestamp": 1730000000
}

Content-Type: application/problem+json — the response follows RFC 9457 Problem Details.

How to Resolve

  1. Retry after the delay the Retry-After header names — exhaustion here is transient by construction.
  2. Read the response as a statement about this instance, not about the tenant's backend. It deliberately carries no verdict: the backend was never contacted, so nothing here says the tenant's configuration is wrong.
  3. Space out bulk diagnostics rather than probing a whole page of tenants at once.
  4. If probes are being held for their full budget, investigate the responsiveness of the tenant backends being probed — that, not this bound, is what is consuming the permits.

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