Emails showing as accepted in Mailgun but experiencing delivery delays or failures

I’ve been using Mailgun to handle email sending for my website and it usually works fine. However, I’m running into a weird issue lately. When my code sends emails through the Mailgun HTTP API, the messages get marked as “accepted” in the logs, but then they either take forever to actually get delivered or sometimes don’t get delivered at all. They just stay stuck in the “accepted” status.

This happens with different email providers and at various times throughout the day, so I don’t think it’s a timing issue. I suspect there might be something wrong with the parameters I’m sending to the API, but I can’t figure out what’s causing it.

Has anyone else run into this kind of problem? Any ideas on what might be going wrong?

Here’s an example of what the webhook data looks like for one of these stuck messages:

{
    "event": "accepted",
    "timestamp": 1411502156.834721,
    "recipient": "[email protected]",
    "recipient-domain": "example.org",
    "method": "http",
    "envelope": {
        "sender": "[email protected]",
        "targets": "[email protected]",
        "transport": ""
    },
    "message": {
        "headers": {
            "from": "MyWebsite Support <[email protected]>",
            "to": "[email protected]",
            "subject": "Password Reset Request",
            "message-id": "[email protected]"
        },
        "size": 423,
        "recipients": [
            "[email protected]"
        ],
        "attachments": []
    },
    "flags": {
        "is-test-mode": false,
        "is-system-test": false,
        "is-authenticated": true
    },
    "user-variables": {},
    "campaigns": [],
    "tags": []
}

This happens when your IP reputation gets dinged or you’re hitting soft bounces you can’t see right away. Had the same issue last year - turns out some ISPs were quietly deferring my emails because engagement was too low. ‘Accepted’ just means Mailgun got your email and queued it, but downstream servers can still reject or delay it based on their filters. Keep a closer eye on your suppress lists and watch for delayed bounce notifications that show up hours or days later. Switching to a dedicated IP can help if you’re on shared infrastructure, but you’ll need to warm it up properly.

I’ve seen this exact issue when my email volume hit the account rate limits. Mailgun accepts the message but queues it, causing delays or drops. Check your dashboard for rate limiting warnings or bounces after the accepted status. Also double-check your DNS setup - missing or wrong SPF/DKIM records make receiving servers deprioritize your emails even when Mailgun processes them fine. That empty transport field in your webhook might signal routing problems on Mailgun’s side too.

yeah man, check your domain reputation. had the same issues too - my sending domain got flagged. mailgun says accepted, but the other servers just delay or reject. maybe try sending from a different domain to see if it works.

This topic was automatically closed 4 days after the last reply. New replies are no longer allowed.