Skip to main content

Common Kiwi Errors & What They Mean (Known Errors Playbook)

Updated over a week ago

Kiwi is designed to work across many Shopify themes, but some errors can still happen depending on your theme, variant logic, or where the chart is being injected.

This guide helps you quickly identify what an error means, what to check next, and when it’s a workaround vs. a true theme/script conflict.


Error: InvalidCharacterError: Failed to execute 'atob' on 'Window'

What it usually means

This error happens when something is trying to decode a string that isn’t valid Base64, often due to:

  • a script conflict

  • malformed injected content

  • a theme/variant app re-rendering markup unexpectedly

What to check next

  • Does the error appear immediately on page load, or only after changing variants?

  • Are you injecting the chart inside a dynamic container (variant inputs/swatches)?

  • Are you using a variant app (Swatch King, etc.)?

Workarounds to try

  • Move the injection selector target to a stable element outside the variant container.

  • Ensure the Kiwi app block is enabled on the product template.


Error: Uncaught TypeError: Cannot read properties of null (reading '...)'

What it usually means

Kiwi (or your theme/variant app) is trying to interact with an element that no longer exists - usually because the theme re-rendered the variant section and replaced DOM nodes.

What to check next

  • Does it happen after selecting a variant?

  • Does the size chart:

    • disappear

    • duplicate

    • move after selection

Workarounds to try

  • Place the chart outside containers that re-render on variant change.

  • Avoid injecting into:

    • radio inputs

    • swatch containers

    • variant-generated markup

  • Use a selector that targets a stable wrapper (not variant inputs).


Error: Chart shows initially, then disappears after variant change (no obvious console error)

What it usually means

The theme or a variant app is replacing the section that contains your injected chart.

What to check next

  • Are you injecting inside the variant picker container?

  • Are you targeting a class used by multiple variant blocks (color + size)?

Workarounds to try

  • Update the selector to target a stable location outside the re-render area.

  • Use a pseudo-class (like :last-of-type) to target the correct block if there are multiple variants.


Error: Chart duplicates (two “Size Chart” links, or chart appears multiple times)

What it usually means

The theme is re-rendering a section and Kiwi injects again, so the previous injection remains and a new one is added.

What to check next

  • Does duplication happen after variant changes?

  • Are you injecting into a container that gets regenerated?

Workarounds to try

  • Change the selector to a container that does not get re-rendered.

  • Avoid injecting into:

    • the variant swatch block

    • add-to-cart form markup that reloads


Error: “Selector not found” / Chart not appearing when using an injection selector

What it usually means

Your selector doesn’t match anything on the page — or it matches a dynamic element that only exists sometimes.

What to check next

  • Confirm the selector matches the live theme HTML using DevTools.

  • Avoid using IDs that are dynamic per product/template.

Workarounds to try

  • Start with a stable class selector.

  • If there are multiple matches, add a pseudo-class:

    • :last-of-type

    • :nth-of-type(X)

  • Target a child element (like the label) inside the stable parent.


Error: Chart “jumps” or moves a second after page load

What it usually means

Your theme loads content in stages (or uses JS to rearrange blocks), so Kiwi injects, then the theme repositions elements.

Workarounds to try

  • Inject into a container that the theme does not rearrange after load.


Need help?

If you’re still running into issues, please review the steps above and collect your theme name + product URL + console error screenshot.

Then contact support — we’ll be happy to help you troubleshoot and recommend the best placement setup for your theme.

Did this answer your question?