Troubleshooting
Common embed and API failures — and how to unblock them fast.
Widget does not appear
- Confirm
widget.js200 in Network tab - Check
data-project/Feedback.initproject key - Look for
[OpenRoadmap]warnings in the console - Ensure the script is not blocked by an ad blocker / CSP
Submit returns 403
Domain allowlist rejected the host. Add your site hostname to the project allowlist (localhost ports for local demo).
CORS errors from dashboard / portal
Add the frontend origin to Worker ALLOWED_ORIGINS. Rebuild/redeploy the Worker after changing vars.
UI panel never opens
widget-ui.jsmust be reachable (same CDN or__OPENROADMAP_UI_URL__)- Check for mixed content (HTTPS page loading HTTP assets)
Emails missing
Without RESEND_API_KEY, mail is mocked — inspect /emails in the dashboard (outbox API). With Queues bound, confirm the consumer is deployed on the same Worker.
Memory store reset
Warning
Local / demo mode uses an in-process MemoryStore. Restarting wrangler dev clears inbox data. Production will use Supabase (migrations in packages/database).