You can also set your own
X-Request-Id on a request and Paige will use it, which makes tracing across your system and Paige’s much easier.
Status codes
Common error codes
Request problems (400)
Message sends add their own validation codes —
invalid_phone, missing_recipient, missing_template_name, missing_language, template_variable_mismatch, unsupported_message_type, too_many_buttons, and others. Each names precisely what to fix.
Credential problems (401 / 403)
All of these are covered in Authentication.
protected_file is separate: it means a write targeted a file the platform manages, which your integration isn’t allowed to edit.
Conflicts (409)
The last two are explained in Idempotency.
Too many requests (429)
Both carry
Retry-After. They’re genuinely different problems — see Rate limits.
Upstream and server (5xx)
You’ll also see some codes in
SCREAMING_SNAKE_CASE — PROJECT_NOT_FOUND, SEGMENT_NOT_FOUND, MEDIA_EXPIRED, BROADCAST_NOT_FOUND and similar. They come from the shared capability layer that the AI agent tools use too, and they behave exactly like any other code. Match on them the same way.
