Troubleshooting

403 Forbidden: Origin Not Allowed

Cause: The domain your form is on doesn't match any domain configured for the site.

Fix:

  1. Go to your site's settings in the Dashboard
  2. Check the list of domains — make sure your domain is there
  3. Add both example.com and www.example.com if your site uses both
  4. For local development, add localhost

The Origin header sent by the browser must match exactly. AirForm compares the hostname only (no port, no protocol).

CORS Errors in the Browser Console

Cause: Same as above — the browser blocks the response when AirForm doesn't return an Access-Control-Allow-Origin header for your domain.

Fix: Add your domain to the site's domain list. CORS headers are only sent for configured domains.

Submissions Not Appearing in Airtable

Check these in order:

  1. Column names match — the name attributes in your form must exactly match the column names in Airtable (case-sensitive)
  2. PAT has correct permissions — your Personal Access Token needs data.records:write scope and access to the specific base
  3. Base ID is correct — it should start with app (e.g., appABC123def456)
  4. Table name is correct — must match exactly, including spaces and capitalization

429 Too Many Requests

Cause: You've exceeded the rate limit for the submission endpoint.

Fix: Wait a minute and retry. If you're testing, slow down your requests. Rate limits are per IP address.

Redirect Not Working

Cause: No redirect URL configured, or the form is submitting via JavaScript with Accept: application/json.

Fix:

  • Set a redirect URL in your site settings
  • For HTML forms (no JS), make sure you're not setting the Accept header
  • For JS submissions, don't set Accept: application/json if you want redirect behavior

Form Data Shows as Empty in Airtable

Cause: Form fields don't have name attributes, or the content type is wrong.

Fix:

  • Every <input>, <textarea>, and <select> needs a name attribute
  • For HTML forms, the default content type (application/x-www-form-urlencoded) works automatically
  • For JavaScript, set Content-Type: application/json and send a JSON body