PUSH API · v1a

Error codes

Find public API and dashboard errors separately. Use the actual response to decide whether a request can be retried.

API

CodeHTTPMeaning
UNAUTHENTICATED401The credential is missing or cannot be authenticated.
PERMISSION_DENIED403The credential or signed-in account does not have permission for this operation.
RESOURCE_NOT_FOUND404The requested resource was not found within the current access scope.
IDEMPOTENCY_KEY_REUSED409The same idempotency key was used with different input. Inspect the earlier request and result before proceeding.
IDEMPOTENCY_IN_PROGRESS409A request using the same idempotency key is still processing. Wait for Retry-After before retrying the same request.
IDENTITY_REBIND_CONFLICT409The expected user binding changed during a concurrent update. Read the current state before deciding what to do.
IDENTITY_REBIND_IN_PROGRESS409An installation binding update is in progress. Retry the same request and key after Retry-After.
DELIVERY_NOT_RESOLVABLE409The delivery is not an unresolved unknown outcome that can be manually resolved.
DISPATCH_CONTROL_STALE409Dispatch control changed after it was read. Refresh the state and confirm the intended action.
PROVIDER_CONNECTION_EXISTS409A connection already exists for this provider and environment. Credential rotation is a separate operation.
PROVIDER_CREDENTIAL_IDENTITY_PENDING503Credential identity verification is not yet complete. Wait before trying again.
PROVIDER_CREDENTIAL_RECOVERY_REQUIRED409This credential requires the explicit recovery workflow, not ordinary rotation.
PROVIDER_CREDENTIAL_RECOVERY_NOT_REQUIRED409The current credential state does not require explicit recovery. Read the latest connection state.
PROVIDER_CREDENTIAL_RECOVERY_IN_PROGRESS409Credential recovery verification is in progress. Honor Retry-After before checking the same operation.
MALFORMED_REQUEST400The request cannot be parsed, for example because the body is not a JSON object or a path escape is malformed.
FIELD_REQUIRED422A required field or header is missing. Inspect field_errors.
METHOD_NOT_ALLOWED405This path does not accept the requested HTTP method.
REQUEST_TOO_LARGE413The HTTP request body exceeds the server limit.
PAYLOAD_TOO_LARGE422The serialized notification exceeds a provider payload limit. Reduce the message content.
RESERVED_DATA_KEY422A data key uses a reserved provider prefix or the Kits namespace.
UNKNOWN_FIELD422A request field is not in the supported registry.
FIELD_TYPE_MISMATCH422An input value has the wrong type. Inspect field_errors.
ATTRIBUTE_KEY_NOT_REGISTERED422The attribute key has not been registered.
EVENT_NAME_NOT_REGISTERED422The event name is unregistered or retired.
DEFINITION_LIMIT_EXCEEDED422The project environment has reached its attribute or event definition limit.
INSTALLATION_LIMIT_EXCEEDED422The app environment has reached its cumulative installation limit. Ask an operator to review capacity and retention.
RESERVED_NAMESPACE422The input uses a reserved namespace.
PROVIDER_CREDENTIAL_INVALID422The provider credential could not be verified.
PROVIDER_ENVIRONMENT_MISMATCH422The APNs sandbox/production environment does not match.
RATE_LIMITED429A request-rate or concurrency limit was reached. Honor Retry-After.
INTERNAL_ERROR500The server encountered an internal error. Follow the actual retry metadata and retain the request ID.
DISPATCH_PAUSED503Dispatch is paused for this app environment. The request was not accepted; an operator decides when to resume.
RESOURCE_ARCHIVED409The selected resource or an ancestor scope is archived, so this operation is unavailable. Check the current archive state.

Dashboard

CodeHTTPMeaning
APP_PLATFORM_ALREADY_REGISTERED409This project environment already has an active app environment for the same platform, so no app environment was created or restored. Each project environment holds one Android app and one iOS app. Deactivate the existing app first, or, when creating, choose another environment kind.
AUTHENTICATION_FAILED401The authentication details could not be verified. Check the input or use password reset.
BROADCAST_ROLLOUT_BLOCKED409Dashboard broadcasts are not enabled for this app environment. An operator must review and enable them.
CONCURRENT_MUTATION409A concurrent change prevented completion. Read the latest state.
CONTROL_PLANE_UNAVAILABLE503The dashboard processing service is temporarily unavailable. Check later and contact the operator if it persists.
CSRF_INVALID403The browser origin or session protection is invalid. Reload the official dashboard and try again.
DISPATCH_CONTROL_STALE409Dispatch control changed after it was read. Refresh the state and confirm the intended action.
DISPATCH_PAUSED503Dispatch is paused for this app environment. The request was not accepted; an operator decides when to resume.
IDEMPOTENCY_IN_PROGRESS409A request using the same idempotency key is still processing. Wait for Retry-After before retrying the same request.
IDEMPOTENCY_KEY_REUSED409The same idempotency key was used with different input. Inspect the earlier request and result before proceeding.
INITIAL_SIGNUP_UNAVAILABLE410The initial signup link cannot be used. Request a new verification email from account creation; existing accounts should sign in or reset their password.
INVITATION_UNAVAILABLE410The invitation cannot be used. Ask an administrator to check it and issue a new invitation if needed.
LAST_ACTIVE_OWNER_REQUIRED409The last active owner cannot be removed or deactivated. Establish another active owner first.
MESSAGE_LIBRARY_PROJECT_COMPOSITION409This draft is saved for several apps of the project environment, so it was not overwritten with a composition for one app. Edit it from the project’s Create message screen, or save only its name, labels and message without a composition.
METHOD_NOT_ALLOWED405This path does not accept the requested HTTP method.
OUTCOME_ALREADY_RESOLVED409This delivery outcome is already final or is not eligible for manual resolution.
PASSWORD_RESET_UNAVAILABLE410The password-reset link cannot be used. Request a new reset from the login screen.
PERMISSION_DENIED403The credential or signed-in account does not have permission for this operation.
PROVIDER_CREDENTIAL_IDENTITY_PENDING503Credential identity verification is not yet complete. Wait before trying again.
PROVIDER_CREDENTIAL_RECOVERY_IN_PROGRESS409Credential recovery verification is in progress. Honor Retry-After before checking the same operation.
PROVIDER_CREDENTIAL_RECOVERY_NOT_REQUIRED409The current credential state does not require explicit recovery. Read the latest connection state.
PROVIDER_CREDENTIAL_RECOVERY_REQUIRED409This credential requires the explicit recovery workflow, not ordinary rotation.
RATE_LIMITED429A request-rate or concurrency limit was reached. Honor Retry-After.
REAUTHENTICATION_REQUIRED403Confirm your current password again before continuing with this sensitive operation.
REQUEST_TOO_LARGE413The HTTP request body exceeds the server limit.
RESOURCE_ARCHIVED409The selected resource or an ancestor scope is archived, so this operation is unavailable. Check the current archive state.
RESOURCE_NOT_FOUND404The requested resource was not found within the current access scope.
SESSION_REQUIRED401A valid dashboard session is required. Sign in and try again.
VALIDATION_FAILED422The input does not meet the request requirements. Inspect field_errors.