Question
How does SendGrid retry failed POST requests to my Inbound Parse URL, and will the sender be notified if my server fails to receive the email?
Product
Twilio SendGrid
Answer
When SendGrid receives an email for your domain, it attempts to POST that data to your configured URL. The retry behavior depends on the HTTP status code your server returns:
2xx (e.g., 200, 204): Success. SendGrid considers the email delivered and removes it from the queue.
5xx (e.g., 500, 503): Retry. SendGrid assumes a temporary server error and will keep trying to send the data for up to 72 hours.
First hour: Retries occur every 5 to 10 minutes.
Hours 2 through 72: Retries occur approximately every 3 hours.
After 72 hours: If a 2xx status is never received, the email is dropped.
4xx, 3xx, or DNS Error: Drop. SendGrid considers the request a permanent failure. The email is dropped immediately, and no retries are attempted.
Important Note on Notifications:
Inbound Parse is a one-way data push. The original sender will not receive a bounce or "undelivered" notification if your server fails. Additionally, there is no dashboard notification within the SendGrid to alert you of failed POSTs; you must monitor your own server logs.
Additional Information
To ensure reliability: Always return a 2xx status promptly (even if internal processing takes longer), avoid 4xx errors by ensuring your URL is public and authorized, and monitor your endpoint logs for 5xx errors to catch issues before the 72-hour window expires.