Skip to main content

Troubleshooting

BETA

The Contact Center Campaigns API is currently in Beta. See the Overview for details.

Error response format

All errors returned by the Contact Center Campaigns API use a consistent JSON body format.

Example — a 400 validation error:

{
"title": "Validation failed",
"status": 400,
"detail": "Campaign already contains record for Id: CRM-12345",
"instance": "/cc/US1/campaigns/v1/123e4567-e89b-12d3-a456-426614174000/records",
"time": "2026-04-22T10:30:00Z",
"errors": [
{
"field": "crmRecordId",
"code": "NotBlank",
"message": "must not be blank"
}
]
}

Body fields

FieldTypeDescription
titlestringShort, human-readable summary of the problem
statusnumberHTTP status code
detailstringHuman-readable explanation specific to this occurrence
instancestringURI reference identifying the specific occurrence of the problem
timetimestampWhen the error occurred (ISO 8601)
errorsarray of FieldErrorField-level validation errors (only present on validation failures)

FieldError

FieldTypeDescriptionExample
fieldstringName of the field in errorcrmRecordId
codestringError code (typically a validator name)NotBlank
messagestringHuman-readable messagemust not be blank

When contacting 8x8 support about an error, include the instance URI and time — these uniquely identify the occurrence in server logs.

Common errors by status code

400 Bad Request

The request body is malformed or fails validation. Look at errors[] for the specific field(s) at fault.

Common causes:

  • Malformed JSON — missing braces, trailing commas, wrong quoting
  • records array is empty, or contains more than 100 items
  • crmRecordId is blank or longer than 32 characters
  • crmRecordId values are duplicated within the same request
  • action is not one of the allowed values
  • scheduleAt is not a valid ISO 8601 timestamp

401 Unauthorized

The request is missing valid authentication.

Common causes:

  • X-API-Key header is missing
  • The key value is malformed — it must start with eght_
  • The key has been revoked, or the app has been deleted in Admin Console

See Authentication.

403 Forbidden

The API key is valid but is not authorised for this API.

Most common cause:

  • The Contact Center Campaigns API Product is not attached to the app in Admin Console. Edit the app and add the Product.

404 Not Found

The campaign, tenant, or customer site could not be resolved.

Common causes:

  • The campaignId UUID does not exist within the tenant
  • The X-8x8-Tenant header is missing or points at a different tenant than the one that owns the campaign
  • The {customer-site} segment of the URL is wrong — only US1, US2, and UK3 are valid

409 Conflict

The request is syntactically valid but conflicts with the current server state.

Common causes:

  • Action invalid for current state. For example, sending {"action":"PAUSE"} to a campaign in CREATED. See the State Machine for the valid-from matrix.
  • Duplicate crmRecordId. The record already exists in the campaign from a previous request.
  • Campaign state rejects record additions. Records cannot be added while the campaign is BUILDING, STARTING, COMPLETE, or DELETED.

5xx Server Errors

An unexpected server error. These should be rare.

  • Retry the request with exponential backoff
  • When contacting support, include the instance URI and time from the error body

Debugging checklist

When a request doesn't do what you expect, work through the following:

  1. Customer site — is the {customer-site} segment correct for your tenant (US1, US2, or UK3)?
  2. Tenant name — does the X-8x8-Tenant header value match the tenant that owns the campaign?
  3. API Product — does the Admin Console app that issued the key have the Contact Center Campaigns API Product attached?
  4. Media type — are requests with a body sending Content-Type: application/vnd.campaigns.v1+json?
  5. Campaign state — is the campaign in a state that allows the action you're sending? Check the response from a recent PATCH or the State Machine.
  6. Campaign enabled flag — if the campaign is disabled, only BUILD and RESET actions are allowed.
  7. Record constraints — is crmRecordId 1-32 characters, unique in the request, and not already present in the campaign? Is the batch between 1 and 100 records?

Getting help

For issues not resolved by this guide:

  1. Check the Authentication and State Machine pages
  2. Confirm the Admin Console setup
  3. Contact 8x8 support, including the instance URI and time from the error response body