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

  1. ¿Qué token tiene? En Dispositivos, mira el tipo (APNs o FCM).
    • APNs: necesitas la .p8 o .p12 en PushHub.
    • FCM: necesitas la llave APNs dentro de Firebase.
    • Ver iOS vía FCM.
  2. Capacidad Push Notifications activada en Xcode, y el perfil de aprovisionamiento regenerado después.
  3. Permiso: el usuario debe haber aceptado. notificationsEnabled: false lo indica.
  4. 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 .p8 cubre 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).