⌘I

Form error: form-not-found (404)

Updated November 5, 2026·
forms

Your form submitted to an endpoint that doesn’t exist on Formspree.

What the response looks like

The response is JSON, sent as application/json. If your request asks for application/problem+json, that’s what you get instead.

{
  "type": "https://help.formspree.io/articles/api-errors/form-not-found",
  "title": "Form not found",
  "status": 404,
  "detail": "No form exists with ID \"YOUR_FORM_ID\". Formspree form IDs are issued when a form is created, not chosen by you.",
  "instance": "<request id>",
  "next_steps": [
    {"step": "Open your dashboard", "detail": "Your dashboard lists every live form endpoint.", "url": "https://formspree.io/forms"}
  ],
  "error": "Form not found",
  "errors": [{"code": "FORM_NOT_FOUND", "message": "Form not found"}]
}

error and errors are there for older clients like @formspree/react and @formspree/ajax, which read them. Everything else follows RFC 9457.

Common causes

  • A placeholder ID is still in the form’s action. Something like https://formspree.io/f/YOUR_FORM_ID. Formspree issues the ID when you create the form, so you can’t make one up.
  • A typo in the ID, or the form was deleted.
  • The dashboard URL is in the action. https://formspree.io/forms/<id> is the form’s page in your dashboard. Submissions go to https://formspree.io/f/<id>.
  • An email address is in the action. Like https://formspree.io/you@example.com. These are legacy forms, and they can’t create new forms anymore.
  • A CLI project form that isn’t in formspree.json. If you submit to https://formspree.io/p/<project>/f/<key>, the form key has to be in the project’s formspree.json file.

We return the same 404 whether a form never existed or was deleted.

How to fix it

  1. Open your dashboard and find the form.
  2. Copy its endpoint, https://formspree.io/f/<id>. It’s at the top of the form’s Integration tab. See Getting your form’s “hashid” for where else to find it.
  3. Paste it into your form’s action attribute, or wherever your code submits to.

No form yet? Create one in the dashboard with + New Form. If an AI agent is building your site, it can create the form for you and send you a link to claim it. Point it at the create-form skill.

Using the CLI? Add the form to formspree.json, then deploy the project again with the Formspree CLI.

Still have questions? or .