Error when sending email notification - The To address is null when fetching it from the associated attribute.

0
When I am hardcoding the To address in the SendEmail activity then the email mechanishm is working fine but when I pass the associated attribute i.e. $Ticket/MyFirstModule.Ticket_Registration/MyFirstModule.Registration/Email  in the TO address in the sendEmail activity then it throws an error which says To address is null. Here is the stack trace of the error message:   com.mendix.modules.microflowengine.MicroflowException: com.mendix.systemwideinterfaces.MendixRuntimeException: com.mendix.core.CoreException: There is no email address found to send this email to.     at MyFirstModule.ACT_TESTAUTO (JavaAction : 'Send email') Advanced stacktrace:     at com.mendix.modules.microflowengine.MicroflowUtil.processException(MicroflowUtil.java:83) Caused by: com.mendix.core.CoreRuntimeException: com.mendix.systemwideinterfaces.MendixRuntimeException: com.mendix.core.CoreException: There is no email address found to send this email to.     at com.mendix.basis.actionmanagement.ActionManager.executeSync(ActionManager.scala:110) Caused by: com.mendix.systemwideinterfaces.MendixRuntimeException: com.mendix.core.CoreException: There is no email address found to send this email to.     at com.mendix.util.classloading.Runner$.withContextClassLoader(Runner.scala:23) Caused by: com.mendix.core.CoreException: There is no email address found to send this email to.     at emailtemplate.actions.SendEmail.executeAction(SendEmail.java:171)     at emailtemplate.actions.SendEmail.executeAction(SendEmail.java:25)     at com.mendix.systemwideinterfaces.core.UserAction.execute(UserAction.java:58)     at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.doCall(CoreActionHandlerImpl.scala:71)     at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.call(CoreActionHandlerImpl.scala:48)     at com.mendix.core.actionmanagement.internal.InternalCoreAction.call(InternalCoreAction.java:56)     at com.mendix.basis.actionmanagement.ActionManager.$anonfun$executeSync$2(ActionManager.scala:106)     at com.mendix.util.classloading.Runner$.withContextClassLoader(Runner.scala:20)     at com.mendix.basis.actionmanagement.ActionManager.executeSync(ActionManager.scala:105)     at com.mendix.basis.actionmanagement.UserActionCallBuilderImpl.execute(UserActionCallBuilderImpl.scala:57)     at com.mendix.modules.microflowengine.actions.actioncall.ForegroundJavaAction.doExecute(ForegroundJavaAction.scala:35)     at com.mendix.modules.microflowengine.actions.actioncall.ForegroundJavaAction.doExecute(ForegroundJavaAction.scala:11)     at com.mendix.modules.microflowengine.actions.actioncall.JavaAction.execute(JavaAction.scala:38)     at com.mendix.modules.microflowengine.microflow.impl.MicroflowObject.$anonfun$execute$1(MicroflowObject.scala:32)     at scala.Option.flatMap(Option.scala:283)     at com.mendix.modules.microflowengine.microflow.impl.MicroflowObject.execute(MicroflowObject.scala:29)     at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.$anonfun$executeAfterBreakingIfNecessary$2(MicroflowImpl.scala:167)     at scala.Option.flatMap(Option.scala:283)     at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.executeAfterBreakingIfNecessary(MicroflowImpl.scala:167)     at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.executeAction(MicroflowImpl.scala:114)     at com.mendix.systemwideinterfaces.core.UserAction.execute(UserAction.java:58)     at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.doCall(CoreActionHandlerImpl.scala:71)     at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.call(CoreActionHandlerImpl.scala:48)     at com.mendix.core.actionmanagement.internal.InternalCoreAction.call(InternalCoreAction.java:56)     at com.mendix.basis.actionmanagement.ActionManager.$anonfun$executeSync$2(ActionManager.scala:106)     at com.mendix.util.classloading.Runner$.withContextClassLoader(Runner.scala:20)     at com.mendix.basis.actionmanagement.ActionManager.executeSync(ActionManager.scala:105)     at com.mendix.basis.actionmanagement.MicroflowCallBuilderImpl.execute(MicroflowCallBuilderImpl.scala:62)     at com.mendix.webui.actions.client.ExecuteMicroflowAction.runMicroflow(ExecuteMicroflowAction.scala:76)     at com.mendix.webui.actions.client.ExecuteMicroflowAction.$anonfun$apply$3(ExecuteMicroflowAction.scala:42)     at com.mendix.webui.actions.client.RegularClientAction$Helpers$.$anonfun$liftEither$1(RegularClientAction.scala:30)     at com.mendix.webui.actions.client.RegularClientAction$Helpers$StateHandler.$anonfun$apply$4(RegularClientAction.scala:56)     at com.mendix.webui.requesthandling.helpers.StateHandling.withState(StateHandling.scala:42)     at com.mendix.webui.requesthandling.helpers.StateHandling.withState$(StateHandling.scala:39)     at com.mendix.webui.actions.client.RegularClientAction$Helpers$StateHandler.withState(RegularClientAction.scala:46)     at com.mendix.webui.actions.client.RegularClientAction$Helpers$StateHandler.apply(RegularClientAction.scala:54)     at com.mendix.webui.actions.client.RegularClientAction$Helpers$StateHandler.apply(RegularClientAction.scala:46)     at com.mendix.webui.actions.client.ExecuteMicroflowAction.apply(ExecuteMicroflowAction.scala:43)     at com.mendix.webui.actions.client.ExecuteMicroflowAction.apply(ExecuteMicroflowAction.scala:22)     at com.mendix.webui.actions.client.RegularClientAction.$anonfun$execute$3(RegularClientAction.scala:113)     at scala.util.Try$.apply(Try.scala:210)     at com.mendix.webui.actions.client.RegularClientAction.$anonfun$execute$2(RegularClientAction.scala:113)     at com.mendix.webui.actions.client.RegularClientAction.$anonfun$execute$2$adapted(RegularClientAction.scala:111)     at com.mendix.webui.requesthandling.helpers.ContextHandling.$anonfun$inContext$5(ContextHandling.scala:57)     at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)     at com.mendix.basis.actionmanagement.ActionMonitoring$.$anonfun$monitor$1(ActionMonitoring.scala:49)     at com.mendix.util.classloading.Runner$.withContextClassLoader(Runner.scala:20)     at com.mendix.basis.actionmanagement.ActionMonitoring$.monitor(ActionMonitoring.scala:49)     at com.mendix.webui.requesthandling.helpers.ContextHandling.inContext(ContextHandling.scala:57)     at com.mendix.webui.requesthandling.helpers.ContextHandling.inContext$(ContextHandling.scala:31)     at com.mendix.webui.actions.client.RegularClientAction.inContext(RegularClientAction.scala:87)     at com.mendix.webui.requesthandling.helpers.ContextHandling.inContext(ContextHandling.scala:28)     at com.mendix.webui.requesthandling.helpers.ContextHandling.inContext$(ContextHandling.scala:20)     at com.mendix.webui.actions.client.RegularClientAction.inContext(RegularClientAction.scala:87)     at com.mendix.webui.actions.client.RegularClientAction.$anonfun$execute$1(RegularClientAction.scala:111)     at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)     at com.mendix.webui.requesthandling.helpers.ProfileHandling.profileRequest(ProfileHandling.scala:14)     at com.mendix.webui.requesthandling.helpers.ProfileHandling.profileRequest$(ProfileHandling.scala:10)     at com.mendix.webui.actions.client.RegularClientAction.profileRequest(RegularClientAction.scala:87)     at com.mendix.webui.actions.client.RegularClientAction.execute(RegularClientAction.scala:108)     at com.mendix.webui.requesthandling.ClientRequestHandler.handleAction(ClientRequestHandler.scala:106)     at com.mendix.webui.requesthandling.ClientRequestHandler.processRequest(ClientRequestHandler.scala:79)     at com.mendix.externalinterface.connector.RequestHandler.doProcessRequest(RequestHandler.java:37)     at com.mendix.external.connector.MxRuntimeConnector.$anonfun$processRequest$1(MxRuntimeConnector.scala:50)     at com.mendix.external.connector.MxRuntimeConnector.$anonfun$processRequest$1$adapted(MxRuntimeConnector.scala:50)     at com.mendix.util.classloading.Runner$.withContextClassLoader(Runner.scala:20)     at com.mendix.external.connector.MxRuntimeConnector.processRequest(MxRuntimeConnector.scala:50)     at com.mendix.basis.impl.MxRuntimeImpl.processRequest(MxRuntimeImpl.scala:221)     at com.mendix.m2ee.appcontainer.server.handler.RuntimeServlet.service(RuntimeServlet.scala:25)     at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)     at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799)     at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1631)     at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:230)     at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)     at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)     at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:548)     at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)     at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)     at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)     at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1440)     at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)     at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)     at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)     at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)     at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1355)     at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)     at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)     at org.eclipse.jetty.server.Server.handle(Server.java:516)     at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487)     at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732)     at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479)     at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277)     at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)     at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)     at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)     at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338)     at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315)     at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173)     at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)     at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409)     at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)     at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)     at java.base/java.lang.Thread.run(Thread.java:834) Why I am getting this error when I am passing the associated attribute "Email” to fetch the email address from this attribute? Please suggest?  Thanks in advance.  
asked
4 answers
0

Hi Garion, 

 

I have done the debugging and I noticed that I am getting values from the ticket entity attribute but my associated entity i.e. registration contain email attribute and the value is emty over there. 

Here is the screenshot:

answered
0

Do you have value(email address) in $Ticket/MyFirstModule.Ticket_Registration/MyFirstModule.Registration/Email before passing into create email activity?? Please add debugger and check


 

answered
0

Hi Saiba,

When looking at your second screenshot, I see another Ticket instance (NewTicket). As I don't know the existing logic around your Email action, I need to make some assumptions here. The suggestions of others to debug this step by step are already correct. Hopefully, the remarks below will help you continue.

- You are using the attribute as a multi-association reference. I would like to advise you to use separate input parameters/explicit retrieves for each object. When you are using more attributes from the same entity, this will boost your performance. In addition to that, it's easier to debug as you can add a breakpoint to the ‘Retrieve Registration’ action.
- Potentially, you just set the Email attribute to the Registration of the NewTicket instance, instead of the Ticket instance you are using here. This is something you can check.
- It's good to investigate weather you really set the association between Ticket and Registration correctly. Potentially, you figured out how to show these objects together on one page, without setting the association. This could be true when using data source microflows/nanoflows for example.

Curious to hear if one of these scenarios resolves your issue. Good luck!

answered
0

Hi Leroen,

 

Here is the microflow which I am using for sending an email :

 

I am calling this microflow through an action button and that button expects an object of the type ticket. So, I cannot add another input parameter (registration) in my microflow.

The association between the ticket and registration entity is 1-1 association. I have also used the NewTicket to fetch the email attribute value but there also I am getting the value of the email attribute as empty.

 

Please suggest what else should I try?

answered