Widget troubleshooting
Common issues and how to fix them. Start with the browser console — most problems leave an error message there.
Looking for crawl, chat-quality, or integration fixes? See the general troubleshooting guide. This page covers widget install and runtime issues only.
I don't see the chat bubble
First, confirm the script tag is actually present in your page source. Open DevTools → Elements and search for luluclaw.com/widget. If it's not there, the snippet wasn't saved or deployed yet.
If the tag is present, check the Console tab for errors. Common causes:
- Ad blockers or browser extensions — disable them temporarily to isolate the issue. uBlock Origin and Ghostery can block widget scripts.
- Content-Security-Policy (CSP) header — see the section below on CSP.
- Script blocked by HTTPS mismatch — the widget only loads on
https://pages. It will not initialise onhttp://. - Token revoked or expired — check the Widget tab in your dashboard. If the status is Revoked or Expired, generate a new install token.
Content-Security-Policy is blocking the script
If your server sends a Content-Security-Policy header with a script-src directive, you need to add luluclaw.com to the allowlist.
Content-Security-Policy: script-src 'self' https://luluclaw.com;If you also use a connect-src or frame-src directive, add https://luluclaw.com to those as well. The widget makes fetch requests back to luluclaw.com/api/ for each chat message.
Bubble appears but chat returns generic answers
The widget is loaded but your knowledge sources may not be indexed yet. Open the Sources tab in your dashboard (Integrations) and check the ingestion status of each source.
A source shows Pending or Indexing while content is being processed. Depending on the size of your site, this can take a few minutes. Once sources show Ready, the assistant will use them to answer questions.
If sources are Ready and answers are still generic, verify that your questions match the content you indexed. The assistant only has access to content that was successfully crawled and stored.
Bubble appears on staging but not production
Your widget token may have an Allowed domains restriction that includes staging but not your production domain.
Open the Widget tab in your dashboard and check the Allowed domains list. Add your production domain (e.g. example.com) to the list. Changes take effect immediately — no re-deploy needed.
If Allowed domains is empty, the widget loads on all domains. Domains are matched as substrings, so example.com also covers www.example.com.
Conversation context disappears between visits
By default, LuluDesk stores the visitor's conversation ID in localStorage under the key luludesk_session. This persists for 7 days. If the visitor clears their browser storage or uses a private/incognito window, the session ID is lost and a fresh conversation starts.
This is expected behaviour for anonymous visitors. If your use case requires persistent identity across devices or browsers, contact support — authenticated session continuity is on the roadmap.
You can adjust widget settings including session behaviour from the Widget settings tab in your dashboard.
Crawl-progress bar shows a 403 error
When you add a new knowledge source, LuluDesk opens a Server-Sent Events (SSE) stream to show you crawl progress in real time. If you see a 403 Forbidden error on that stream, the most common cause is an authorization mismatch: the SSE endpoint verifies that the requesting user owns the workspace, not that their user ID matches a stored value.
This was addressed in a platform update on 2026-05-16. If you are still seeing 403s on the crawl-progress feed, try the following:
- Sign out and sign back in to refresh your Clerk session token.
- Make sure you are viewing the workspace you own — the SSE stream is scoped to workspace ownership.
- If you were invited as a collaborator rather than the workspace owner, the live crawl feed is not available to your role yet.
AI Audit shows 'token limit exceeded' or produces truncated output
The AI Audit feature runs a large-language-model pass over your indexed content. If the audit produces unusually short output or logs a token-limit error, the workspace content may have exceeded the analysis window.
A platform update on 2026-05-15 increased the LLM token cap for audit runs to 4,000 tokens and added verbose logging for unparseable responses. If you ran an audit before that date, click the Re-run Audit button in the dashboard Audit tab to generate a fresh report against the updated limits.
If the issue persists after re-running, try reducing the number of active knowledge sources so the audit has fewer pages to summarise in a single pass.
How to uninstall the widget
Remove the <script src="https://luluclaw.com/widget/v1/..."> tag from your HTML and deploy. The widget will stop loading immediately. No changes are needed in the dashboard.
If you want to temporarily hide the widget without removing the script, you can revoke the token from the Widget tab in your dashboard. The script tag will remain harmless but the widget will not render.
