Common Issues

Solutions to frequently encountered problems.


Wallet connection

"Failed to connect wallet"

  • Make sure your wallet extension (MetaMask, Phantom, etc.) is installed and unlocked

  • Try refreshing the page and connecting again

  • If using WalletConnect, check that you're scanning the QR code with a supported mobile wallet

  • Clear your browser cache and cookies, then try again

Stuck on "Signing message..."

Your wallet should show a signature request popup. If it doesn't appear:

  • Check if the popup was blocked by your browser

  • Open your wallet extension manually — the request may be queued

  • Reject the pending request in your wallet and try connecting again

Connected but dashboard shows "Unauthorized"

Your session may have expired (sessions last 7 days). Disconnect your wallet and reconnect to start a fresh session.


Creating forms

"You've reached the maximum number of forms"

You've hit the form limit for your plan:

Plan
Max forms

Free

5

Pro+

Unlimited

Upgrade your plan or delete unused forms to create new ones.

Questions aren't saving

  • Make sure you click out of the question field or press Enter to confirm changes

  • Check your browser console for network errors

  • If the issue persists, refresh the page — your form auto-saves, so recent changes should be preserved

AI form generation isn't working

  • Check that you haven't exceeded your monthly AI generation limit (Free: 3, Pro: 20, Team: 100)

  • Your generation count resets monthly. Check Settings for your current usage.

  • Try a simpler, more specific prompt if generation returns unexpected results


Form responses

"Response limit reached"

Monthly response limits depend on your plan:

Plan
Monthly responses

Free

100

Pro

1,000

Team

5,000

Business

Unlimited

The counter resets at the start of each billing period. Upgrade your plan if you need more capacity.

Duplicate responses aren't allowed

Each wallet address can submit one response per form. If someone submits again from the same wallet, their previous response is replaced with the new one. This is by design.

Anonymous respondents (no wallet connected) are identified by a browser-generated ID. Different devices produce separate responses, but the same browser resubmitting will update its existing response.

Responses not appearing in the table

  • Responses may take a few seconds to appear. Refresh the page.

  • Check that the form is published — unpublished forms can't receive submissions.

  • If using token gating, confirm the respondent meets the gate requirements.


Token gating

"You don't meet the requirements to fill this form"

The form has token gate rules. The respondent's wallet must hold the required tokens (ERC-20, ERC-721, or ERC-1155) on Ethereum mainnet. Check:

  • The wallet is connected (not viewing anonymously)

  • The correct wallet is connected (the one holding the required tokens)

  • Token balances are up to date on-chain (recently transferred tokens may take a block or two)

Gate check is slow

Token gate verification queries the Ethereum blockchain, which can take a few seconds depending on RPC response times. This is normal.


Google Sheets integration

"Connect Google account" button doesn't work

  • Ensure pop-ups are allowed for forms.wtf in your browser

  • The OAuth consent screen requires you to grant access to Google Sheets. If you denied access, go to your Google Account permissionsarrow-up-right and remove forms.wtf, then reconnect.

Responses aren't syncing to my sheet

  • Verify the integration is enabled for the specific form (Sheets tab in form settings)

  • Check that the spreadsheet ID and sheet name are correct

  • If you renamed or deleted the sheet tab in Google Sheets, update the sheet name in forms.wtf

  • Sheet sync runs in the background after submission. It may take a few seconds.

Column headers don't match my questions

Headers are automatically overwritten on every submission to stay in sync with your current form questions. If you've renamed or reordered questions, the headers update on the next submission.

Do not manually edit row 1 of the synced sheet — it will be overwritten.


Webhooks

Webhooks aren't firing

  • Check that the webhook is enabled (toggle in the Webhooks tab)

  • Verify your endpoint URL is correct and publicly accessible

  • Webhooks time out after 5 seconds. Make sure your server responds quickly.

  • Webhooks require a Team plan or higher

Signature verification fails

  • Ensure you're verifying against the raw JSON body string, not a parsed-and-re-serialized version

  • The signature is HMAC-SHA256(secret, body) as a hex string

  • Check that your secret matches what you entered in forms.wtf

  • See the Webhooks Referencearrow-up-right for verification examples


Billing & plans

Subscription not activating after payment

  • Stripe payments are confirmed via webhook. It usually takes a few seconds.

  • Try refreshing the dashboard. If your plan still shows as Free after a few minutes, contact support.

  • For crypto payments, the on-chain transaction must be confirmed before the plan activates.

How do I cancel my subscription?

Go to Settings → Billing → Manage Subscription. This opens the Stripe customer portal where you can cancel, change plans, or update payment methods.


Embedding

Embedded form shows a blank iframe

  • Make sure the form is published

  • Check that the embed URL uses /embed/[slug], not /f/[slug]

  • Some websites block iframes from external domains. Check your site's Content Security Policy (CSP) headers.

Embedded form looks cut off

The embed iframe needs sufficient height. Use a generous height value or set the iframe to height: 100vh within its container.

Last updated

Was this helpful?