request_no_longer_pending
Airbnb says the booking request was already accepted, declined, withdrawn or cancelled. Re-read it; do not retry.
When it fires
Repull asked Airbnb to accept or decline a booking request, and Airbnb said it had already moved on: it was accepted or declined already (in the Airbnb app, by a co-host, or by another integration), the guest withdrew it, or it was cancelled. It comes from POST /v1/reservations/{id}/accept, /decline and POST /v1/channels/airbnb/reservations/{code}.
message carries Airbnb's own wording. Your copy of the reservation may still say pendingfor a few seconds, until Airbnb's update reaches Repull.
Response shape
Every Repull error follows the same envelope. The code is stable and safe to switch on.
{
"error": {
"code": "request_no_longer_pending",
"message": "Reservation status changed and attempted action is no longer allowed.",
"fix": "The request was already accepted, declined, withdrawn by the guest or expired. Re-read it with `GET /v1/reservations/{id}` — do not retry.",
"docs_url": "https://repull.dev/docs/channels/airbnb/inquiries-and-requests",
"request_id": "req_01J5X7Y8Z9ABCDEF12345678"
}
}How to fix
- Do not retry. Airbnb gives the same answer every time.
- Re-read the reservation with `GET /v1/reservations/{id}`, or wait for the `reservation.updated` webhook, to learn its new state.
- Update your own records from that, not from the action you attempted.
Examples
curl
curl https://api.repull.dev/v1/reservations/236354 \ -H "Authorization: Bearer sk_live_YOUR_KEY"
TypeScript
if (res.status === 409) {
const { error } = await res.json()
if (error.code === 'request_no_longer_pending' || error.code === 'request_expired') {
// Someone or something already answered it; re-read instead of retrying
const current = await fetch(`https://api.repull.dev/v1/reservations/${id}`, {
headers: { Authorization: `Bearer ${process.env.REPULL_API_KEY}` },
}).then((r) => r.json())
return current
}
}If you're an AI agent
Airbnb says the booking request was already answered, withdrawn or cancelled. Do not retry. Re-read the reservation (GET /v1/reservations/{id}) or wait for reservation.updated.
Related
- Error reference — the full table of error codes
- Using Repull from AI agents — patterns for handling errors in agent loops
- Inquiries & booking requests
- request_expired
- reservation_not_pending
Hit an error that isn't covered? Email hello@repull.dev with the request id from the response headers.