Message retry, resubmit, and expiration intervals in Exchange Server
In Exchange Server, messages that can't be successfully delivered are subject to various retry, resubmit, and expiration deadlines based on the message's source and destination. Retry is a renewed connection attempt with the destination. Resubmit is the act of sending messages back to the Submission queue for the categorizer to reprocess. The message expires after all delivery efforts have failed over a specified period of time. After a message expires, the sender is notified of the delivery failure, and the message is deleted from the queue.
In all three cases of retry, resubmit, or expire, you can manually intervene before the automatic actions are performed on the messages.
For instructions on how to configure these intervals, see Configure message retry, resubmit, and expiration intervals.
Configuration options for message retry
When a the Transport service on a Mailbox server or an Edge Transport server can't connect to the next hop, the queue is put in a status of Retry. Connection attempts continue until the queue expires or a connection is made.
Configuration options for automatic message retry in the EdgeTransport.exe.config file
The automatic message retry interval settings that are available in the %ExchangeInstallPath%Bin\EdgeTransport.exe.config
XML application configuration file are described in the following table.
Note
Any customized Exchange or Internet Information Server (IIS) settings that you made in Exchange XML application configuration files on the Exchange server (for example, web.config files or the EdgeTransport.exe.config file) will be overwritten when you install an Exchange CU. Be sure save this information so you can easily re-apply the settings after the install. After you install the Exchange CU, you need to re-configure these settings.
Automatic message retry key name | Default value | Description |
---|---|---|
MailboxDeliveryQueueRetryInterval | 00:05:00 (5 minutes) |
How frequently the queues try to connect to the Mailbox Transport Delivery service for a destination mailbox database that can't be successfully reached. To specify a value, enter it as a time span: A valid value is a timespan from |
QueueGlitchRetryCount | 4 | The number of connection attempts that are immediately tried when a transport server has trouble connecting with the destination server. Such connection problems are typically caused by very brief network outages. A valid value is an integer from 0 through 15. Typically, you don't need to modify this key unless the network is unreliable and continues to experience many accidentally dropped connections. |
QueueGlitchRetryInterval | 00:01:00 (1 minute) |
The connection interval between each connection attempt that's specified by the QueueGlitchRetryCount key. Typically, you don't need to modify this parameter unless the network is unreliable and continues to experience many accidentally dropped connections. |
Configuration options for automatic message retry in the Exchange admin center and the Exchange Management Shell
The automatic message retry interval settings that are available in the Exchange admin center (EAC) and the Exchange Management Shell are described in the following table.
Automatic message retry setting | Default value | Exchange Management Shell configuration | Exchange admin center configuration on Mailbox servers |
---|---|---|---|
Message retry interval: The retry interval for individual messages that have a status of Retry. | 15 minutes (00:15:00 ) We recommend that you don't modify the default value unless you're directed to do so by Microsoft Customer Service and Support, or specific product documentation. |
Cmdlet: Set-TransportService cmdlet Parameter: MessageRetryInterval |
n/a |
Outbound connection failure retry interval: The retry interval for outbound connection attempts that have previously failed. The previously failed connection attempts are controlled by the transient failure retry count and interval values. | Transport service on Mailbox servers: 10 minutes (00:10:00 ) Edge Transport Servers: 30 minutes ( |
Cmdlet: Set-TransportService Parameter: OutboundConnectionFailureRetryInterval |
Servers > select server > Edit () > Transport limits > Retry section > Outbound connection failure retry interval (seconds) |
Transient failure retry count: The number of connection attempts that are tried after the queue glitch retry count and interval values have failed. These failures can be caused by server restarts or cached DNS lookup failures. A valid value is an integer from 0 through 15. The value 0 means the next connection attempt is controlled by the outbound connection failure retry interval. |
6 | Cmdlet: Set-TransportService Parameter: TransientFailureRetryCount |
Servers > select server > Edit () > Transport limits > Retries section > Transient failure retry attempts |
Transient failure retry interval: The connection interval between each connection attempt that's specified by the transient failure retry count value. | Transport service on Mailbox servers: 5 minutes (00:05:00 ) Edge Transport servers: 10 minutes ( |
Cmdlet: Set-TransportService Parameter: TransientFailureRetryInterval |
Servers > select server > Edit () > Transport limits > Retries section > Transient failure retry interval (minutes) |
Configuration options for manual message retry
When a delivery queue is in the status of Retry, you can manually force an immediate connection attempt by using Queue Viewer in the Exchange Toolbox or the Retry-Queue cmdlet in the Exchange Management Shell. The manual retry attempt overrides the next scheduled retry time. If the connection isn't successful, the retry interval timer is reset. The delivery queue must be in a status of Retry for this action to have any effect. For more information, see Retry queues.
Configuration options for delay DSN messages
After each message delivery failure, the Transport service on the Edge Transport server or the Mailbox server generates a delay delivery status notification (DSN) message and queues it for delivery to the sender of the undeliverable message. This delay DSN message is sent only after a delay notification interval has passed (the default is 4 hours), and only if the message wasn't successfully delivered during that time. This delay prevents the sending of unnecessary delay DSN messages due to temporary message transmission failures that are ultimately resolved. You can selectively enable or disable the sending of delay DSN notification messages for messages that originate inside or outside the Exchange organization.
The configuration options that are available for delay DSN notification messages are described in the following table.
Delay DSN setting | Default value | Exchange Management Shell configuration | Exchange admin center configuration on Mailbox servers |
---|---|---|---|
Delay notification timeout: How long the server waits before it sends a delay DSN message to the sender. This value should always be greater than the transient failure retry count multiplied by the transient failure retry interval (the default total is 30 minutes on a Mailbox server, and one hour on an Edge Transport server). |
4 hours (4:00:00 ) |
Cmdlet: Set-TransportService Parameter: DelayNotificationTimeOut |
Servers > select server > Edit () > Transport limits > Notifications section > Notify sender when message is delayed after (hours) |
External delay DSN enabled: Specifies whether delay DSN messages can be sent to external message senders (senders who are outside the Exchange organization). ExternalDelayDSNEnabled |
$true |
Cmdlet: Set-TransportConfig Parameter: ExternalDelayDSNEnabled |
Not available |
Internal delay DSN enabled: Specifies whether delay DSN messages can be sent to internal message senders (message senders who are inside the Exchange organization). | $true |
Cmdlet: Set-TransportConfig Parameter: InternalDelayDSNEnabled |
Not available |
Configuration options for message resubmission
Message resubmission sends undelivered messages back to the Submission queue to be reprocessed by the categorizer. For more information about the categorizer and the Submission queue, see Understanding the Transport service on Mailbox servers.
Automatic message resubmission
Undelivered messages in delivery queues are automatically resubmitted if the delivery queue is in the status of Retry and has been unable to successfully deliver any messages for a specified period of time. That period of time is controlled by the MaxIdleTimeBeforeResubmit key in the %ExchangeInstallPath%Bin\EdgeTransport.exe.config
XML application configuration file. The default value is 12:00:00
or 12 hours.
Note
Any customized Exchange or Internet Information Server (IIS) settings that you made in Exchange XML application configuration files on the Exchange server (for example, web.config files or the EdgeTransport.exe.config file) will be overwritten when you install an Exchange CU. Be sure save this information so you can easily re-apply the settings after the install. After you install the Exchange CU, you need to re-configure these settings.
Manual Message Resubmission
You can manually resubmit messages by using the following methods:
- Resubmit a delivery queue that has the status of Retry, or resubmit the Unreachable queue. For more information, see Resubmit queues.
- Resubmit messages in the poison message queue. For more information, see Resubmit messages in the poison message queue.
- Suspend a queue, suspend the messages in the queue, export the messages to files, and copy the files to the Replay directory on any Mailbox server or Edge Transport server. For more information, see Export messages from queues.
Configuration options for message expiration
The message expiration timeout interval specifies the maximum length of time that an Edge Transport server or Mailbox server (the Transport service) tries to deliver a failed message. If the message can't be successfully delivered before the expiration timeout interval has passed, a non-delivery report (also known as an NDR or bounce message) that contains the original message or the message headers is delivered to the sender.
Automatic message expiration
The message expiration timeout interval is described in the following table.
Default value | Exchange Management Shell configuration | Exchange admin center configuration on Mailbox servers |
---|---|---|
2 days (2.00:00:00 ) |
Cmdlet: Set-TransportService Parameter: MessageExpirationTimeOut |
Servers > select server > Edit () > Transport limits > Message expiration section > Maximum time since submission (days) |
Manual Message Expiration
Although you can't manually force messages to expire, you can manually remove messages from any queue (except the Submission queue) with or without an NDR. For more information, see Remove messages from queues.