Skip to main content
Confirm that your email address is verified. If you changed it under Profile, verify the new address. Also confirm that you still belong to the selected team.
Token secrets are displayed once. Create a replacement under Application settings, update the integration, test it, and delete the old token.
Send Authorization: Bearer YOUR_TOKEN. A 401 usually means the token is missing, invalid, or revoked. A 403 means its preset lacks the endpoint’s required ability.
Confirm that the client SDK is initialized with a Client token, the device can reach https://pushctl.com/api/v1, and native APNs or Firebase setup is complete.
Call the SDK’s login method after your user authenticates. Use the same stable external user ID that your server targets.
Check the recipient IDs, installation status, notification permission, platform configuration, and application status. logout leaves an installation anonymous, so it no longer matches the previous user ID.
Confirm the bundle ID, Team ID, Key ID, .p8 content, and sandbox/production environment. The credential and build environment must match.
Confirm that the service-account JSON belongs to the same Firebase project as the app’s google-services.json and includes project_id, client_email, and private_key.
Provider acceptance is not proof of display. Check device permission, focus/background behavior, notification service extension setup on iOS, and the SDK troubleshooting guide for your platform.
Still stuck? Email hello@pushctl.com with the application name, installation ID, notification ID, approximate time, and provider error code. Never send token secrets or provider private keys.