> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pushctl.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Common issues

> Resolve common account, credential, token, installation, and notification delivery problems.

<AccordionGroup>
  <Accordion title="I cannot open the dashboard">
    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.
  </Accordion>

  <Accordion title="I lost a token value">
    Token secrets are displayed once. Create a replacement under **Application settings**, update the integration, test it, and delete the old token.
  </Accordion>

  <Accordion title="The API returns 401 or 403">
    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.
  </Accordion>

  <Accordion title="No installation appears">
    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.
  </Accordion>

  <Accordion title="The installation is anonymous">
    Call the SDK's `login` method after your user authenticates. Use the same stable external user ID that your server targets.
  </Accordion>

  <Accordion title="The notification has zero target installations">
    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.
  </Accordion>

  <Accordion title="APNs delivery fails">
    Confirm the bundle ID, Team ID, Key ID, `.p8` content, and sandbox/production environment. The credential and build environment must match.
  </Accordion>

  <Accordion title="FCM delivery fails">
    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`.
  </Accordion>

  <Accordion title="Accepted is greater than displayed or opened">
    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.
  </Accordion>
</AccordionGroup>

<Info>
  Still stuck? Email [hello@pushctl.com](mailto: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.
</Info>
