For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Logo
DeveloperAcademyCommunityStatus
    • Overview
    • API Credentials
    • Errors
    • Legacy & Deprecated APIs
  • Events API
    • Chat Markup
    • Rate Limits
    • Message Delivery
  • (Beta) Conversations API
  • Data API
    • GETList conversations
    • GETList interactions
    • GETList plugins calls
    • GETList Plugin Resources
    • GETList Users
  • Webhook Listeners
  • Content Gateway
    • Overview
    • Integration Strategies
    • Starter Code
    • Verifying Your Build
    • Connecting Your Gateway to Moveworks
    • Authentication
    • How Permissions Work
    • Common Pitfalls
    • Operational Guide
    • Errors
    • Supported MIME Types
  • Legacy Gateways
    • Authentication
    • Response Options
    • Field Types
    • Form Gateway Errors
DeveloperAcademyCommunityStatus
On this page
  • Gateway Errors
  • Error Codes
  • 400 INPUT_VALIDATION_FAILED
  • 401 AUTHENTICATION_FAILED
  • 404 NOT_FOUND
  • 429 RATE_LIMIT_EXCEEDED
  • 500 INTERNAL_SERVER_ERROR
  • 502 EXTERNAL_REST_ERROR
Content Gateway

Content Gateway Errors

||View as Markdown|
Was this page helpful?
Edit this page
Previous

Supported MIME Types

Next
Built with

Gateway Errors

All gateways should expose the following error codes to Moveworks. The error code and message format should follow exactly as below. The API gateway should make limited-to-no changes to error messages exposed by underlying systems.

Error Response Format
1{
2 "error": {
3 "code": "ERROR_CODE_IDENTIFIER",
4 "message": "Description of the error."
5 }
6}

Error Codes

400 INPUT_VALIDATION_FAILED

Moveworks submitted an invalid request to the gateway.

1{
2 "error": {
3 "code": "INPUT_VALIDATION_FAILED",
4 "message": "Mandatory field not provided: submitted_by."
5 }
6}

401 AUTHENTICATION_FAILED

The provided credential by Moveworks is invalid or missing. This is NOT the same as authentication failing between the gateway and your downstream systems.

1{
2 "error": {
3 "code": "AUTHENTICATION_FAILED",
4 "message": "Bearer token missing."
5 }
6}

404 NOT_FOUND

The resource identifier Moveworks is requesting is missing.

1{
2 "error": {
3 "code": "NOT_FOUND",
4 "message": "Form ID 222 does not exist."
5 }
6}

429 RATE_LIMIT_EXCEEDED

Moveworks has exceeded the allowable number of requests per minute.

1{
2 "error": {
3 "code": "RATE_LIMIT_EXCEEDED",
4 "message": "Rate limit exceeded."
5 }
6}

If your gateway enforces a rate limit, advertise it via response headers on every response. Moveworks reads these headers and proactively slows down its call rate when your remaining capacity drops below ~30% of your limit, without waiting for a 429:

Rate Limit Headers (advisory; opt in when you enforce a rate limit)
1X-RateLimit-Limit: <max requests per window>
2X-RateLimit-Remaining: <requests remaining in current window>
3X-RateLimit-Reset: <seconds until rate limit fully resets>

Common header-name variants (X-Rate-Limit-*, RFC 9456 RateLimit-*) are also recognized. If you do not enforce a rate limit on your side, omit these headers entirely; Moveworks falls back to its baseline crawl pacing.

For the full throttling story (proactive vs reactive behavior, what Moveworks does with each header, capacity planning), see the Operational Guide.

500 INTERNAL_SERVER_ERROR

Something went wrong in the gateway and threw an exception.

1{
2 "error": {
3 "code": "INTERNAL_SERVER_ERROR",
4 "message": "NoneType has no attribute 'records'"
5 }
6}

502 EXTERNAL_REST_ERROR

Something went wrong between the gateway and your system. Should include the raw response from the source system’s error.

1{
2 "error": {
3 "code": "EXTERNAL_REST_ERROR",
4 "message": "Service Cloud rejected the request. Raw response: SOQL insertion failed. Can not set Case Owner to Contact record."
5 }
6}