Support Article
ServiceAPI using OAuth causes log-level error messages
Summary
ServiceAPI using OAuth causes log-level error messages referencing token expiration. The message should not be Error level as it is not server-side and does not require Administrator's action. The frequency of the error overpopulates Pega Diagnostic Cloud and obscures more relevant errors. When the OAuth access token expires after a day, excessive logging of authentication failures happens in the log.
Error Messages
282 [ttp-nio-8080-exec-57] [STANDARD] [ ] [XYZ:127.0.0.1] (internal.services.ServiceAPI) ERROR |xx.xx.xx.xx|Rest|offlinehttp|DataSync|pzsynchronizationservicexxxxxxxxxxxxxxxxxxxxxxxxxxxx| - Rest service [offlinehttp][DataSync][pzsynchronizationservice659e93e2c8d5308618ab6c53efafdd5b] failed:Requestor authentication failed due to missing credentials
com.pega.pegarules.pub.services.ServiceException: Requestor authentication failed due to missing credentials
at com.pega.pegarules.integration.engine.internal.services.ServiceAPI.handleAuthentication(ServiceAPI.java:1614) ~[printegrint.jar:?]
at com.pega.pegarules.session.external.engineinterface.service.EngineAPI.activityExecutionProlog(EngineAPI.java:576) ~[prenginext.jar:?]
at com.pega.pegarules.session.external.engineinterface.service.EngineAPI.processRequestInner(EngineAPI.java:415) ~[prenginext.jar:?]
at sun.reflect.GeneratedMethodAccessor108.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:127.0.0.1]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:127.0.0.1]
at com.pega.pegarules.session.internal.PRSessionProviderImpl.performTargetActionWithLock(PRSessionProviderImpl.java:1368) ~[prprivate.jar:?]
at com.pega.pegarules.session.internal.PRSessionProviderImpl.doWithRequestorLocked(PRSessionProviderImpl.java:1105) ~[prprivate.jar:?]
at com.pega.pegarules.session.internal.PRSessionProviderImpl.doWithRequestorLocked(PRSessionProviderImpl.java:959) ~[prprivate.jar:?]
at com.pega.pegarules.session.external.engineinterface.service.EngineAPI.processRequest(EngineAPI.java:354) ~[prenginext.jar:?]
at com.pega.pegarules.integration.engine.internal.services.StatefulServiceAPI.processRequest(StatefulServiceAPI.java:77) ~[printegrint.jar:?]
at com.pega.pegarules.integration.engine.internal.services.http.HTTPService.invoke(HTTPService.java:530) ~[printegrint.jar:?]
at com.pega.pegarules.session.internal.engineinterface.etier.impl.EngineImpl._invokeEngine_privact(EngineImpl.java:331) ~[prprivate.jar:?]
at com.pega.pegarules.session.internal.engineinterface.etier.impl.EngineImpl.invokeEngine(EngineImpl.java:274) ~[prprivate.jar:?]
at com.pega.pegarules.session.internal.engineinterface.etier.impl.EngineImpl.invokeEngine(EngineImpl.java:251) ~[prprivate.jar:?]
at com.pega.pegarules.priv.context.JNDIEnvironment.invokeEngineInner(JNDIEnvironment.java:275) ~[prpublic.jar:?]
at com.pega.pegarules.priv.context.JNDIEnvironment.invokeEngine(JNDIEnvironment.java:220) ~[prpublic.jar:?]
at com.pega.pegarules.web.impl.WebStandardImpl.makeEtierRequest(WebStandardImpl.java:691) ~[prwebj2ee.jar:?]
at com.pega.pegarules.web.impl.WebStandardImpl.doPost(WebStandardImpl.java:397) ~[prwebj2ee.jar:?]
at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:127.0.0.1]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:127.0.0.1]
at com.pega.pegarules.internal.bootstrap.PRBootstrap.invokeMethod(PRBootstrap.java:370) ~[prbootstrap]
at com.pega.pegarules.internal.bootstrap.PRBootstrap.invokeMethodPropagatingThrowable(PRBootstrap.java:411) ~[prbootstrap-127.0.0.1]
at com.pega.pegarules.boot.internal.extbridge.AppServerBridgeToPega.invokeMethodPropagatingThrowable(AppServerBridgeToPega.java:224) ~[prbootstrap-api-127.0.0.1-529.jar:7.4.13-529]
at com.pega.pegarules.boot.internal.extbridge.AppServerBridgeToPega.invokeMethod(AppServerBridgeToPega.java:273) ~[prbootstrap-api-127.0.0.1-529.jar:127.0.0.1-529]
at com.pega.pegarules.internal.web.servlet.WebStandardBoot.doPost(WebStandardBoot.java:129) ~[prbootstrap-api-127.0.0.1-529.jar:127.0.0.1-529]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:660) ~[servlet-api.jar:?]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) ~[servlet-api.jar:?]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) ~[catalina.jar:127.0.0.1]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[catalina.jar:127.0.0.1]
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) ~[tomcat-websocket.jar:127.0.0.1]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[catalina.jar:127.0.0.1]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[catalina.jar:127.0.0.1]
Caused by: com.pega.pegarules.pub.context.AuthenticationRequiredException: PRRuntimeException
at com.pega.pegarules.session.internal.mgmt.authentication.SchemePRCustom.onAuthenticationFailure(SchemePRCustom.java:965) ~[prprivate.jar:?]
at com.pega.pegarules.session.internal.mgmt.authentication.Authentication.doAuthentication(Authentication.java:766) ~[prprivate.jar:?]
at com.pega.pegarules.integration.engine.internal.services.ServiceAPI.handleAuthentication(ServiceAPI.java:1592) ~[printegrint.jar:?]
... 58 more
Steps to Reproduce
Unknown
Root Cause
A defect in Pegasystems’ code or rules.
Resolution
Apply HFix-60055.
Published February 10, 2020 - Updated December 2, 2021
Have a question? Get answers now.
Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.