API errors and troubleshooting
Diagnose authentication, validation, duplicates, rate limits, and TLS problems.
Inspect the response
Use curl --fail-with-body to retain the error body while still receiving a nonzero exit status for HTTP errors. Check the HTTP status and JSON message before retrying.
| Status | What to check |
|---|---|
400 | Use HTTPS and remove all query parameters |
401 | Correct client key and secret; credential not revoked or rotated |
404 | Public service ID and incident identifier belong to the credential’s organisation |
409 | Idempotency key reused with changed fields, or an invalid state transition |
413 | Request exceeds the server’s body-size limit |
415 | Send multipart form data or URL-encoded fields, not JSON or files |
422 | Inspect field errors; active service, valid severity, required identifiers and limits |
429 | Respect Retry-After; reduce frequency |
500 | Retain the response context and contact support; retry a trigger with idempotency |
Authentication fails after rotation
Rotation replaces both the client key and secret. Update both environment variables. Existing longer secrets remain valid, but truncating them does not produce a valid shorter credential.
A service cannot be found
Copy the 32-character public ID from the service edit page or select the service in the Settings code example. Do not copy the numeric ID from the page URL. Check that the credential belongs to the same organisation.
Repeated alerts still create incidents
Check the service’s deduplication toggle, its window, whether the previous incident is already resolved, and whether your explicit key changes between requests. Read Deduplication and retries.
Rate limits
Each credential is limited to 120 requests per minute. A separate limit of 600 requests per minute applies per source IP. Several integrations sharing an outbound IP can therefore encounter the IP limit.
Wait for the delay in Retry-After. Do not use an immediate retry loop. Reuse the event’s idempotency key when retrying an uncertain trigger request.
TLS or connection errors
A TLS handshake failure happens before the incident endpoint receives the form. Test without credentials first:
curl -q -v --noproxy '*' https://api.pagermate.com/healthCheck the destination IP, certificate hostname, certificate validation, system clock, DNS resolver, and proxy settings. Do not disable certificate validation with -k as a permanent fix. Do not include API credentials in a verbose diagnostic trace sent to support.
Include useful support details
Provide the approximate time and timezone, public service or incident ID, HTTP status, response message, and a redacted command. Omit secrets, passwords, and access tokens. See Contact support.