
UnifiedPush and Public ntfy.sh: Why Push Notifications Fail on Android Without Google Services
Developers building a messenger without Google services adopted UnifiedPush with the public ntfy.sh instance as the default distributor and push server. Production logs revealed that four out of five delivery attempts failed from day one, with error codes 507, 429, and 400 dominating. The 507 errors occurred because ntfy from Google Play relies on Firebase for instant delivery, leaving no active subscriber visible to the server when FCM is unavailable. Rate-limit 429 responses were triggered against the recipient's IP rather than the sender, collapsing under carrier-grade NAT used by mobile users. WebPush endpoints additionally rejected requests missing the mandatory TTL header. The team ultimately deployed a self-hosted ntfy instance and an embedded distributor inside the app to bypass these constraints.
HabrAug 1, 2026Translated from Russian