Troubleshooting & FAQ
Quick fixes for the most common issues with widget display, audio recording, AI processing, and billing.
This page covers the most common issues users encounter with Voiseback and how to resolve them. If your problem is not listed here, reach out to our support team using the contact information at the bottom of this page.
Widget Not Appearing
If the feedback widget is not showing up on your website, check these items:
- Verify the embed code. The
data-voisebackattribute must match your project's API key. Find your code in Dashboard → Integrate → Install Widget. - Check the domain allow-list. If configured, your current domain must be listed. Look for CORS or 403 errors in the browser console.
- Verify active prompts. The widget only appears when an active prompt's trigger pattern matches the current URL.
- Check the browser console. Press
F12(orCmd+Option+Ion Mac) and look for JavaScript errors or network failures. - Disable script blockers. Ad blockers or privacy extensions may prevent the widget from loading. Test in incognito with extensions disabled.
- Check "Custom Trigger Only" setting. If this is enabled on a prompt, the floating button is intentionally hidden. The widget will only open via your custom trigger buttons or JavaScript API. You can disable this in Dashboard → Prompts by toggling off "Custom Trigger Only".
Audio Recording Not Working
Voice recording requires specific browser capabilities. If users cannot record audio, check these common causes:
- HTTPS is required. Browsers only allow microphone access on secure (HTTPS) pages. If your site is served over HTTP, audio recording will be blocked entirely. This is a browser security requirement, not a Voiseback limitation.
- Microphone permissions. The browser must have permission to access the microphone. When a user clicks record for the first time, the browser shows a permission prompt. If they deny it, recording will not work until they manually re-enable microphone access in browser settings.
- Browser compatibility. The widget uses the MediaRecorder API, which is supported in all modern browsers (Chrome, Firefox, Safari 14.1+, Edge). Older browsers may not support voice recording, in which case users can still submit text feedback.
- No microphone detected. If the device has no microphone (some desktops without built-in audio input), recording will fail. The widget gracefully falls back to text input in this scenario.
Note
Users who cannot record audio can always submit text feedback instead. The widget provides both options, and text submissions go through the same AI analysis pipeline.
Transcript Missing
If a voice recording was saved but the transcript is empty, the most likely cause is that your AI usage limit has been reached.
- Check your AI usage. Go to Dashboard → Settings and look at the AI Usage section. If you have used all your credits for the current billing period, transcription is paused until the counter resets at your next renewal.
- Feedback is still saved. Even when the AI limit is reached, audio files are uploaded and stored. You will not lose any recordings — they simply will not have transcripts, sentiment, or category data until the limit resets.
- Look for the AI processing indicator. Each reply in your dashboard shows whether AI processing was applied. If AI was not applied, the reply was saved without processing due to the usage limit.
AI credits reset automatically
Your AI usage counter resets at the start of each billing period, giving you a a fresh set of AI credits. There is no way to manually reset the counter or purchase additional credits mid-cycle. Plan your high-traffic feedback campaigns around your billing cycle.
Widget Showing on Wrong Pages
If the widget appears on pages where you do not want it, the issue is almost always in your trigger patterns.
- Review your trigger patterns. Go to Dashboard → Prompts and check the trigger pattern for each active prompt. A wildcard pattern like
*will match every page on your site. - Use specific patterns. Replace broad patterns with targeted ones. For example, change
/blog/*to/blog/my-specific-postif you only want the prompt on one page. - Check for overlapping prompts. If multiple active prompts have patterns that match the same page, the widget may show unexpectedly. Deactivate prompts you are not using.
# Common trigger pattern mistakes
* — Matches EVERY page (probably too broad)
/blog/* — Matches all blog posts (may be intentional)
/blog — Matches only /blog exactly (not sub-pages)
# Recommended specific patterns
/blog/launch-announcement — One specific blog post
/pricing — Pricing page only
/checkout/success — Post-purchase page onlyWebhook Not Firing
If you have configured a webhook but are not receiving data at your endpoint, check the following:
- Verify the URL is publicly accessible. Your webhook endpoint must be reachable from the internet. Local development URLs (like
localhost:3000) will not work unless you are using a tunneling service like ngrok. - Check the webhook URL in settings. Go to Dashboard → Settings → Integrations and verify the URL is correct, including the protocol (
https://). - Ensure your endpoint returns a 2xx status. Voiseback expects a successful HTTP response from your endpoint. If your server returns a 4xx or 5xx error, the webhook delivery is considered failed.
- Check signature verification. If you are verifying HMAC-SHA256 signatures on your end, ensure your verification logic matches the format described in the webhooks documentation.
- Review your server logs. Check your receiving server's logs for incoming requests. If you see requests arriving but being rejected, the issue is likely in your verification or processing logic.
For detailed webhook setup instructions and payload format, see Webhooks & Integrations.
Common Error Codes
When interacting with the Voiseback widget, the server responds with standard HTTP status codes. Here are the ones you are most likely to encounter and how to resolve them:
| Code | Meaning | What to Do |
|---|---|---|
400 | Bad Request | Check that all required fields are included and that audio files are in a supported format (WebM, MP4, WAV). |
403 | Forbidden | Verify the domain is in your project's allow-list and that your subscription is active. |
404 | Not Found | Double-check your project API key in the embed code and verify that an active prompt's trigger pattern matches the current page URL. |
429 | Too Many Requests | Wait briefly and try again. If testing, add delays between requests to avoid hitting the rate limit. |
500 | Server Error | This is a temporary issue on our end. Retry the request after a brief delay. Your feedback data is still saved when possible. |
Feedback is always saved when possible
Voiseback is designed to save feedback data even when AI processing fails. If an error occurs during AI transcription or analysis, the raw audio or text is still saved to your project.
Rate Limits
Rate limits are applied per IP address and are generous enough that normal website traffic will never encounter them. A real visitor browsing your site and submitting feedback will not be affected. The widget handles rate-limit responses gracefully, showing a friendly message if a submission is temporarily limited.
You do not need to implement any special rate-limiting logic on your end. The widget manages this automatically.
If you are seeing rate-limit errors during development, here are the most common causes:
- Rapid testing — submitting many test entries in quick succession. Wait a moment between submissions.
- Automated scripts — running automated tests against the widget endpoints. Add delays between requests.
- Shared IP — multiple people on the same network (e.g., a corporate office) testing simultaneously, causing combined requests to hit the limit.
Subscription Issues
Subscription problems usually fall into one of these categories:
Payment Is Pending
After completing checkout, it can take a few moments for the payment confirmation to arrive via webhook. If you see a "payment pending" screen after checkout, wait a moment and refresh the page. If the issue persists beyond a few minutes, your payment may not have been processed successfully.
Checkout Not Completing
If you are redirected back to Voiseback after checkout but your subscription is not active, try the following:
- Clear your browser cache and cookies, then log in again.
- Check that your payment method has sufficient funds.
- Try using a different browser or device.
- If the problem continues, contact support with your account email.
Subscription Showing as Expired
If your subscription shows as expired but you believe it should be active, verify that your payment method is current. Failed renewal payments cause the subscription to lapse. You can re-subscribe from the settings page.
Note
A valid subscription is required to access the dashboard and manage your projects. If your subscription has expired, you can still view your existing data in read-only mode.
Email Verification
Email verification is required before you can access the Voiseback dashboard. If you are stuck at the verification step:
- Check your spam or junk folder. Verification emails sometimes get filtered. Search for emails from Voiseback in your spam folder.
- Resend the verification email. You can request a new verification email from the login page. Make sure you are using the same email address you signed up with.
- Check for typos. If you entered the wrong email address during signup, you will need to create a new account with the correct email.
- Try Google OAuth instead. If email verification is causing persistent issues, signing in with Google OAuth bypasses the email verification step entirely.
Performance Concerns
The Voiseback widget is designed to have minimal impact on your website's performance:
- Async loading. The widget script loads asynchronously with the
deferattribute, meaning it does not block your page from rendering. Your page content loads first, and the widget initializes after. - Lightweight script. The widget JavaScript bundle is small and optimized. It does not include heavy frameworks or unnecessary dependencies.
- No impact on Core Web Vitals. Because the widget loads after the main page content, it does not affect Largest Contentful Paint (LCP), First Input Delay (FID), or Cumulative Layout Shift (CLS).
- Lazy resource loading. Audio recording capabilities and the feedback panel are only loaded when the user interacts with the widget button, not on page load.
Tip
If you are running performance audits with Lighthouse or PageSpeed Insights, the widget script should not appear as a performance bottleneck. If it does, check that the defer attribute is present on the script tag.
Still Need Help?
If you have worked through the troubleshooting steps above and are still experiencing issues, we are here to help.
- Email support: Reach out to us at contact@voiseback.com with a description of the issue, your account email, and any relevant screenshots or browser console errors.
- Include details. The more context you provide, the faster we can help. Mention your browser, operating system, the page URL where the issue occurs, and any steps to reproduce the problem.
We will get back to you as soon as possible.