precondition_required
- HTTP status
- 428
- Retry
- No
- Execution
- Nothing was done
- Admin needed
- No
If-Match required. Campaigns and contacts are updated with optimistic concurrency. Send the ETag from your latest read in If-Match, so an update never overwrites a change you have not seen. If-Match: * matches any current version: the update is applied without the concurrency check (use it only when overwriting whatever is there is what you want).
What it means
The API returns HTTP 428 with error.code set to precondition_required. The default message is: "This update needs an If-Match header with the ETag of the version you read."
Common causes
- The
If-Matchheader was not sent.
How to identify it
Check the response status (428) and error.code (precondition_required). Branch on error.code, not on the message text: messages can be reworded, codes do not change within v1. Log error.request_id (also sent as the X-Request-Id header) so support can find the request.
How to fix it
- Retrieve the resource, copy its
ETagresponse header intoIf-Match, and resend.
Retry guidance
Sending the request unchanged fails the same way. Fix the cause first (see How to fix it), then send it again.
Did anything happen?
This request was refused before any call was placed and before anything was charged.
Idempotency
PATCH does not use an Idempotency-Key.
Who can fix it
The developer who sends the request can fix it; no administrator action is normally needed.
When to contact support
If the error persists after the steps above, contact support@relationsai.com. See Support for what to include (the request_id, the time in UTC, the operation, and whether you used a test or live key) and what never to send (API keys, Authorization headers, webhook signing secrets, recording links, transcripts or customer data).
Example error response
JSON
Incorrect and corrected request
Incorrect: A PATCH without If-Match.
Text
Corrected: The ETag from the latest GET of the campaign, sent as If-Match.
Text
Operations that can return this error
PATCH /campaigns/{campaign_id}: Update a campaignPATCH /contacts/{contact_id}: Update a contact
See all codes in the error-code reference.