# Troubleshooting

When the launcher does not appear, opens blank, or behaves differently on mobile.

Source: https://docs.omazy.ai/widget/troubleshooting/

Most widget problems are one of four things, and they are quick to tell apart.

## The launcher never appears

Work down this list in order. It is roughly ordered by how often each one is the
culprit.

1. **The script did not load.** Check the network tab for `widget.js`. A content
   security policy that omits `chat.omazy.ai` will block it silently, which is
   the most polite way software has ever ruined an afternoon.
2. **`init` was never called**, or was called without a key.
3. **The key is wrong or the widget is not published.** An unpublished widget
   is configured but not live.
4. **The launcher is hidden on this viewport.** Desktop-only launchers do not
   render below the mobile breakpoint. That is a setting, not a bug, though it
   has been mistaken for one many times.

## It opens blank

Almost always a configuration problem rather than a code one. A landing screen
with a malformed footer link block will render an empty card, and an empty card
looks exactly like a broken widget.

Check the widget's landing configuration in the console. If you changed the
landing links recently, change them back and reload before investigating
anything else.

## It looks fine on desktop and wrong on a phone

The panel becomes full-screen below the mobile breakpoint, by design. If your
page sets `overflow: hidden` on `body` while a menu is open, or traps focus, the
widget inherits that behaviour because it lives in your document.

## Events fire twice

You are probably listening for both `ouchat:` and `omazy:` prefixed events. They
are the same event dispatched under two names during migration. Pick the
`ouchat:` one.

## Getting help

Reproduce it with the console open and capture:

- the widget key,
- what `ouWidget('getState', console.log)` prints,
- any errors from `chat.omazy.ai`.

Those three turn a two-day thread into a two-message one.
