Troubleshoot push delivery
Start with a direct send to one Registration ID. Record the API response and message ID, then follow the request through registration, delivery, display, and opening.
| Symptom | Check |
|---|---|
| No Registration ID | Assigned AppKey, package/bundle, SDK initialization, consent path, network access, and registration callback. |
| Authentication error from the REST API | AppKey/MasterSecret pairing and whether server sending was provisioned. |
| Direct send works, alias send fails | Alias assignment completion and whether the installation is bound to the current account. |
| API accepts the request, but no notification appears | Notification permission, selected audience, message type, app state, and notification presentation settings. |
| iOS delivery fails | APNs token registration, entitlement, configured APNs credential, and apns_production. |
| Android background delivery differs by device | Enabled manufacturer channel, channel registration, system restrictions, and release configuration. |
| Tapping opens the wrong screen | Click callback, payload allowlist, current user, and pending cold-start navigation. |
| Duplicate visible notifications | Sender retries after uncertain responses, repeated business jobs, or multiple sends to overlapping audiences. |
Separate the outcomes
“Request accepted,” “delivered,” “displayed,” and “opened” are different observations. Report the stage you actually verified. A message ID helps investigate the send, but it does not prove that the customer saw the content.
Compare a working device with a failing device
Use the same message and direct targeting. Compare AppKey, SDK version, package/bundle, OS version, notification permission, build signing, and app state. On iOS, also compare the APNs environment. On Android, note which manufacturer channel is active.
Prepare a support report
Send NextAppMarket the application ID, AppKey, message ID, relevant Registration ID, timestamp, platform and device model, OS/SDK/build versions, API error code, and the last stage that worked. Share device identifiers through the established support channel. Omit MasterSecret and authorization headers.
Reference: JPush Android debugging guide. The sequence above also helps isolate application-side routing and identity errors.