Solución de problemas
Las causas más comunes cuando una notificación no llega y cómo resolverlas.
Si de pronto nada llega, mira primero la página de estado: si hay un incidente o un mantenimiento en curso, ahí se publica y se actualiza hasta resolverlo.
Si el servicio está operativo, abre el Solucionador de la app en el panel: revisa token, credencial, entorno, permiso y la última entrega del dispositivo, y te dice el primer paso que falla. El Depurador de dispositivo muestra cada entrega con el error exacto de Google o Apple.
No llega a iPhone
- ¿Qué token tiene? En Dispositivos, mira el tipo (APNs o FCM).
- APNs: necesitas la
.p8o.p12en PushHub. - FCM: necesitas la llave APNs dentro de Firebase.
- Ver iOS vía FCM.
- APNs: necesitas la
- Capacidad Push Notifications activada en Xcode, y el perfil de aprovisionamiento regenerado después.
- Permiso: el usuario debe haber aceptado.
notificationsEnabled: falselo indica. - Bundle ID: el de la credencial debe ser el de la app (
TopicDisallowed).
BadDeviceToken
Casi siempre es mezcla de entornos: una app instalada desde Xcode (sandbox) recibe con un envío a producción, o al revés.
- Con
environment: "auto", PushHub prueba el otro entorno y se corrige solo. - Si lo ves repetido, el estado de integración lo marca y te dice qué app y qué entorno revisar.
Funciona en debug pero no en TestFlight
Las compilaciones de TestFlight y App Store usan producción; las de Xcode, sandbox. Revisa:
- que la credencial cubra producción (la
.p8cubre ambos); - que no fuerces
environment: "sandbox"al registrar.
Certificado vencido
Los envíos a iOS fallan con 5003. Sube un .p12 nuevo o, mejor, pásate a la llave .p8, que no vence.
No se ve con la app abierta
Es el comportamiento normal de muchas librerías: con la app abierta, la notificación llega a tu código pero no se muestra. Muéstrala tú; cada guía de framework lo explica.
Token de Expo (2006)
ExponentPushToken[…] no sirve. Usa getDevicePushTokenAsync(). Ver Expo.
Capacitor iOS sin credencial APNs
@capacitor/push-notifications entrega en iOS el token de Apple. Sube la .p8 en PushHub. Ver Capacitor.
Cuadro blanco en Android
El icono pequeño no es monocromo. Usa uno blanco sobre transparente y decláralo como default_notification_icon.
Android: no llega con la app cerrada en algunos teléfonos
Algunos fabricantes (Xiaomi, Huawei, Oppo, Samsung con ahorro agresivo) cierran las apps en segundo plano. Envía con priority: "high" y pide al usuario que excluya la app del ahorro de batería.
Las imágenes no se ven en iOS
Falta la Notification Service Extension. Ver Multimedia.
Los envíos quedan en cola
Revisa en el historial si el envío está programado, si la credencial está inválida o vencida (los envíos esperan hasta que la corrijas) o si llegaste a la cuota (3001).