connection_reauth_required
The channel no longer accepts this connection for the listing. Reconnect it; retrying will not help.
When it fires
A write to Airbnb — for example PUT /v1/channels/airbnb/listings/{id}/pricing or /availability — reached Airbnb, and Airbnb no longer accepts the connection for that listing. One of:
- The host's authorization expired or was revoked on Airbnb.
- Airbnb refused to refresh the connection's access.
- The listing was not selected when the host connected. Airbnb authorizes writes per listing, so other listings on the same account can still work.
message carries Airbnb's own wording, for example The listing is not connected to the requesting client application.
Response shape
Every Repull error follows the same envelope. The code is stable and safe to switch on.
{
"error": {
"code": "connection_reauth_required",
"message": "Authentication failed for listing 22616426",
"fix": "Airbnb no longer accepts this connection for this listing, so retrying cannot succeed. Reconnect Airbnb at https://repull.dev/dashboard/connections (or re-run `POST /v1/connect/airbnb`), make sure this listing is selected, then retry.",
"docs_url": "https://repull.dev/docs/errors/connection_reauth_required",
"request_id": "req_01J5X7Y8Z9ABCDEF12345678"
}
}How to fix
- Stop retrying. The same request fails the same way until the connection is renewed.
- Reconnect Airbnb at https://repull.dev/dashboard/connections, or start a new Connect session with `POST /v1/connect/airbnb` and send the host through the returned `url`.
- On Airbnb's consent screen, make sure the listing you were writing to is selected.
- Retry the original request once the connection is active again.
Common gotchas
- It can affect one listing, not the account. If other listings on the same host still accept writes, the likely cause is that this listing was left out when the host connected.
- Not the same as a missing connection. A workspace with no Airbnb connection at all gets
404 no_connection; a listing that is not connected to Airbnb in your workspace gets404 not_found. - Calendar writes through
PUT /v1/availability/{propertyId}report the same situation insynced.authErrorsinstead of failing the call.
Examples
curl
# A write Airbnb no longer authorizes
curl -X PUT https://api.repull.dev/v1/channels/airbnb/listings/4118/availability \
-H "Authorization: Bearer sk_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"type": "calendar", "operations": [{"dates": ["2026-07-01"], "availability": "unavailable"}]}'
# → 403 connection_reauth_required
# Recovery: start a new Airbnb Connect session and send the host to the returned url
curl -X POST https://api.repull.dev/v1/connect/airbnb \
-H "Authorization: Bearer sk_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"redirectUrl": "https://your-app.com/callback"}'TypeScript
import { Repull } from '@repull/sdk'
const repull = new Repull({ apiKey: process.env.REPULL_API_KEY! })
const res = await fetch('https://api.repull.dev/v1/channels/airbnb/listings/4118/availability', {
method: 'PUT',
headers: {
Authorization: `Bearer ${process.env.REPULL_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ type: 'calendar', operations: [{ dates: ['2026-07-01'], availability: 'unavailable' }] }),
})
if (res.status === 403) {
const { error } = await res.json()
if (error.code === 'connection_reauth_required') {
// Do not retry — ask the host to reconnect Airbnb and select this listing
const session = await repull.connect.airbnb.create({ redirectUrl: 'https://your-app.com/callback' })
return { needsReconnect: true, redirectTo: session.url }
}
}If you're an AI agent
Airbnb no longer accepts this connection for this listing. Do not retry. Tell the user to reconnect Airbnb at https://repull.dev/dashboard/connections (or via POST /v1/connect/airbnb) and make sure the listing is selected, then retry the original request.
Related
- Error reference — the full table of error codes
- Using Repull from AI agents — patterns for handling errors in agent loops
- Update Airbnb Pricing
- OAuth Connect
- no_connection
Hit an error that isn't covered? Email hello@repull.dev with the request id from the response headers.