Developer documentation
Troubleshooting
Fix common widget, iframe, and API integration issues.
Widget not showing
Chat bubble does not appear
- Confirm snippet is before
</body>andwidgetKeyis correct - Add your domain under Widget Settings → Allowed domains
- Open browser DevTools → Console for errors
- Ensure
embed.jsURL 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_ANCESTORSin.env - Run
php artisan config:clearafter 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_URLin Laravel.env - Ensure
SOCKET_SECRETmatches 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
| Code | Fix |
|---|---|
401 | Invalid or missing API key / Bearer token |
403 | API key missing required ability scope |
422 | Validation error — check request body |
429 | Rate limit — slow down requests |
Still stuck?
Email support with: your widget key, domain URL, browser console screenshot, and steps to reproduce.