“CSRF violation: Invalid Origin” / a 403 with no submission stored
Your form hasallowed_origins configured, and the request came from somewhere not on that list.
403
My submission landed in Suspicious instead of Valid
The success response looks completely normal — the tell is in the dashboard, not the API response:201 — still a success response
- CAPTCHA is configured but no token was sent — either you’re on the No-JS path (which can’t run CAPTCHA at all), or the widget failed to load client-side (ad blocker, CSP, a slow/blocked script).
- Elevated recent submission volume from the same identity in a short window (rate-limit and repeated-failure signals).
My submission was blocked entirely (never stored)
403
”Idempotency-Key was already used with a different payload”
409
Idempotency-Key header value across two submissions with different data:
My No-JS form doesn’t show any error message
Expected — there’s no client-side error UI on that path by design (no JS to render one). On failure, Raykoi redirects to yourredirect field’s URL (or the page’s own Referer) with ?raykoi_error=... appended:
File upload fields don’t work on my No-JS form
Expected — not currently supported. The upload flow is inherently a multi-step, JavaScript-orchestrated exchange (fetch a signed URL, then PUT to it) that a plain<form> POST can’t perform. See File Uploads.
I’m being rate limited and don’t think I should be
429
Full table in API Overview. If you’re validating on every keystroke client-side, batch or debounce those calls: