Symptom: delivery failures in the Event Webhook data.
Cause, read from the event:
1. event: bounce with a 5xx status and a bounce_classification: permanent. The mailbox is gone or will never accept mail.
2. event: deferred with a 4xx response and an attempt counter: temporary. The receiving server throttled or had a transient problem. SendGrid retries these for up to 72 hours.
3. Delayed or asynchronous bounces may arrive without a message ID; match them by email address and timestamp instead.
Confirmation: check the status field. 5.x.x is permanent, 4.x.x is temporary. The reason and response fields carry the server's own words.
Fix:
1. Hard bounce: remove the address from the list. It will land on the bounce suppression list if you keep trying.
2. Deferred: do nothing except watch. If deferrals cluster on one domain, reduce volume to that domain; more mail makes throttling worse.
3. Never 'fix' a hard bounce by resending. Never 'fix' a deferral by switching to a new IP mid-stream.
Verification: hard-bounced addresses stop appearing after list cleanup; deferred messages resolve into delivered events within the retry window.