How to send Email when Scheduled Task Errors Out

Disclaimer Async seems to be touch and go with emails (known issue) what minor version of 10 are you on?

10.1.500.31. The reason I have this thread is because we had a scheduled SSRS report with routing fail due to this message.

What version are you on?

Error Message:

Program Ice.Services.Lib.RunTask raised an unexpected exception with the following message: RunTask: The operation has timed out.
Stack Trace:
at System.Net.Mail.SmtpClient.Send(MailMessage message)
at Ice.Core.SsrsReporting.EmailSender.Send(EmailActionSettings settings, IEnumerable1 attachmentInfos) in D:\_Releases\ICE\3.1.500.31\Source\Server\Internal\Lib\TaskLib\SsrsReporting\EmailSender.cs:line 29 at Ice.Core.RoutingAndBreaking.EmailReportAction.EmailReportsFromReportRequests() in D:\_Releases\ICE\3.1.500.31\Source\Server\Internal\Lib\TaskLib\RoutingAndBreaking\EmailReportAction.cs:line 260 at Ice.Core.RoutingAndBreaking.EmailReportAction.HandleProcess(Object sender, ProcessEventArgs e) in D:\_Releases\ICE\3.1.500.31\Source\Server\Internal\Lib\TaskLib\RoutingAndBreaking\EmailReportAction.cs:line 165 at Ice.Core.RoutingAndBreaking.BaseNode.OnProcess(ProcessEventArgs e) in D:\_Releases\ICE\3.1.500.31\Source\Server\Internal\Lib\TaskLib\RoutingAndBreaking\BaseNode.cs:line 172 at Ice.Core.RoutingAndBreaking.BaseNode.OnProcess(ProcessEventArgs e) in D:\_Releases\ICE\3.1.500.31\Source\Server\Internal\Lib\TaskLib\RoutingAndBreaking\BaseNode.cs:line 172 at Ice.Core.RoutingAndBreaking.Workflow.OnProcess(ProcessEventArgs e) in D:\_Releases\ICE\3.1.500.31\Source\Server\Internal\Lib\TaskLib\RoutingAndBreaking\Workflow.cs:line 203 at Ice.Core.RoutingAndBreaking.Workflow.Run(ReportInstanceInformation reportInstance) in D:\_Releases\ICE\3.1.500.31\Source\Server\Internal\Lib\TaskLib\RoutingAndBreaking\Workflow.cs:line 150 at Ice.Core.RptBase.ReportSsrsDatabaseBuilder1.RouteAndBreakReport(Func2 executeCommand, Func2 executeReader, SqlObjectsCreated sqlObjectsCreated) in D:_Releases\ICE\3.1.500.31\Source\Server\Internal\Lib\TaskLib\RptBase\ReportSsrsDatabaseBuilder.cs:line 254
at Ice.Core.RptBase.ReportDatabaseBuilder1.XMLClose() in D:\_Releases\ICE\3.1.500.31\Source\Server\Internal\Lib\TaskLib\RptBase\ReportDatabaseBuilder.cs:line 142 at Ice.Core.RptTaskBase1.XMLClose() in D:_Releases\ICE\3.1.500.31\Source\Server\Internal\Lib\TaskLib\RptBase\RptTaskBase.cs:line 130
at Erp.Internal.PM.POForm.RunProcess(Int64 instanceTaskNum, String outputFileName) in c:_Releases\ERP\RL10.1.500\Source\Server\Internal\PM\POForm\POForm.cs:line 375
at Ice.Hosting.TaskCaller.InnerExecuteTask(IceDataContext newContext) in D:_Releases\ICE\3.1.500.31\Source\Framework\Epicor.Ice\Hosting\TaskCaller\TaskCaller.cs:line 93
at Ice.Hosting.TaskCaller.ExecuteTask() in D:_Releases\ICE\3.1.500.31\Source\Framework\Epicor.Ice\Hosting\TaskCaller\TaskCaller.cs:line 54
at Ice.Lib.RunTask.BpmFriendlyTaskLauncher.Run(String sessionIdPrefix, IceContext db, Action taskRunner) in D:_Releases\ICE\3.1.500.31\Source\Server\Services\Lib\RunTask\BpmFriendlyTaskLauncher.cs:line 63
at Ice.Services.Lib.RunTaskSvc.InnerRunTask(Int64 ipTaskNum, Boolean suppressTransaction) in D:_Releases\ICE\3.1.500.31\Source\Server\Services\Lib\RunTask\RunTask.cs:line 526
at Ice.Services.Lib.RunTaskSvc.InnerRunTask(Int64 ipTaskNum, Boolean suppressTransaction) in D:_Releases\ICE\3.1.500.31\Source\Server\Services\Lib\RunTask\RunTask.cs:line 526
at Ice.Services.Lib.RunTaskSvcFacade.RunTask(Int64 ipTaskNum) in D:_Releases\ICE\3.1.500.31\Source\Server\Services\Lib\RunTask\RunTaskSvcFacade.cs:line 87
at SyncInvokeRunTask(Object , Object , Object )
at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object inputs, Object& outputs)
at Epicor.Hosting.OperationBoundInvoker.InnerInvoke(Object instance, Func2 func) in D:\_Releases\ICE\3.1.500.31\Source\Framework\Epicor.System\Hosting\OperationBoundInvoker.cs:line 59 at Epicor.Hosting.OperationBoundInvoker.Invoke(Object instance, Func2 func) in D:_Releases\ICE\3.1.500.31\Source\Framework\Epicor.System\Hosting\OperationBoundInvoker.cs:line 28
at Epicor.Hosting.Wcf.EpiOperationInvoker.Invoke(Object instance, Object inputs, Object& outputs) in D:_Releases\ICE\3.1.500.31\Source\Framework\Epicor.System\Hosting\Wcf\EpiOperationInvoker.cs:line 23
at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)
at System.ServiceModel.Dispatcher.ChannelHandler.DispatchAndReleasePump(RequestContext request, Boolean cleanThread, OperationContext currentOperationContext)
at System.ServiceModel.Dispatcher.ChannelHandler.HandleRequest(RequestContext request, OperationContext currentOperationContext)
at System.ServiceModel.Dispatcher.ChannelHandler.AsyncMessagePump(IAsyncResult result)
at System.ServiceModel.Dispatcher.ChannelHandler.OnAsyncReceiveComplete(IAsyncResult result)
at System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame(IAsyncResult result)
at System.Runtime.AsyncResult.Complete(Boolean completedSynchronously)
at System.ServiceModel.Channels.SecurityChannelListener1.ReceiveItemAndVerifySecurityAsyncResult2.InnerTryReceiveCompletedCallback(IAsyncResult result)
at System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame(IAsyncResult result)
at System.Runtime.AsyncResult.Complete(Boolean completedSynchronously)
at System.ServiceModel.Channels.TransportDuplexSessionChannel.TryReceiveAsyncResult.OnReceive(IAsyncResult result)
at System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame(IAsyncResult result)
at System.Runtime.AsyncResult.Complete(Boolean completedSynchronously)
at System.ServiceModel.Channels.SynchronizedMessageSource.ReceiveAsyncResult.OnReceiveComplete(Object state)
at System.ServiceModel.Channels.SessionConnectionReader.OnAsyncReadComplete(Object state)
at System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame(IAsyncResult result)
at System.Net.LazyAsyncResult.Complete(IntPtr userToken)
at System.Net.LazyAsyncResult.ProtectedInvokeCallback(Object result, IntPtr userToken)
at System.Net.Security.NegotiateStream.ProcessFrameBody(Int32 readBytes, Byte buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.NegotiateStream.ReadCallback(AsyncProtocolRequest asyncRequest)
at System.Net.AsyncProtocolRequest.CompleteRequest(Int32 result)
at System.Net.FixedSizeReader.CheckCompletionBeforeNextRead(Int32 bytes)
at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult)
at System.Runtime.AsyncResult.Complete(Boolean completedSynchronously)
at System.ServiceModel.Channels.ConnectionStream.IOAsyncResult.OnAsyncIOComplete(Object state)
at System.Net.Sockets.SocketAsyncEventArgs.OnCompleted(SocketAsyncEventArgs e)
at System.Net.Sockets.SocketAsyncEventArgs.FinishOperationSuccess(SocketError socketError, Int32 bytesTransferred, SocketFlags flags)
at System.Net.Sockets.SocketAsyncEventArgs.CompletionPortCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped)
at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP)

Blockquote