---
nav: wcp_docs
parent_url: /wcp_docs/
title: >- 
  Reference: REST API Error Messages
layout: subsection
---

<a id="section_1"></a>
Errors returned by the REST APIs are typically caused by:

-   <b>Authentication issues</b>: Improper credentials, expired tokens, or missing credentials.
-   <b>Authorization and access issues</b>: Accessing non-existent resources or lacking required permissions.
-   <b>Invalid request issues</b>: These issues return the HTTP Status Code: 400 Bad Request. The server cannot process the request due to a client-side error. This typically occurs because the request body contains malformed syntax, missing required parameters, or data that violates business logic validation rules.


## <a id="error_messages"></a>Authentication Issues

<table><thead><tr><th>HTTP Status Code</th><th>Error Message</th><th>Description/Solution</th></tr></thead><tbody><tr><td>401</td><td>Unauthorized</td><td>Valid credentials were not supplied for authorization.</td></tr><tr><td>401</td><td>Invalid Access Token</td><td>OAuth 2.0 token is not valid or has expired. Generate a new token.</td></tr></tbody></table><br/>

## <a id="section_2"></a>Authorization and Access Issues

<table><thead><tr><th>HTTP Status Code</th><th>Error Message</th><th>Description/Solution</th></tr></thead><tbody><tr><td>403</td><td>Not Authorized</td><td>Ensure that the user has access to the required security domain for the resource or subresource. <p>To access a subresource, the user must have permission on the parent resource. Ensure appropriate and compatible security configuration for both resource and subresource.</p></td></tr><tr><td>404</td><td>Not Found: {value}</td><td>Verify: <ul><li>The path and any specified IDs are valid.
</li><li>The user has correct permissions.
</li></ul></td></tr><tr><td>405</td><td>Method not Allowed</td><td>The request uses an unsupported HTTP method for the resource.</td></tr></tbody></table><br/>

## <a id="section_3"></a>Invalid Request Issues

Invalid POST, PUT, PATCH, and DELETE requests return the HTTP Status Code: 400 Bad Request. Common causes and solutions:

<table><thead><tr><th>Error Category</th><th>Description</th><th>Solution</th></tr></thead><tbody><tr><td>Malformed syntax</td><td>The JSON payload is invalid, unreadable, or contains incorrect data types. Example: A boolean field was specified as a string.</td><td>Validate that your request body is syntactically correct and matches the expected schema.</td></tr><tr><td>Validation error</td><td>Essential fields are missing, or values are outside allowable ranges. Example: A start date is after an end date.</td><td>Review the API definition to ensure all required fields are present and valid.</td></tr><tr><td>Business process violation</td><td>The request is syntactically correct, but the proposed change conflicts with a controlling Business Process or configuration rule.</td><td><p><b>Example</b>: Attempting to transfer a worker into a supervisory organization that is in a hiring freeze.</p> <p><b>Response</b>: "The proposed supervisory organization is in a Hiring Freeze. It cannot be selected."</p> <p><b>Fix</b>: Adjust the request to comply with the current business configuration state (e.g., select a different organization or update the freeze status).</p></td></tr></tbody></table><br/>

You can find a list of validation error codes and messages in the REST API Explorer. In the REST service page, open the endpoint description, and see the list of error codes in the <b>400</b> response description.

To ensure data integrity and system efficiency, the REST API framework performs validation checks in a specific sequence. The framework immediately stops processing and returns an error as soon as the first critical validation failure occurs. Subsequent validation levels will not be evaluated until the preceding errors are resolved.

When a validation fails, the error response includes the `severity` field, which is either `Critical` or `Warning`. You can apply business logic to handle errors according to their severity level. For warning validations, you can use the `wd-warning-action` HTTP header to persist data if warning-level validations fail. See [Concept: Warning Action REST API Header](/wcp_docs/GUID-83e641fd-e05f-47a7-b585-128bc7c96fe4-enHYPHENus.html).

## <a id="section_4"></a>System Error Codes

The REST API framework can return these error codes and their corresponding HTTP status codes:

<table><thead><tr><th>Code</th><th>HTTP Status</th><th>Description</th><th>Solution/Notes</th></tr></thead><tbody><tr><td>S1</td><td>500</td><td>Runtime Object Creation Failure <p>The server could not create the necessary internal resources to process the request.</p></td><td>Retry the request. If the issue persists, contact Workday Support.</td></tr><tr><td>S2</td><td>500</td><td>Configuration Error <p>The system encountered an invalid type assignment during processing.</p></td><td>Internal configuration issue. Contact Workday Support.</td></tr><tr><td>S3</td><td>400</td><td>Unsupported Version <p>The service version specified in the URL is not available.</p></td><td>Verify the version number in your URL path (example: <code>v1</code>).</td></tr><tr><td>S4</td><td>500</td><td>Internal Server Error <p>An unexpected server error occurred.</p></td><td>Retry the request.</td></tr><tr><td>S5</td><td>400</td><td>Failed To Parse Request <p>The request body could not be parsed.</p></td><td>Ensure your payload is well-formed JSON/XML and matches the schema.</td></tr><tr><td>S6</td><td>400</td><td>Invalid Reference ID <p>The provided reference ID is empty, malformed, or invalid.</p></td><td>Check the format and value of the IDs provided in your payload.</td></tr><tr><td>S7</td><td>400</td><td>Invalid Reference Type <p>The reference type specified cannot be resolved to an existing reference.</p></td><td>Ensure the type definition matches the API documentation.</td></tr><tr><td>S8</td><td>400</td><td>Missing Derived Class <p>A required derived class was not specified for the representation.</p></td><td>Check the payload for missing type discriminators or class definitions.</td></tr><tr><td>S9</td><td>400</td><td>Unsupported Operation <p>The requested operation is not supported on this resource.</p></td><td>Check if the HTTP method (GET, POST, PUT) is valid for this endpoint.</td></tr><tr><td>S10</td><td>400</td><td>Multiple Processing Options Not Supported <p>The operation does not support multiple concurrent processing options.</p></td><td>Simplify the request to use a single processing flow or update method.</td></tr><tr><td>S11</td><td>400</td><td>Representation Not Found <p>The requested resource representation could not be found.</p></td><td>Verify the content-type and resource identifiers.</td></tr><tr><td>S12</td><td>405</td><td>Method Not Allowed <p>The HTTP method is not allowed for this resource.</p></td><td>This often occurs if the resource is not configured to support data retrieval or updates.</td></tr><tr><td>S13</td><td>500</td><td>Processing Configuration Error <p>The server configuration for this operation is incomplete.</p></td><td>Internal configuration issue. Contact Workday Support.</td></tr><tr><td>S14</td><td>400</td><td>Bulk Limit Exceeded <p>The number of instances to update exceeds the limit specified for this service.</p></td><td>Reduce the number of items in the bulk request.</td></tr><tr><td>S15</td><td>400</td><td>View Not Found <p>The view value specified in the query parameter could not be found.</p></td><td>Verify the view name in your query string.</td></tr><tr><td>S16</td><td>400</td><td>Invalid Service In URL <p>No service or an invalid service was provided in the URL.</p></td><td>Check the URL path for typos in the service name.</td></tr><tr><td>S17</td><td>400</td><td>Operation Not Found <p>The operation specified in the "type" query parameter could not be found.</p></td><td>Verify the operation type against the documentation.</td></tr><tr><td>S18</td><td>400</td><td>Configuration Error <p>A required class mapping is missing for this operation.</p></td><td>Internal configuration issue.</td></tr><tr><td>S19</td><td>401</td><td>Not Authorized <p>Authentication is required and was either missing or invalid.</p></td><td>Verify your credentials or bearer token.</td></tr><tr><td>S20</td><td>400</td><td>No Result For Processing <p>The processing method returned no results.</p></td><td>Ensure the data being acted upon exists and is valid.</td></tr><tr><td>S21</td><td>404</td><td>Not Found <p>The requested resource or endpoint path was not found.</p></td><td>Check the URL path segments.</td></tr><tr><td>S22</td><td>403</td><td>Permission Denied <p>The request is understood, but cannot be performed due to insufficient permissions.</p></td><td>Verify the user's security policies.</td></tr><tr><td>S23</td><td>400/500</td><td>Application Exception <p>An internal application error occurred.</p></td><td>Contact Workday Support if the issue persists.</td></tr><tr><td>S24</td><td>500</td><td>Server Error <p>An unexpected server error occurred.</p></td><td>Retry the request.</td></tr><tr><td>S25</td><td>400</td><td>Invalid Request <p>The request contains invalid parameters or data.</p></td><td>Review the request against the API definition.</td></tr><tr><td>S26</td><td>N/A</td><td>Client Closed Request <p>The client closed the connection before the server finished processing.</p></td><td>This may occur if a wd-request-timeout header was sent and the limit was reached.</td></tr><tr><td>S27</td><td>504</td><td>Transaction Timeout <p>The server was unable to finish processing the request within the allocated time limit.</p></td><td>Try reducing the scope of the request.</td></tr><tr><td>S28</td><td>400</td><td>Expired ID <p>The provided ID is expired.</p></td><td>Obtain a new ID and retry the request.</td></tr><tr><td>S29</td><td>400</td><td>Invalid ID Field <p>One or more field values in the ID are invalid.</p></td><td>Ensure the ID has not been tampered with or malformed.</td></tr><tr><td>S30</td><td>400</td><td>Invalid Data Source <p>The processing data source provided in the ID does not match.</p></td><td>Ensure the ID belongs to the current environment/context.</td></tr><tr><td>S31</td><td>400</td><td>Invalid Instance <p>The processing instance from the ID does not belong to the class of the provided business object.</p></td><td>The ID does not match the object being accessed.</td></tr><tr><td>S32</td><td>400</td><td>Unexpected ID Values <p>The number of values provided in the ID is incorrect.</p></td><td>Ensure the ID string is complete and not truncated.</td></tr><tr><td>S33</td><td>403</td><td>ID User Mismatch <p>The processing user does not match the user provided in the ID.</p></td><td>The ID was generated for a different user session.</td></tr><tr><td>S34</td><td>403</td><td>Unauthorized User for ID <p>The processing user does not have access to the data source provided in the ID.</p></td><td>Check user permissions regarding the data referenced in the ID.</td></tr><tr><td>S38</td><td>504</td><td>Post Update Transaction Timeout <p>The update was successful, but the operation timed out while waiting for the response.</p></td><td>Verify the update in the target system before retrying.</td></tr></tbody></table><br/>

