TFA : Failing Email Delivery of TFA Verification Code During Login

TFA : Failing Email Delivery of TFA Verification Code During Login

Issue:
      In a non-ESM setup with Graph configuration in the outgoing mail server settings, the sending of TFA verification codes via email fails when attempting to log in.

Issue ID: SD-120339

Screenshot of Error:

Trace of Error in Logs:
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: com.manageengine.servicedesk.mailutils.MailException: No mail server found for given mailserver ::graph and serverId ::null|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at com.adventnet.servicedesk.common.MailUtilities.getOutgoingConnectionMap(MailUtilities.java:3638)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at com.adventnet.servicedesk.common.MailUtilities.getOutgoingConnectionMap(MailUtilities.java:3572)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at com.manageengine.servicedesk.mail.sender.MailSender.getInstance(MailSender.java:125)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at com.adventnet.servicedesk.notification.util.NotificationFactory.sendMail(NotificationFactory.java:1062)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at com.adventnet.servicedesk.notification.util.NotificationFactory.sendMailNotification(NotificationFactory.java:949)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at com.adventnet.servicedesk.notification.util.NotificationFactory.sendMailNotification(NotificationFactory.java:909)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at com.adventnet.servicedesk.notification.util.NotificationFactory.sendMailNotification(NotificationFactory.java:905)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at com.adventnet.servicedesk.notification.util.NotificationFactory.sendMailNotification(NotificationFactory.java:900)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at com.adventnet.servicedesk.notification.util.NotificationFactory.sendMailNotification(NotificationFactory.java:850)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at com.adventnet.servicedesk.notification.util.NotificationFactory.sendMailNotification(NotificationFactory.java:844)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at com.manageengine.adsf.authfactor.impl.SDMailAuthenticator.sentCodeToMail(SDMailAuthenticator.java:179)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at com.manageengine.adsf.authfactor.impl.SDMailAuthenticator.sendSecretCode(SDMailAuthenticator.java:138)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at com.manageengine.ads.fw.authentication.twofactor.ADSTwoFactorAPI.sendSecretCode(ADSTwoFactorAPI.java:430)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at com.manageengine.ads.fw.authentication.twofactor.ADSTwoFactorAction.sendSecretCode(ADSTwoFactorAction.java:88)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at java.lang.reflect.Method.invoke(Method.java:498)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:269)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:170)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at javax.servlet.http.HttpServlet.service(HttpServlet.java:681)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at com.manageengine.servicedesk.common.filter.ResetThreadLocal.doFilter(ResetThreadLocal.java:26)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at com.adventnet.servicedesk.filter.EncodingFilter.doFilter(EncodingFilter.java:265)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at com.manageengine.servicedesk.filter.TfaOperationFilter.doFilter(TfaOperationFilter.java:43)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at com.manageengine.mdh.ESMAuthorizationFilter.doFilter(ESMAuthorizationFilter.java:61)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at com.adventnet.iam.security.SecurityFilter.doFilter(SecurityFilter.java:540)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at com.manageengine.servicedesk.filter.SdpSecurityFilter.doFilter(SdpSecurityFilter.java:250)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at com.adventnet.servicedesk.filter.RememberMe.doFilter(RememberMe.java:184)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at com.manageengine.mdh.MDHFilter.doFilter(MDHFilter.java:333)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:659)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:261)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at com.manageengine.servicedesk.valves.MethodFilterValve.invoke(MethodFilterValve.java:76)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at org.apache.catalina.valves.StuckThreadDetectionValve.invoke(StuckThreadDetectionValve.java:206)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at com.manageengine.servicedesk.valves.SDPStuckThreadDetectionValve.invoke(SDPStuckThreadDetectionValve.java:112)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:895)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1722)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at java.lang.Thread.run(Thread.java:750)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: Caused by: java.lang.Exception: Failed to get graph outgoingmap|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at com.adventnet.servicedesk.common.MailUtilities.connectOutgoingGraphMail(MailUtilities.java:3806)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at com.adventnet.servicedesk.common.MailUtilities.getOutgoingConnectionMap(MailUtilities.java:3628)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: ... 78 more|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: Caused by: java.lang.NullPointerException|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at com.manageengine.servicedesk.mailutils.graph.GraphUtil.getOutgoingOkHttpClient(GraphUtil.java:271)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at com.manageengine.servicedesk.mailutils.graph.GraphUtil.getOkHttpClient(GraphUtil.java:233)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: at com.adventnet.servicedesk.common.MailUtilities.connectOutgoingGraphMail(MailUtilities.java:3795)|
[01:17:04:257]|[05-16-2024]|[SYSERR]|[INFO]|[97]: ... 79 more|

Fix:
      Utilize the provided fix JAR file to address the issue.

Note:
  1. This fix is only applicable to non-ESM setups with Graph configuration. If you encounter the issue in any other scenario, please contact support.
  2. Before applying the .fjar file, kindly verify its compatibility in the "Jar Compatibility" section below.
Steps to apply the fix:
1. Download the attached .fjar file.
2. Click here for steps to apply the .fjar file.
3. Restart the application service.
4. If the issue occurs again, recreate the issue, then immediately zip the logs (<server_home>\logs folder. For eg: C:\Program Files\ManageEngine\ServiceDesk\logs folder) and share it with us for analysis. If the size of the log file is huge, you can send it to us using our FTP link https://bonitas2.zohocorp.com/. Select the product as "ServiceDesk Plus" and provide the proper ticket number.
Jar Compatibility:
Build
Compatible Jar
14503
10288947_14503_TFA_Graph_Email_code_Error.fjar
14700 - 14820
9872138_14720_TFA_Graph_Email_code_Error.fjar


                  New to ADSelfService Plus?

                    • Related Articles

                    • Login Frequency Query Report

                      The below report would help us find the last logged in time of the users in SCP 11.0 SELECT AaaUser.FIRST_NAME "Technician",        MAX(AaaLogin.NAME) "LoginName",        MAX(AaaContactInfo.EMAILID) "Email",        MAX(AaaAccSession.USER_HOST) "IP ...
                    • Query to show Technicians' login name, email, role and last login (PGSQL & MSSQL )

                      Tested in Build PGSQL (14300) or MSSQL (14306) SELECT AaaUser.FIRST_NAME "First Name", AaaUser.last_name "Last Name", adef.org_name "Account Name", sdo.name "Site Name", AaaContactInfo.EMAILID "E-mail", sduser.jobtitle, ar.name "Role", ...
                    • Login frequency

                      This report is used to find the Technician and Requester Login frequency. SELECT AaaUser.FIRST_NAME "Technician", MAX(AaaLogin.NAME) "LoginName", MAX(AaaContactInfo.EMAILID) "Email", MAX(AaaAccSession.USER_HOST) "IP Address", ...
                    • Query to Pull out Login Hours

                      Purpose        To generate the Total Login Hours per Technician.  Query : select ai as "Account ID", tn as "Technician Name ( First Name )", lh as "Login hours", LONGTODATE(llt) as "Last Login Time", ln as "Login Name", domain as "Domain", email as ...
                    • Query to get the Login Hours of Technicians (Postgres)

                      Tested in build PGSQL (14300) 1) To generate the total login hours per technician select ai as "Account ID", tn as "Technician Name ( First Name )", lh as "Login hours", LONGTODATE(llt) as "Last Login Time", ln as "Login Name", domain as "Domain", ...