Form Bridge docs
v1.0.0
Get help
● Reference

Troubleshooting
error codes and fixes.

Start with the form tool's webhook log (most tools show the status code Form Bridge answered) and with Form Bridge › Submissions. A request that is refused before it is stored (codes 401, 403, 404, 405, 413, 422, 429, 503) does not appear in the submission log.

HTTP status codesSignaturesCronMapping

01401: signature or secret header

The body says why: "The Typeform-Signature header is missing", "The signature does not match", "The request timestamp is outside the accepted window", "The X-Form-Bridge-Secret header does not match the shared secret" and so on.

  • The secret in the form tool and the one saved in Form Bridge must be exactly the same. When in doubt, generate a new one, save it in Form Bridge and paste it into the tool.
  • Webflow: webhooks added in the Webflow dashboard are not signed. Remove the signing secret in Form Bridge (Protection › Remove), or create the webhook through the Webflow API.
  • Framer: the request must carry both Framer-Signature and Framer-Webhook-Submission-Id.
  • Google Forms: SIGNING_SECRET in the Apps Script must hold the secret; "outside the accepted window" means the server clock is off by more than Signature age (Settings, default 300 seconds). Check your server's time.
  • Secret header: the header name in the tool must match the one shown under Protection (default X-Form-Bridge-Secret).
  • Something between the tool and Perfex (a proxy, a security plugin, a firewall) must not change the body or drop the headers.

02403 or 404: the link

  • 404 "Unknown webhook link." The link is wrong, incomplete, or was replaced with Create a new link. Create a new link and paste the whole link into the tool.
  • 403 "This connection is switched off." Open the connection and click Switch on.
  • 403 with the HTML page "The action you have requested is not allowed." The request did not reach the webhook address: Perfex's CSRF protection blocked it. The path must be exactly /form_bridge/hook/in/<id>-<secret> as shown on the connection.
  • 503 "Form Bridge is not active on this site." Activate the module in Setup › Modules.
  • 405 The tool sends GET. Set the request method to POST.

03413: payload too large

Raise Largest submission (KB) in Settings (default 512 KB). If the error persists, or you see an HTML error page instead of JSON, your web server or PHP (post_max_size) has a lower limit; ask your host. Forms that upload files should send links to the files rather than the files themselves.

04422: not a submission of this tool

The body did not have the tool's format, for example "Not a Typeform webhook" or "Only the Webflow "form_submission" trigger is supported". Check that the connection's Form tool matches the tool that sends, and that the tool sends the form event (not a test ping of another kind). For the Universal webhook, "The request has no form fields" means the body was empty or not JSON or form fields; "The body is not valid JSON" means the Content-Type says JSON but the body is broken.

05429: rate limit

More submissions arrived for this connection within one minute than Submissions per minute, per connection allows (default 60). The answer carries Retry-After: 60; most tools retry. Raise the limit in Settings if your form really receives that many, or look for a bot.

06Logged, but nothing in Perfex

  • Captured: the connection has no mapping yet. Map, then Save and replay.
  • Failed: read the reason on the submission page. Usual ones: no lead name (map Name, E-mail or Company), no lead status or source available, no ticket department, a ticket without an e-mail address, a customer without company, name or e-mail. Fix, then Save and replay.
  • In review: a possible duplicate waits in the review queue.
  • Spam: honeypot filled in or blocked e-mail domain. Replay it if it was a real person.
  • Updated: the submission belonged to an existing record, which got a note.
  • A custom field stays empty: for Select, Multi select and Checkbox the value must match one of the field's options; translate it with Replace values. A Number or Date field ignores values that are not a number or a date.

07Cron

If the dashboard says "The Perfex cron has not run for this module yet", or "Cron last ran" is old, automatic retries, the retention clean-up and automatic AI summaries do not happen. Set up the command from Perfex's Setup › Settings › Cron Job (see Cron). Webhooks keep working without it.

08Other questions

  • I lost the webhook link. It cannot be shown again. Click Create a new link and paste the new one into the tool.
  • No notification for the assigned person. Notifications are sent for new records only, when "Notify the assigned staff member in Perfex" is on and someone is assigned. The e-mail also needs a sender in Perfex's Setup › Settings › Email.
  • The AI helper says the key was rejected, the model is unknown or a limit is reached. Check the key and the exact model name in Settings › AI helper, or wait for the limit to reset.
  • "Chain broken at entry …" in the audit log. An audit row was edited or deleted directly in the database. Compare with your database backups.
  • Server errors. Form Bridge writes errors that start with [form_bridge] to the Perfex log in application/logs.