Using WordPress? Every integration here is also available as a plugin. Browse the plugin store →

Knowledge base Web components Troubleshooting

Component error codes: why an embed is showing nothing

The configuration request answers every failure with a status and a code. Read it in the browser's network panel and the cause is named rather than guessed.

Published 12 August 2026

  • troubleshooting
  • error codes
  • 403
  • 402
  • 404
  • web components
  • blank

When a component renders nothing, the answer is in one request. Open the browser’s developer tools, go to the network panel, reload, and find the call to /api/config/ followed by your embed key. Its status and its code field name the cause.

The codes

StatusCode / messageWhat it meansWhat to do
404Component not foundThe embed key does not resolve. Either it is mistyped, or the instance was deleted.Re-copy the snippet from the dashboard.
404Component is disabledThe instance exists but is switched off.Reactivate it in the dashboard.
403(origin message)The page’s hostname is not in the instance’s allowed-domains list. A new instance denies everything until you name your sites.See Restricting a component to your own domains.
402LICENSE_EXPIREDThe trial ended.Subscribe.
402LICENSE_INACTIVEThe account has no active subscription.Check the subscription state on the account.
402COMPONENT_NOT_LICENSEDThe subscription is active but does not cover this component type.Add that component to the subscription.
402VIEW_LIMITThe account has used its views for the current billing cycle. The response reports the count and the cap.Wait for the cycle to roll, or move to a plan with a higher cap.
503CONNECTION_DISABLEDThe Microsoft 365 connection this instance reads through has been switched off.Re-enable the connection.
400WRONG_COMPONENT_TYPEA data route was called for a component type that does not serve it — usually a hand-edited URL or a mismatched script and element.Check that the script file and the element tag are for the same component.

Reading the order of the checks

They run in a fixed order, and knowing it saves a step: instance exists → instance active → connection enabled → licence → component entitlement → allowed domain → view cap. So a 403 means the licence was fine; a 402 for the view cap means the domain was fine. Whatever code you get, everything above it in that list already passed.

When there is no failing request at all

If there is no call to /api/config/ in the network panel, the component never booted. Check, in this order:

  1. The script loaded. A 404 on the bundle URL is a wrong or truncated src.
  2. The tag matches the script. bookings.js defines wpi-bookings only. A wpi-calendar element on a page that loaded bookings.js will sit there inert forever, with no error — an unrecognised custom element is not an error in HTML.
  3. The attribute is embed-key. Not key, not embedkey. With no key there is nothing to request.
  4. The markup survived your CMS. Some editors strip unknown elements or script tags on save. Look at the rendered page source, not at what you typed.

When it renders but looks wrong

Components mount into the page itself rather than into a shadow root, which is what lets their styling engine work at all — but it also means your site’s CSS reaches them. A component that renders with the right content and the wrong spacing, or with text the wrong size, is usually a broad rule on the host page such as a global * selector or a blanket style on div or button. Narrow the host rule rather than fighting it from inside.

Read next

  • Web components · Getting started

    Quick start: putting a web component on a page

    What the two lines of an embed actually are, what the browser does with them, and what has to be true before a component renders.

  • Web components · Embedding

    Ways to place a component on the page

    The custom element is the normal form. A plain div with a data attribute is the fallback for editors and page builders that strip unknown tags.

  • Web components · Configuration

    How the embed key works, and why it is not a secret

    The embed key names one configured component instance. It travels in your page source, so it is public by design — the protections sit on the server, not on the key.

Back to the knowledge base