Fix VAPID subject fallback for push notifications

Update push notification logic to correctly handle missing VAPID_SUBJECT environment variables by using logical OR operator instead of nullish coalescing for subject fallback.
This commit is contained in:
Riyadh
2026-05-17 09:55:57 +00:00
parent 2ab370862e
commit 74c9ceefea
+5 -2
View File
@@ -38,9 +38,12 @@ async function loadVapid(): Promise<{
privateKey: string;
subject: string;
} | null> {
// Use `||` (not `??`) because docker-compose passes unset vars as
// empty strings, not undefined. An empty subject fails web-push's
// validateSubject() with "No subject set in vapidDetails.subject".
const subject =
process.env.VAPID_SUBJECT ??
`mailto:admin@${process.env.LOCAL_DOMAIN ?? "tx.local"}`;
process.env.VAPID_SUBJECT ||
`mailto:admin@${process.env.LOCAL_DOMAIN || "tx.local"}`;
const envPub = process.env.VAPID_PUBLIC_KEY;
const envPriv = process.env.VAPID_PRIVATE_KEY;