See all services Shopify Plus Partner
API Developer

Request a Bundle Size Exception for Oversized UI Extensions

UI extensions on API version 2025-10 and later are capped at 64 KB of compressed JavaScript, or 128 KB for full-page customer account extensions. Shopify now reviews exception requests, and every extension must reach 2026-01 by October 1, 2026.

Executive summary

What changed

The 64 KB compressed JavaScript cap per extension has applied since API version 2025-10, with 128 KB for full-page customer account extensions. What is new is the escape hatch. Run shopify app build, then submit the minified bundle together with its esbuild metafile through Shopify's bundle size exception form. Shopify reviews the contents and may grant an increase where the remaining weight is genuinely unavoidable.

The denial criteria are stated plainly and are worth reading as a checklist before you apply. Requests are refused for avoidable weight: heavy libraries, duplicate dependencies, and translations bundled into the extension instead of served through the native localization APIs.

Separately, and more urgently, extensions must be on 2026-01 or later to stay deployable after October 1, 2026. That is a deadline with consequences, not a soft deprecation notice.

Why it matters

The bundle is downloaded, parsed, and executed on the shopper's device before your extension renders anything. At checkout in particular, that cost lands at the most conversion-sensitive moment in the session, which is why the limit exists and why an exception should be a last resort rather than a shortcut.

For Plus merchants, the real exposure is usually in bespoke work. Agency-built and in-house checkout extensibility projects accumulate dependencies over time, and nobody re-measures until a deploy fails. The October date turns that latent debt into scheduled risk, because an extension that cannot deploy also cannot be patched.

Role-specific impact

Use-case example

Real-world scenario

A Plus merchant runs a checkout UI extension for delivery date selection, built two years ago on React with a date library and eight locales of copy compiled in. First measurement put it at 91 KB compressed, well past the cap. Swapping React for Preact on the Remote DOM runtime, replacing the date library with per-function imports, and moving translations onto the native localization APIs brought it to 38 KB. No exception request was needed, and measuring in September rather than late in the year avoided a deadline scramble.

Implementation checklist

  1. Inventory every UI extension you own and record its current API version.
  2. Upgrade anything below 2026-01 well ahead of the October 1, 2026 deployability cutoff.
  3. Move to Shopify CLI 3.92.0 or later so that shopify app build emits the esbuild metafile.
  4. Run the build and load each .metafile.json into the esbuild bundle analyzer to rank contributors.
  5. Replace heavy dependencies with lighter equivalents, and import only the functions you actually use.
  6. Move translations out of the bundle and onto the native localization APIs.
  7. Re-measure after each change, and only if you remain over the limit, submit the minified bundle and metafile through the exception form.

FAQ

Q: Will an exception be granted if we simply cannot get under 64 KB?

A: Only if the remaining weight is unavoidable. Shopify says it will deny requests where the size comes from heavy libraries, duplicated dependencies, or bundled translations, so optimization is a prerequisite rather than an alternative.

Q: What happens to an extension left below 2026-01 after October 1, 2026?

A: The app can no longer be deployed. That blocks fixes and updates across every extension in the app, not just the outdated one, which is why this belongs on a roadmap now.

Resources

Optimize bundle size for UI extensions

Need guidance? Talk to Makro.