Contact Us 1-800-596-4880

Troubleshooting Workday Connector 15.0 - Mule 4

To troubleshoot Anypoint Connector for Workday (Workday Connector), become familiar with the information about addressing specific common errors and interpreting commonly thrown exception messages.

Enable SSL Logging

Enable SSL logs to investigate an issue related to TLS communications.

Set your SSL log level depending on your required level of detail:

  1. Enable only SSL log details:

    javax.net.debug=ssl

  2. Enable only handshaking details. (The handshake protocol is a series of messages exchanged over the record protocol.)

    javax.net.debug=ssl:handshake

  3. Enable handshaking details and SSL details at the same time:

    javax.net.debug=ssl, handshake

  4. Enable the dumping of all details and traffic data:

    javax.net.debug=all

    This option is very verbose and under normal circumstances is not necessary.
SSL logging results in a performance impact for HTTPS or other TLS connections. Enable SSL logging only to troubleshoot a specific issue and do not enable it for extended periods. SSL logging produces a significant amount of log messages and can inundate your log file if it is left enabled and unattended.

To enable SSL logs:

Set the debug parameter as an argument in the runtime configuration for the application.

  1. In Studio, right-click on the project and select Run > Run Configurations.

  2. Go to the Arguments tab and add -M-Djavax.net.debug=ssl in the VM arguments section.

Enable Verbose Exception Logging

Enable verbose exception logs to show a complete stack trace of the error instead of the default truncated output:

  1. In Studio, right-click on the project and select Run > Run Configurations.

  2. Go to the Arguments tab and append the arguments in the VM arguments section to add the mule.verbose.exceptions property. For example:

    -XX:PermSize=128M -XX:MaxPermSize=256M -Dmule.verbose.exceptions=true

Enable Verbose Logging

To get a better understanding of why an application’s interaction with Workday Connector is failing, temporarily enable verbose logging for the connector.

Remember to always disable enhanced verbosity after troubleshooting, because it can affect your Mule application’s performance.

To enable verbose logging in the configuration file:

  1. Access Anypoint Studio and navigate to the Package Explorer view.

  2. Open your application’s project name.

  3. Open the src/main/resources folder.

  4. Open the log4j2.xml file inside the folder.

  5. Add an <AsyncLogger> tag inside the <Loggers> tag:

    			<Loggers>
    				...
    				<AsyncLogger name="com.mulesoft.connectors.workday" level="DEBUG"/>
    				...
    			</Loggers>
  6. Save your application changes.

  7. Click the project name in Package Explorer and then click Run > Run As > Mule Application.

Troubleshoot Common Errors

Here is a list of the common Workday Connector errors and how to resolve them:

Connectivity Errors

The connector throws CONNECTIVITY errors to trigger the reconnection process. If the connector throws a CONNECTIVITY error and reconnection is configured for the configuration that throws the error, the connector recreates the session and retries the operation automatically.

The reconnection process is handled by Mule runtime and comes with some exceptions, for example, if a CONNECTIVITY error is thrown during the connection creation process, then the reconnection is not triggered even if reconnection is configured. This is because the CONNECTIVITY error occurs while connecting to the third-party system, so the CONNECTIVITY error (usually caused by expired credentials or misconfiguration) is likely to occur every time, which retries the reconnection as many times as the reconnection is configured. It is the user’s responsibility to handle CONNECTIVITY errors if they are thrown during connection creation.

Remove the Warning on Every HTTP Call

Workday Connector logs the following warning message on every HTTP call:

WARN  2020-11-10 10:51:57,494 [[MuleRuntime].uber.12: [workday].workdayFlow.BLOCKING @766054e8] [processor: ; event: 5ec7a670-233a-11eb-a099-f018989d247f] com.ning.http.client.RequestBuilderBase: Value was null, set to ""

To remove this warning from the Anypoint Studio console, update src/main/resources/log4j2.xml with the following line:

<AsyncLogger name="com.ning.http.client.RequestBuilderBase" level="ERROR"/>

Timeout in Studio

Due to connectivity issues, you might experience a timeout while obtaining metadata from Workday Connector and receive one of the following errors:

  • Error While Retrieving SOAP Client ID

    org.mule.runtime.api.exception.MuleRuntimeException: Error while retrieving soap client id [Absence_Management]
      org.mule.runtime.api.exception.MuleRuntimeException: Error while retrieving soap client id [Absence_Management]
      Caused by: java.util.concurrent.ExecutionException:
      org.mule.wsdl.parser.exception.WsdlParsingException: Error processing
      WSDL file [https://wd3-impl-services1.workday.com/ccx/service/deakin_amu1/Absence_Management/v29.1?wsdl]:
      Unable to locate document at 'https://wd3-impl-services1.workday.com/ccx/service/deakin_amu1/Absence_Management/v29.1?wsdl&#39;.
  • Mule Agent REST Service Timed Out

    org.mule.tooling.client.api.exception.TimeoutException: Mule Agent REST service timed out
      org.mule.tooling.client.api.exception.TimeoutException: Mule Agent REST service timed out
      javax.ws.rs.ProcessingException: java.net.SocketTimeoutException: Read timed out
      	at org.glassfish.jersey.client.HttpUrlConnector.apply(HttpUrlConnector.java:244)
      	at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:245)
      	at org.glassfish.jersey.client.JerseyInvocation$1.call(JerseyInvocation.java:671)
      	at org.glassfish.jersey.client.JerseyInvocation$1.call(JerseyInvocation.java:668)
      	at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
      	at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
      	at org.glassfish.jersey.internal.Errors.process(Errors.java:228)
      	at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:444)
      	at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:668)
      	at

To resolve this error:

Increase the timeout values in Anypoint Studio:

  1. In Anypoint Studio, go to Preferences > Anypoint Studio > Tooling.

  2. Increase the values to double the default value for Default Connection Timeout and Default Read Timeout.

  3. Click Apply and restart Studio.

Get Degrees Error When Testing the Connection

When validating connectivity using the Test Connection button, you might encounter an error regarding the Get_Degrees operation:

org.mule.runtime.api.exception.MuleRuntimeException: java.lang.RuntimeException: Unexpected error while consuming the web service operation [Get_Degrees]

To validate connectivity using the Test Connection button, Workday Connector uses a Performance_Management service with the Get_Degrees operation. You must ensure that your service account has the required permissions to operate on that service. To resolve this error, grant permissions for the Get_Degrees operation in the Performance_Management web service.

Understand Commonly Thrown Exceptions

Here is a list of commonly thrown exception messages and how to interpret them:

  • WORKDAY:CONNECTIVITY

    A connection cannot be established.
  • WORKDAY:PROCESSING_ERROR

    A processing error occurs, for example, the connector cannot read from the inbound message.
  • WORKDAY:RETRY_EXHAUSTED

    The maximum number of retries for the operation is reached.
  • WORKDAY:VALIDATION_ERROR

    A validation error occurs, for example, an inactive organization includes an active organization.
View on GitHub