W Wiretalk Docs
Developer documentation

Troubleshooting

Fix common widget, iframe, and API integration issues.

Widget not showing

Chat bubble does not appear
  • Confirm snippet is before </body> and widgetKey is correct
  • Add your domain under Widget Settings → Allowed domains
  • Open browser DevTools → Console for errors
  • Ensure embed.js URL loads (check Network tab)
CORS or script load error

apiBase must match your Wiretalk server. Production: https://wiretalk.tech/api. CDN script: https://wiretalk.tech/build/assets/embed.js

Widget shows on localhost but not production

Add your production domain to allowed domains. Clear CDN/cache after deploy.

Agent embed / iframe issues

CSP: frame-ancestors blocked

Error: violates Content Security Policy directive "frame-ancestors 'self'"

  • Use URL https://wiretalk.tech/agent/embed — not homepage or /dashboard
  • Set WIRETALK_AGENT_EMBED_FRAME_ANCESTORS in .env
  • Run php artisan config:clear after deploy
CSRF / 419 on login inside iframe

Deploy latest code with CSRF exemptions for bearer-token API calls. Hard-refresh the iframe (Ctrl+Shift+R).

Real-time / messages not syncing

  • Socket server must be running: node socket-server/index.js
  • Check SOCKET_URL in Laravel .env
  • Ensure SOCKET_SECRET matches on Laravel and socket-server

Webhooks never sent

  • Run queue worker: php artisan queue:work
  • Set QUEUE_CONNECTION=database (or redis) in production
  • Endpoint must return HTTP 2xx within 30 seconds

API errors

CodeFix
401Invalid or missing API key / Bearer token
403API key missing required ability scope
422Validation error — check request body
429Rate limit — slow down requests

Still stuck?

Email support with: your widget key, domain URL, browser console screenshot, and steps to reproduce.