Skip to main content
Help CenterTroubleshooting & FAQ

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:

  1. Verify the embed code. The data-voiseback attribute must match your project's API key. Find your code in Dashboard → Integrate → Install Widget.
  2. Check the domain allow-list. If configured, your current domain must be listed. Look for CORS or 403 errors in the browser console.
  3. Verify active prompts. The widget only appears when an active prompt's trigger pattern matches the current URL.
  4. Check the browser console. Press F12 (or Cmd+Option+I on Mac) and look for JavaScript errors or network failures.
  5. Disable script blockers. Ad blockers or privacy extensions may prevent the widget from loading. Test in incognito with extensions disabled.
  6. 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-post if 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.
Trigger pattern examples
# 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 only

Webhook Not Firing

If you have configured a webhook but are not receiving data at your endpoint, check the following:

  1. 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.
  2. Check the webhook URL in settings. Go to Dashboard → Settings → Integrations and verify the URL is correct, including the protocol (https://).
  3. 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.
  4. 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.
  5. 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:

CodeMeaningWhat to Do
400Bad RequestCheck that all required fields are included and that audio files are in a supported format (WebM, MP4, WAV).
403ForbiddenVerify the domain is in your project's allow-list and that your subscription is active.
404Not FoundDouble-check your project API key in the embed code and verify that an active prompt's trigger pattern matches the current page URL.
429Too Many RequestsWait briefly and try again. If testing, add delays between requests to avoid hitting the rate limit.
500Server ErrorThis 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 defer attribute, 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.