diff --git a/artifacts/api-server/src/lib/push.ts b/artifacts/api-server/src/lib/push.ts index b0e21350..91fc6c39 100644 --- a/artifacts/api-server/src/lib/push.ts +++ b/artifacts/api-server/src/lib/push.ts @@ -322,7 +322,12 @@ export async function sendPushToUser( keys: { p256dh: sub.p256dh, auth: sub.auth }, }, json, - { TTL: 60 }, + // iOS PWA receives Web Push through APNs and will *silently + // delay* or coalesce notifications unless we mark them as + // `urgency: 'high'`. Without this, an order/meeting alert + // can land minutes after the event with no sound. TTL stays + // short — a 60-second-old "new order" ping is useless. + { TTL: 60, urgency: "high" }, ); await db .update(pushSubscriptionsTable)