Ana içeriğe geç

Sorun giderme

Sunucu

BelirtiOlası nedenÇözüm
API açılışta hemen çıkıyorRedis ulaşılamazAPI kuyruk olmadan başlamayı reddeder. REDIS_URL'i kontrol edin; docker compose ps redis.
/health 503 dönüyor, API ayaktaMongoDB ulaşılamazKasıtlı — arka planda yeniden dener. MONGO_URL'i, mongo konteynerini kontrol edin.
docker compose up set ENCRYPTION_KEY in .env ile düşüyorSırlar eksikbun run generate:keys >> .env ve boş satırları silin.
/v1/admin/* 404 dönüyorADMIN_API_TOKEN ayarsız ya da paneldeki kopya farklıİkisinde de aynı değeri ayarlayın; API'yi yeniden başlatın.
Panel: ADMIN_PASSWORD_HASH is not set ya da giriş hep başarısızHash ham ($argon2id…) yapıştırılmış ve bir .env ayrıştırıcısı $ işaretlerini genişletmişgenerate:admin-password'ın yazdırdığı base64 satırı olduğu gibi yapıştırın.
Panel girişi çalışıyor, sonra her sayfa girişe dönüyorDüz HTTP'de çerez düşürüldüLocalhost için INSECURE_COOKIES=true; üretimde HTTPS.
Kampanya sending'de takıldıWorker çalışmıyor ya da kimlik bilgisi olmayan platformdocker compose logs worker; raporun başarısızlık tablosuna bakın.
Zamanlanmış kampanya hiç tetiklenmediRedis kalıcılık olmadan yeniden başladıCompose appendonly yes ayarlar; kendi Redis'inizde AOF ya da RDB açın.
Kuyruk büyüyor, Redis belleği tırmanıyorWorker kapalı / aç, ya da allkeys-lruWorker'ları başlatın; politika mutlaka noeviction.
Bir platformda her push InvalidProviderToken / PERMISSION_DENIEDYanlış ya da iptal edilmiş kimlik bilgisiYeniden yükleyin; Bağlantıyı test et'e basın.
Birçok Android cihazda SENDER_ID_MISMATCHToken'lar service account'tan farklı bir Firebase projesindenUygulamanın google-services.json'unun ait olduğu projenin service account'unu kullanın.
İçe aktarımda subscribe 429IP başına 10/dk sınırıSUBSCRIBE_RATE_LIMIT'i geçici yükseltin ya da içe aktarımı API host'undan çalıştırın.

iOS

BelirtiOlası nedenÇözüm
İzin verildi, cihaz panelde hiç görünmüyordidRegisterForRemoteNotificationsWithDeviceToken iletilmemişAppDelegate callback'ini ekleyin (Swift, RN).
Her gönderimde BadDeviceTokenSandbox/production uyuşmazlığıDebug build → Production APNs kapalı; App Store/TestFlight → açık. Ya da ortam başına bir uygulama.
DeviceTokenNotForTopicKimlik bilgileri sayfasındaki Bundle ID uygulamanınkinden farklıBirebir eşleyin.
Testte TopicDisallowed / 403App ID'de Push Notifications yetkisi yok ya da anahtar APNs'siz oluşturulmuşPortalda yetkiyi açın; anahtarı APNs işaretli yeniden oluşturun.
Ulaştı %0'da, açılmalar sayıyorNotification Service Extension yokŞablonla ve OpenNotificationApiUrl ile NSE hedefi ekleyin.
Görsel hiç çıkmıyorAynı — NSE yok ya da görsel URL'i HTTPS değil
Butonlar görünmüyorNSE yok (kategoriyi o kaydeder)
Uygulama açıkken bildirim görünmüyorwillPresent iletilmemişİletin ve [.banner, .sound, .badge] ile tamamlayın.
Cihazda çalışıyor, simülatörde değilSimülatörde gerçek APNs token'ı yokCihazda test edin.

Android

BelirtiOlası nedenÇözüm
Token yok / cihaz hiç kaydolmuyorgoogle-services.json yok ya da paket adı yanlış; eklenti uygulanmamışapplicationId'yi Firebase uygulamasıyla karşılaştırın; com.google.gms.google-services'i uygulayın.
Simge yerine gri kareRenkli ya da saydam olmayan küçük simgeSaydam üzerine beyaz tek renkli ic_notification.png.
Android 13+'ta bildirim yokPOST_NOTIFICATIONS verilmemişrequestPermission(activity) çağırın; izni bildirin.
Uygulama açıkken geliyor, arka planda gelmiyorRN: native modül bağlanmamış (eski build)Android uygulamasını yeniden derleyin; autolinking @opennotification/react-native/android'i alır.
Uygulama açıkken ulaşıyor, zorla durdurulunca sessizZorla durdurulmuş uygulamada data mesajı / OEM pil tasarrufuBeklenen; priority: high zaten ayarlı. Xiaomi/Oppo/vivo'da kullanıcıdan uygulamayı pil optimizasyonundan muaf tutmasını isteyin.
İki FirebaseMessagingServiceBaşka bir SDK da kaydediyoronMessageReceived'i OpenNotificationMessagingService.handle'a iletin.
Kurulumdan hemen sonra UNREGISTEREDUygulama yeniden kuruldu; eski token geçersizNormal — yeni token sonraki açılışta abone olur.

Web

BelirtiOlası nedenÇözüm
capability().reason === "IOS_NEEDS_INSTALL"iOS'ta Safari sekmesiKurulum rehberini gösterin; push yalnızca Ana Ekran uygulamasından çalışır.
INSECURE_CONTEXTSite HTTP'deHTTPS (localhost muaf).
Her seferinde permission_dismissedsubscribe() tıklamadan çağrılmıyorTıklama handler'ında, hareketten hemen sonra eşzamanlı çağırın.
service_worker_failed/sw.js 404 ya da yanlış scope'tan sunuluyorKökte Content-Type: application/javascript ile sunun.
Subscribe'da api_error 401/403Yanlış anahtar ya da CORSpk_ anahtarı kullanın; origin'i CORS_ORIGINS'e ekleyin.
Abone oldu, hiçbir şey gelmiyorSDK'daki VAPID public key uygulamanınkinden farklıAnahtarı kimlik bilgileri sayfasından kopyalayın.
413 hatalarıYük 4 KB üstündeGövde/data'yı kısaltın; sihirbazın bayt ölçeri gösterir.
Abonelikler bir süre sonra ölüyor (410)Tarayıcı endpoint'i döndürdü, eski worker pushsubscriptionchange'i ele almadıGelen worker'ı ya da registerPushHandlers'ı kullanın.
Safari: görsel yok, buton yokSafari'de desteklenmiyorBeklenen.

"Gönderildi diyor ama kimseye gelmedi"

sent, push servisinin kabul ettiği anlamına gelir — sunucunun görebildiği son şey. Sonrası: cihaz çevrimdışı olabilir (TTL sayıyor), uygulama zorla durdurulmuş (Android), sistem ayarlarında bildirimler kapalı ya da iOS'ta uygulama silinmiş (sonraki gönderim Unregistered döner ve temizler). delivered sayısı gerçektir; raporda platform başına karşılaştırın.

Daha çok ayrıntı

docker compose logs -f worker | grep -E "failed|invalidated"

Günlükler subscriptionId ve sağlayıcı kodunu taşır, token'ı asla. Cihaz bilgileri için aboneliği panelde arayın.