service_misconfigured
A fault on our side stopped the action before anything was sent. `retryable` is `false`: do not resend in a loop; report the `request_id`.
When it fires
Repull could not reach the part of its own service that carries out this action, so it stopped before doing anything. Nothing was sent: no message reached the guest, and nothing reached Airbnb or any other channel. It is a fault on our side, not in your request, and the envelope says so with retryable: false. It can come from sending a message and from the inquiry and booking-request actions (pre-approvals, special offers, accepting and declining requests).
Response shape
Every Repull error follows the same envelope. The code is stable and safe to switch on.
{
"error": {
"code": "service_misconfigured",
"message": "Message send failed: Repull could not reach this action. Nothing was sent to the channel.",
"fix": "This is a fault in Repull, not in your request, and retrying will not help until it is fixed. If it persists, contact support with the `request_id`.",
"docs_url": "https://repull.dev/docs/errors/service_misconfigured",
"request_id": "req_01J5X7Y8Z9ABCDEF12345678",
"retryable": false
}
}How to fix
- Do not change the request: nothing in it caused this, and nothing was sent.
- Do not retry in a tight loop. Retrying will not help until the fault is fixed on our side.
- Email hello@repull.dev with the `request_id` from the response. Once we confirm the fix, send the same request again; the same `Idempotency-Key` is fine, because this answer is not stored against it.
Common gotchas
- Branch on
retryable, not on the status code. Other500s areinternal_error, which is worth retrying with backoff; this one is not. - Because nothing was sent, there is no partial state to clean up and no risk of a duplicate when you send again later.
Examples
curl
curl -X POST https://api.repull.dev/v1/conversations/164743/messages \
-H "Authorization: Bearer sk_live_YOUR_KEY" \
-H "Idempotency-Key: msg-164743-checkin" \
-H "Content-Type: application/json" \
-d '{"message": "Your check-in details are ready."}'
# → 500 service_misconfigured, "retryable": false. Nothing was sent; report the request_id.TypeScript
const res = await fetch(url, init)
if (!res.ok) {
const { error } = await res.json()
if (error.retryable === false) {
// service_misconfigured and other final answers: stop, surface it, keep the request_id
throw new Error(`${error.code} (${error.request_id}): ${error.message}`)
}
// retryable errors: back off and retry with the same Idempotency-Key
}If you're an AI agent
A fault inside Repull stopped the action before anything was sent. retryable is false: do not change or resend the request in a loop. Report the request_id; the same request can be sent again once it is fixed.
Related
- Error reference — the full table of error codes
- Using Repull from AI agents — patterns for handling errors in agent loops
- internal_error
- Send a Message
- Inquiries & booking requests
Hit an error that isn't covered? Email hello@repull.dev with the request id from the response headers.