Validates the PushX configuration offline — the same checks the library runs at start/send time, reported all at once:
$ mix pushx.doctor
PushX 0.14.0 — configuration check (MIX_ENV=dev)
APNS ✔ configured (key ABC123DEFG, team TEAM123456, mode :prod)
✔ private key resolves and signs ES256
FCM ✔ project my-project
✔ service-account credentials resolve and sign RS256
WEB ✔ Web Push configured (subject mailto:ops@example.com)
✔ VAPID key resolves; public key BJ1kQ2m3n4o5… (applicationServerKey)
Delivery: live
Retries: enabled, 3 attempts, 10000ms base delay — a batch task may block up to 180s
Pools: finch_pool_count 2 HTTP/2 connections per origin; PING after 60000ms idle
Breaker: off Rate limit: off
All checks passed.
Exits with a non-zero status (raises Mix.Error) when a credential check
fails, so it can gate a deploy:
mix pushx.doctor && mix releaseNothing is sent and no provider is contacted. Use the same MIX_ENV /
environment variables as the deployment you are checking (MIX_ENV=prod mix pushx.doctor), since {:system, VAR} credentials are resolved at
check time.