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.
You've hit the form limit for your plan:
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
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
"Response limit reached"
Monthly response limits depend on your plan:
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.
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
Ensure pop-ups are allowed for forms.wtf in your browser
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 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
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.
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.
The embed iframe needs sufficient height. Use a generous height value or set the iframe to height: 100vh within its container.