RawQuotes
API Reference
Embed the widget

Troubleshooting

Why the widget might not be showing, and how to tell.

Troubleshooting

The widget never shows an error on your page. If something is wrong, the visitor simply doesn't see it — there's no red text in the corner of the screen to notice. That's by design: a broken survey should never break your page. It also means you have to check for the causes below yourself rather than wait for the widget to tell you.

The widget doesn't show up at all

  • The snippet's survey identifier doesn't match a survey. Check that you copied the whole snippet from the Appearance tab without editing it — a hand-edited, partial or stale (deleted survey) identifier won't resolve to anything.
  • A network problem. The visitor's browser couldn't reach rawquotes at all — a connection drop, a blocked request, and so on.
  • An unexpected response from the server. The widget asked for the survey and got something back, but not a survey it could render.

All three cases look identical from the outside: the widget's script runs, asks for the survey, gets nothing usable back, and stops before drawing anything — including its floating launcher in floating mode. Nothing the visitor saw a moment ago disappears, because nothing was shown in the first place.

Your Content-Security-Policy blocks the widget's styling

The widget normally styles itself in a way that needs no relaxation of your page's CSP at all. It only falls back to a mechanism that requires style-src 'unsafe-inline' on browsers old enough to lack a newer styling API — practically, only outdated browsers by now. If your page's CSP is strict and you want the widget to render correctly on those older browsers too, add 'unsafe-inline' to your style-src directive. This is a real requirement for that fallback, not a workaround to avoid.

Your page's styles and the widget's styles don't affect each other

This is expected, not a bug. The widget renders inside its own isolated area of the page (a Shadow DOM), so your page's CSS can't accidentally restyle the widget, and the widget's own styles can't leak out and affect the rest of your page. Colors, shape and other visual settings are all controlled from the survey's Appearance tab instead of your page's stylesheet.

Inline mode: nothing renders where the container should be

In inline placement, the widget looks for its container element the moment its script runs. If that element isn't on the page yet at that point — for example because the snippet loads before the rest of the page's markup — the widget has nothing to attach to and gives up silently. Make sure the container element appears in your page's HTML before the widget's <script> tag, not after it.

Listening for what happened, if you're customizing the page yourself

If you or a developer working on your site want to react to widget events in your own code (for example, to hide a promotional banner once a visitor opens the survey), the widget exposes a small event queue:

<script>
  window.rawquotes = window.rawquotes || function () {
    (window.rawquotes.q = window.rawquotes.q || []).push(arguments)
  }
  window.rawquotes('on', 'render_error', function (detail) {
    console.log('widget did not render:', detail.reason)
  })
</script>

This is a developer-facing detail, not something most merchants need — it's mentioned here only because render_error's detail.reason (not_found, network or malformed) is the same distinction the sections above describe in plain language.

Copyright © 2026