attachment_requires_message

Booking.com does not deliver a file without message text. Nothing was sent; add a `message`.

HTTP 422The request was understood but refused as sent. Change it before retrying.

When it fires

A POST /v1/conversations/{id}/messages on a Booking.com conversation carried attachments but no message text (or only whitespace). Booking.com delivers files only as part of a text message, so a file on its own cannot be sent there.

Nothing was sent. Airbnb has no such rule: a photo-only message is fine there.

Response shape

Every Repull error follows the same envelope. The code is stable and safe to switch on.

{
  "error": {
    "code": "attachment_requires_message",
    "message": "Booking.com does not deliver an attachment without message text. Nothing was sent.",
    "fix": "Add a short `message` to go with the attachment, e.g. \"Here is the parking map.\"",
    "docs_url": "https://repull.dev/docs/errors/attachment_requires_message",
    "request_id": "req_01J5X7Y8Z9ABCDEF12345678",
    "channel": "booking"
  }
}

How to fix

  1. Add a short `message` describing the file, for example "Here is the parking map."
  2. Send the request again.

Examples

curl

curl -X POST https://api.repull.dev/v1/conversations/164743/messages \
  -H "Authorization: Bearer sk_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"message": "Here is the parking map.", "attachments": [{"url": "https://cdn.example.com/parking-map.jpg"}]}'

TypeScript

const res = await fetch('https://api.repull.dev/v1/conversations/164743/messages', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.REPULL_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    // Booking.com needs text with every file; Airbnb does not
    message: 'Here is the parking map.',
    attachments: [{ url: 'https://cdn.example.com/parking-map.jpg' }],
  }),
})

If you're an AI agent

Booking.com needs message text with every attachment. Nothing was sent. Add a short `message` describing the file and send again.

Hit an error that isn't covered? Email hello@repull.dev with the request id from the response headers.

AI