Skip to main content
Every error returned by the UMW API follows a consistent JSON structure, regardless of the endpoint or the nature of the failure. This predictable format means your integration can use a single error-handling routine to parse, log, and surface actionable information for every failure case — from simple validation errors to transient platform issues.

Error Response Object

When the API returns a non-2xx status code, the response body will always contain a top-level error object with the following shape:
string
required
A stable, machine-readable identifier for the error type. Use this value in your application logic to branch on specific error conditions. Error codes do not change across patch releases.
string
required
A human-readable description of the error intended for developers. Messages may change over time and should not be parsed programmatically — use code for logic branching.
string
required
A unique identifier for the API request that produced the error. Every request receives a request_id regardless of outcome. Always include this value when contacting UMW support — it allows the support team to look up the exact request and trace the failure for you.
array of objects
An array of granular validation issues. Each entry identifies the specific field that failed and an issue string describing the constraint that was violated. This array is most commonly populated on 422 Unprocessable Entity responses but may appear on 400 responses as well.
string
The dot-notation path of the request field that caused the validation failure (e.g., release_date, tracks[0].isrc).
string
A plain-language description of the validation constraint that was not satisfied.

HTTP Status Codes

The UMW API uses standard HTTP status codes to indicate the outcome of every request. The table below describes each code your integration may encounter.

Common Error Codes

The following error codes appear frequently across UMW API endpoints. Each code value is stable and safe to use in programmatic error handling.
HTTP Status: 422 Unprocessable EntityA required field was absent from the request body. The details array will identify every missing field in a single response, so you can correct all omissions before retrying.
HTTP Status: 422 Unprocessable EntityThe ISRC value provided does not conform to the ISO 3901 format (CC-XXX-YY-NNNNN). Verify that the country code, registrant code, year, and designation are all present and correctly formatted.
HTTP Status: 409 ConflictA release or delivery with an identical fingerprint (same UPC, label, and release date) has already been submitted by your organization. If you intended to update an existing release, use the PATCH /v1/releases/{release_id} endpoint rather than creating a new record.
HTTP Status: 409 ConflictOne or more audio or artwork assets referenced in the request have not completed processing. Assets must reach ready status before the associated release or delivery can be submitted. Poll GET /v1/assets/{asset_id} until the status transitions, or listen for the asset.ready webhook event.
HTTP Status: 422 Unprocessable EntityA territory code provided in the delivery or release request is not supported by the UMW distribution network, or your organization is not licensed to distribute to that territory. Refer to GET /v1/stores/territories for the full list of supported territory codes available to your account.
HTTP Status: 429 Too Many RequestsYour organization has sent more requests than your tier permits within the current rate-limit window. Inspect the Retry-After response header to determine how many seconds to wait before the next request. See the Rate Limits reference for details on tier limits and implementing exponential backoff.

Always capture and log the request_id from every API response — not just errors. When you contact UMW Developer Support, providing the request_id immediately allows the support team to locate the exact request and diagnose the failure without requiring you to reproduce the issue.