Skip to main content

Why Isn't My Chat Widget Appearing? Troubleshooting Guide

Troubleshoot a NoForm AI chat widget that is not appearing on your website: domain restrictions, subscription status, snippet and bot ID errors, caching, ad blockers, and mobile behavior.

Written by NoForm Team

You added the installation code to your website and the chat bubble is not there. Almost every case comes down to one of a handful of causes, and your browser’s developer tools will tell you which one in about two minutes.

Start here: the two-minute diagnostic

Run these checks before changing anything. They tell you whether the widget failed to load at all or loaded and then stopped at a configuration check.

  1. Open your website in a private or incognito browser window. Do not use the preview inside your NoForm AI dashboard, because that preview keeps working even when your live site is blocked.

  2. Wait at least three seconds after the page finishes loading. The widget pauses for 1.5 seconds after the page is ready before it draws the chat bubble.

  3. Press F12 to open developer tools, then open the Console tab and reload the page.

  4. Look for any message that starts with “NoForm.AI:”. The widget writes two specific warnings there, and each one points at a different cause.

  5. Open the Network tab, reload the page again, and type “chatbot” into the filter box. You should see the file script-chatbot.js load with a success status.

  6. Open the Elements tab and look at the very bottom of the page’s <body> section. The widget adds an <iframe> element there. If that element exists, the code loaded correctly and the problem is in your settings rather than your installation.

Use this table to match what you found to the section below:

What you see

Most likely cause

Console warning: “NoForm.AI: Domain … is not allowed to use this bot.”

Domain restriction mismatch

Console warning: “NoForm.AI: Chat bubble config is missing. This might mean that subscription is not active.”

Inactive subscription, message limit reached, or a wrong bot ID

script-chatbot.js is missing from the Network tab

The code is not on the page, is cached out, or is blocked by an extension

script-chatbot.js loads but no iframe element is added

The script tag was edited and the browser cannot read its settings

The bubble appears, but opening it shows a warning message instead of the chat

Domain restriction mismatch

The page domain does not match your allowed domain

If you set an allowed domain and the page address does not match it, the chat bubble still appears, but opening it shows the message “I can’t load on this domain. Please check the Installation tab in your NoForm.ai dashboard.” The console shows a matching warning naming the blocked domain.

To fix this, open your bot, go to the Installation page, and check the “Organization website domain” field in the Installation instructions panel:

The Organization website domain field on the Installation page, with the saved domain and its pencil edit icon highlighted
  • Enter the domain only, with no http:// or https:// prefix. The field rejects the prefix with the message “No need to include http:// or https:// just the domain name.”

  • Enter one domain per organization. A comma-separated list is rejected with “Only one domain is allowed per organization. Use subdomains if needed.”

  • Leave off the www. part. If you save www.example.com, the plain example.com version of your site is blocked. If you save example.com, then www.example.com, shop.example.com, and every other subdomain are allowed.

  • After saving you will see a confirmation reading “Domain saved successfully. The widget will only load on this domain and its subdomains.”

Two addresses always pass this check regardless of what you saved: localhost, so local development works, and noform.ai, so your dashboard and share page work. For the full picture of this setting, see the Domain Restrictions and Website Security article.

Your subscription is inactive or you reached your message limit

The widget asks NoForm AI for its settings (colors, messages, position) every time it loads. That request is refused unless your subscription is active or in its trial period, and the widget then stays invisible with no bubble at all. The console warning reads “NoForm.AI: Chat bubble config is missing. This might mean that subscription is not active.”

Two situations trigger this:

  • Your subscription expired, was canceled, or a payment failed.

  • You used all the messages included in your plan, including any fallback allowance. Your account is then marked as over its limits, which blocks the widget the same way an expired subscription does.

Check your plan and usage in your dashboard billing settings and renew or upgrade as needed. The Installation page gives you a second signal: when your subscription is not active, that page shows a checkout panel instead of the installation code. See the Plans, Message Limits, and What Happens When You Hit Them article for details on limits and renewals.

The script tag is missing, edited, or carries the wrong bot ID

The installation code is a single <script> tag, and the widget depends on parts of it staying exactly as copied. View your page source (right-click, then “View Page Source”) and search for chatbot-initials-script.

  • The tag must keep the ID chatbot-initials-script. The widget looks itself up by that ID to read its settings. If the ID is missing or changed, nothing loads.

  • The data-bot-id value must be your bot’s ID. A wrong or truncated ID produces the same “Chat bubble config is missing” console warning as an inactive subscription, because NoForm AI cannot find a bot with that ID.

  • The data-server-url value and the src address must stay as copied. Both point the widget at NoForm AI.

  • Keep the defer attribute. It lets your page finish rendering before the widget code runs.

Some website builders and content management systems rewrite or strip attributes from pasted script tags. Compare the tag in your live page source against the code on the Installation page character by character. If your platform changed it, use that platform’s dedicated code injection or custom HTML feature instead of a content editor, as described in the installation guide for your platform.

Include the snippet once per page. Each copy loads the widget again and adds another chat window on top of the first one.

Your site is serving a cached page without the snippet

Caching layers hold on to the version of your page that existed before you added the code. This affects your browser cache, your content delivery network (CDN), and caching plugins on platforms such as WordPress.

Clear your site’s cache, purge your CDN cache, and then reload your site in a private or incognito window, which ignores your local browser cache. If the widget appears in the private window but not the normal one, the remaining copy is in your browser cache and a hard refresh clears it.

An ad blocker or privacy extension is blocking the widget

Ad blockers such as uBlock Origin and AdBlock Plus, privacy extensions such as Privacy Badger and Ghostery, and script blockers such as NoScript can stop third-party widgets from loading. When one of them blocks the widget, script-chatbot.js never appears in the Network tab and the console shows no NoForm AI messages at all.

Test your site in a browser profile with no extensions, or turn your blocker off for your own domain, and reload. Your visitors who run these extensions may see the same behavior, which is normal for any chat widget.

A Content Security Policy on your site blocks the script or the chat frame

Some websites send a Content Security Policy (CSP), a security header that limits which outside sources a browser may load scripts and frames from. If your site uses one, it needs to allow NoForm AI’s script and the chat iframe, or the widget fails to load even though the installation code is correct.

Ask whoever manages your website’s CSP to allow the NoForm AI addresses referenced in your installation code, then reload your site and check the browser console for any remaining Content Security Policy violation messages naming a blocked NoForm AI address.

How the widget behaves on phones and tablets

The widget installs and appears on mobile the same way it does on desktop, using the same code. It switches to a mobile layout when it recognizes a mobile device from the browser’s own device information, and in that layout the chat opens full screen and page scrolling behind it is locked while the chat is open.

Two details change how you should test:

  • Making your desktop browser window narrow does not switch the widget to the mobile layout. Test on a real phone or use your browser’s device emulation mode, which also changes the reported device.

  • Tablets, including iPad, are treated as desktop devices and get the desktop layout.

If the bubble is missing on your phone but present on your desktop, the usual cause is caching or a mobile-specific version of your page that does not include the code. Check your source on the mobile page itself and clear any mobile cache your platform keeps.

Frequently Asked Questions

Why does the widget work in my dashboard preview but not on my website?

The preview inside your NoForm AI dashboard skips the subscription check, so it keeps working after a subscription expires or a message limit is reached. Always confirm a fix on your live website rather than in the preview.

The bubble appears but the chat area is empty. What does that mean?

That combination points to a domain restriction. When the page domain does not match your allowed domain, the widget loads and shows its bubble, then replaces the chat area with the message “I can’t load on this domain. Please check the Installation tab in your NoForm.ai dashboard.”

How long should I wait before deciding the widget is missing?

Give it about three seconds after the page finishes loading. The code waits for your page to finish rendering and then pauses another 1.5 seconds before showing the bubble, so a slow page pushes the bubble back further.

Can I make the widget appear immediately?

Your developer can add the await-before-init-seconds attribute to the script tag and set it to 0, which removes the 1.5 second pause. Everything else in the tag must stay unchanged.

Do I need to add the code to every page?

Add the code to every page where you want the chat bubble. Most sites add it once to a shared template or footer file so it applies site-wide, as described in the installation guide for your platform.

If the widget still does not appear

Contact NoForm AI support and include four things so the team can reproduce your case: the exact page address where the widget should appear, a screenshot of your browser Console tab, a screenshot of your Network tab filtered by “chatbot”, and the bot name or ID you installed. That set of details usually identifies the cause on the first reply.

Did this answer your question?