Read the response
Validation and rate-limit failures use a JSON problem response with title,
status, and detail. Authentication and authorization responses can contain
less detail by design. Use the status first, then apply the customer action in
this table.
| Status | Meaning | Action |
|---|---|---|
400 |
The request is malformed or its parameters conflict. | Read detail; check required timestamps, hierarchy combinations, repeated-filter count, positive numeric values, and cursor use. |
401 |
The credential could not be accepted. | Renew an expired JWT or OAuth token, or verify the registered client certificate. |
403 |
The credential does not permit the requested scope, source, site, line, filter, or interval. | Rerun discovery and compare the request with the returned hierarchy, capabilities, and limits. |
404 |
The route is unavailable. | Confirm the production base URL and documented endpoint path. Escalate if a previously working route remains unavailable. |
429 |
The daily request allowance is exhausted. | Honor Retry-After and RateLimit-Reset; do not retry continuously. |
500 |
The request could not be completed. | Retry a bounded number of times with exponential backoff. |
503 |
A required service is temporarily unavailable. | Retry with exponential backoff and jitter. |
Resolve a 403 response
Call discovery with the same credential. Confirm that the requested resource is listed, the site and narrower hierarchy identifiers are returned together, the source and filters are supported, and the time range is within the effective limits. Do not guess identifiers from Dashboard URLs or another integration.
If discovery itself returns 403, review the integration's active state,
authentication method, scopes, customer ownership, site and line restrictions,
and enabled data sources with your Wavac account administrator.
Retry safely
Retry only 429, 500, and 503 responses unless the problem detail explicitly
states otherwise. Keep the same query and cursor, apply the server's delay when
provided, and stop after a bounded number of attempts. Surface the failure
instead of retrying indefinitely.
Correct 400, 401, 403, and 404 conditions before sending the request
again. Repeating an unchanged permanent failure consumes allowance without
changing the outcome.
Escalate without exposing secrets
When requesting help, include the UTC timestamp, method and endpoint without
sensitive query values, HTTP status, problem title, and response correlation
identifier. Never include a bearer token, private key, client certificate
package, generated Postman ZIP, or customer payload.