The EdgeTransport.exe process crashes when you apply a rule that contains a bad email address in an Exchange Server 2010 environment

SYMPTOMS
Consider the following scenario:
  • You create a mailbox in a Microsoft Exchange Server 2010 environment.
  • You log on to the mailbox by using Outlook.
  • You apply a rule to the Inbox folder in Outlook. This rule contains a specific user who no longer has an email address.
  • You receive an email message from another user.
In this scenario, the EdgeTransport.exe process crashes on the Exchange Server 2010 server. Additionally, the following events are logged in the Application log:

Log Name: Application
Source: MSExchange Common
Event ID: 4999
Task Category: General
Level: Error
Keywords: Classic
User: N/A
Description:
Watson report about to be sent for process id: 4544, with parameters: E12, c-RTL-AMD64, 14.01.0270.001, edgetransport, M.Exchange.Data, M.E.D.ProxyAddress.BreakPrefixAndAddress, System.ArgumentException, d6c1, 14.01.0255.000.

Log Name: Application
Source: MSExchangeTransport
Event ID: 10003
Task Category: PoisonMessage
Level: Error
Keywords: Classic
User: N/A
Description:
The transport process failed during message processing with the following call stack: System.ArgumentException: The e-mail address cannot be empty.
at Microsoft.Exchange.Data.ProxyAddress.BreakPrefixAndAddress(String proxyAddressString, String& prefixString, String& addressString)
at Microsoft.Exchange.Data.ProxyAddress.Parse(String proxyAddressString)
at Microsoft.Exchange.Transport.MailboxRules.RuleUtil.GetProxyAddressFromSearchKey(Object searchKey)
at Microsoft.Exchange.Transport.MailboxRules.RuleEvaluationContext.CompareAddresses(Object messageValue, Object ruleValue)
at Microsoft.Exchange.Transport.MailboxRules.RestrictionEvaluator.EvaluatePropertyRestriction(PropertyRestriction restriction, IRuleEvaluationContext context)
at Microsoft.Exchange.Transport.MailboxRules.RestrictionEvaluator.Evaluate(Restriction restriction, IRuleEvaluationContext context)
at Microsoft.Exchange.Transport.MailboxRules.RestrictionEvaluator.EvaluateCommentRestriction(CommentRestriction restriction, IRuleEvaluationContext context)
at Microsoft.Exchange.Transport.MailboxRules.RestrictionEvaluator.Evaluate(Restriction restriction, IRuleEvaluationContext context)
at Microsoft.Exchange.Transport.MailboxRules.RestrictionEvaluator.EvaluateOrRestriction(OrRestriction restriction, IRuleEvaluationContext context)
at Microsoft.Exchange.Transport.MailboxRules.RestrictionEvaluator.Evaluate(Restriction restriction, IRuleEvaluationContext context)
at Microsoft.Exchange.Transport.MailboxRules.RuleEvaluator.EvaluateRule(Rule rule, FolderEvaluationResult result)
at Microsoft.Exchange.Transport.MailboxRules.RuleEvaluator.EvaluateRulesOnCurrentFolder()
at Microsoft.Exchange.Transport.MailboxRules.RuleEvaluator.Evaluate()
at Microsoft.Exchange.MailboxTransport.StoreDriver.Agents.MailboxRulesAgent.OnPromotedMessageHandler(StoreDriverEventSource source, StoreDriverDeliveryEventArgs args)
at Microsoft.Exchange.Data.Transport.StoreDriver.DeliveryAgent.Invoke(String eventTopic, Object source, Object e)
at Microsoft.Exchange.Data.Transport.Internal.MExRuntime.Dispatcher.Invoke(MExSession session)
at Microsoft.Exchange.Data.Transport.Internal.MExRuntime.MExSession.Invoke(String topic, Object source, Object e)
at Microsoft.Exchange.MailboxTransport.StoreDriver.MExEvents.RaiseEvent(MExSession mexSession, String eventTopic, Object[] contexts)
at Microsoft.Exchange.MailboxTransport.StoreDriver.MailItemDeliver.RaiseEvent(String deliveryEventBindings, LatencyComponent eventComponent)
at Microsoft.Exchange.MailboxTransport.StoreDriver.MailItemDeliver.<>c__DisplayClass4.<DeliverToRecipient>b__0()
at Microsoft.Exchange.MailboxTransport.StoreDriver.StorageExceptionHandler.RunUnderExceptionHandler(IMessageConverter converter, StoreDriverDelegate workerFunction)
at Microsoft.Exchange.MailboxTransport.StoreDriver.MailItemDeliver.DeliverToRecipient()
at Microsoft.Exchange.MailboxTransport.StoreDriver.MailItemDeliver.DeliverToRecipients()
at Microsoft.Exchange.MailboxTransport.StoreDriver.StoreDriver.DeliverMailItem(NextHopConnection connection, UInt64 sessionId, DateTime sessionStartTime, UInt64 mailCount, String mailboxServerFqdn, Boolean& wasSessionOpenedForLastRecipient)
at Microsoft.Exchange.MailboxTransport.StoreDriver.StoreDriver.LocalDeliveryCallback(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallbackInternal(_ThreadPoolWaitCallback tpWaitCallBack)
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback(Object state)

RESOLUTION
To resolve this issue, install the following update rollup:
2579150 Description of Update Rollup 4 for Exchange Server 2010 Service Pack 1
WORKAROUND
To identify the rule that is causing the problem, a crash dump of EdgeTransport.exe must be obtained and sent to a Microsoft Product Support engineer for analysis.

STATUS
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.
Properties

Article ID: 2505968 - Last Review: 07/28/2011 11:31:00 - Revision: 4.1

  • kbqfe kbfix kbhotfixrollup kbexpertiseinter kbsurveynew KB2505968
Feedback