Skip to main content

Troubleshooting

SymptomCheck
401 unauthorizedCorrect credential type, active key, expiry, environment, and Authorization header
403 missing scopeEndpoint's required scope and actual credential scope list
422 when sending raw contentBoth send scopes are needed; otherwise use a published template
Account not found/inactiveAccount was upserted in this application's environment and the key matches
409 idempotency_conflictSame key was reused with a different payload
provider_not_configuredActive provider exists on the exact account and channel
Template not found for channel/localePublished version exists for every selected channel and explicit locale
Empty user inboxToken account/user IDs match the notification recipient and the in-app delivery completed
Browser cannot connectFrontend origin is allowed by CORS, TLS is valid, and user token is current
API operational but delivery delayedRelay, queue, worker, and per-delivery status

Credentials in Swagger​

Paste the raw credential into the matching field without a Bearer prefix. Console login does not authorize Application API requests. If the key was lost, create a replacement; the secret cannot be viewed again.

Missing scopes​

Scope names come from Notify's supported list. Choose a replacement key profile based on the failed operation rather than inventing a new name. See Scopes and permissions.

Provider failures​

Test the account's connection from Console or the account-provider test endpoint. Check endpoint URL, authentication, session, sender identity, network reachability, and TLS. Account-bound delivery has no application-provider fallback.

Landing-page health​

The status indicator reads GET /health/live and retries after temporary failures. This indicates API reachability, not complete provider delivery health. Inspect /health/ready, service state, and actual delivery status when investigating the processing stack.

Support details​

Include the timestamp/timezone, environment, endpoint, HTTP status, X-Request-ID, notification ID, and delivery ID. Share only the credential prefix, never the full secret.