We have Sitecore 8.2.0 instance with EXM 3.4 on it and during one of campaigns we have experienced strange behavior. The message was sent to more than 41K recepients, however 2 of them were not and that caused the campaign to stop and it currently is on "Pause" mode and still appears "in progress" section.
The error message is next:
MessageTaskRunner worker thread 408 10:34:06 ERROR Failed to send '[NAME]' to 'xdb:dbf29ac0-f193-413b-bcf5-b7819f00xxxx'.
MessageTaskRunner worker thread 407 10:34:06 ERROR Message sending error: System.AggregateException: One or more errors occurred. ---> Sitecore.EDS.Core.Exceptions.InvalidMessageException: Failed to send the email message due to incorrect data.
at Sitecore.EDS.Core.Net.Smtp.ChilkatTransportClient.SendAsync(Email message)
at Sitecore.EDS.Core.Net.Smtp.ChilkatMessageTransport.<RetryOnFault>d__10.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Sitecore.EDS.Core.Net.Smtp.ChilkatMessageTransport.<SendTaskAsync>d__8.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Sitecore.EDS.Providers.CustomSmtp.DispatchProvider.<SendEmailAsync>d__3.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Sitecore.EDS.Core.Dispatch.DispatchProviderBase.<SendAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Sitecore.EDS.Core.Dispatch.DispatchManager.<SendAsync>d__6.MoveNext()
--- End of inner exception stack trace ---
at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
at Sitecore.EmailCampaign.Cm.Pipelines.SendEmail.SendEmail.Process(SendMessageArgs args)
at (Object , Object[] )
at Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args)
at Sitecore.Pipelines.DefaultCorePipelineManager.Run(String pipelineName, PipelineArgs args, String pipelineDomain)
at Sitecore.Modules.EmailCampaign.Core.PipelineHelper.RunPipeline(String pipelineName, PipelineArgs args)
at Sitecore.Modules.EmailCampaign.Core.Dispatch.DispatchTask.OnSendToNextRecipient()
---> (Inner Exception #0) Sitecore.EDS.Core.Exceptions.InvalidMessageException: Failed to send the email message due to incorrect data.
at Sitecore.EDS.Core.Net.Smtp.ChilkatTransportClient.SendAsync(Email message)
at Sitecore.EDS.Core.Net.Smtp.ChilkatMessageTransport.<RetryOnFault>d__10.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Sitecore.EDS.Core.Net.Smtp.ChilkatMessageTransport.<SendTaskAsync>d__8.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Sitecore.EDS.Providers.CustomSmtp.DispatchProvider.<SendEmailAsync>d__3.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Sitecore.EDS.Core.Dispatch.DispatchProviderBase.<SendAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Sitecore.EDS.Core.Dispatch.DispatchManager.<SendAsync>d__6.MoveNext()<---
I have looked into decompiled code of Sitecore.Modules.EmailCampaign.Core.Dispatch.DispatchTask
class and can see that System.AggregateException
with inner InvalidMessageException
should not cause the message to be put on pause, however it does.
So what I want to ask is:
- How can I ignore that and make the mail campaign to be in
Sent
state so we can see stats on it? - Is there any way to figure out what was the incorrect data and how come these two recepients cause it to stop?
- I have tried to implement my own dispatch task which would handle the Pause state differently, however there is to many references to internal classes and methods which makes it very hard to implement.
- I have also tried to remove those two recepients from the list for send-out, and from the mail engagement plan, however they are not getting removed from the send-out and when clicking "Resume", EXM attemts to send to those two again and faisl again.
- Any suggestions on what I can try on that one?