Fix Astro 7 Rollup Failed to Resolve Import satteri

A terminal window showing the real Vite/Rollup warning: Rollup failed to resolve import satteri from the @astrojs/mdx dist folder, most likely unintended because it can break your application at runtime
On this page

Why the Rollup error happens

Astro 7 replaced its Markdown pipeline with Sätteri, a new Rust processor. A project can still opt out and keep the older @astrojs/markdown-remark unified pipeline instead, by setting markdown.processor to unified(). That choice is what triggers this bug.

Calling getContainerRenderer(), the function integrations use to render content outside the normal page build (an RSS feed script is the most common case), makes @astrojs/mdx eagerly import its Sätteri module path from its package root. It does this even when the project’s markdown.processor is still set to the legacy unified pipeline. Rollup then tries to bundle satteri as an optional peer dependency, and fails, because that package is only installed when Sätteri is the active processor. Issue #16954, opened 2026-06-02 against an Astro 7 beta, documents the exact warning.

A warning, not always a hard crash

Vite reports this as a build warning, not a failure that stops the build outright. The issue’s own title calls it out directly: it “can break your application at runtime” rather than at build time, which makes it easy to miss until the affected code path actually runs.

Is this still a problem on Astro 7 today?

No. PR #17093 fixed this issue, along with the related #17068, on 2026-06-17, five days before Astro 7.0.0 went stable on 2026-06-22. The fix shipped in @astrojs/mdx@7.0.0.

The fix moves getContainerRenderer() out of each integration’s package root and into a dedicated /container-renderer entrypoint. Importing from the old root path still works, but now only logs a deprecation warning instead of trying to eagerly resolve satteri.

scripts/render-feed.mjs - before
// BROKEN on @astrojs/mdx versions before 7.0.0, eagerly resolves
// the satteri module even when markdown.processor stays on unified()
import { getContainerRenderer } from "@astrojs/mdx";
scripts/render-feed.mjs - after
// FIXED, imports from the dedicated entrypoint added in PR #17093,
// available on @astrojs/mdx 7.0.0 and later
import { getContainerRenderer } from "@astrojs/mdx/container-renderer";

The first block still runs on a patched @astrojs/mdx, it just prints a deprecation notice. The second block is the version Astro’s own upgrade guide recommends going forward.

Confirmed version range

This site runs @astrojs/mdx@^7.0.3, already past the fix, and its own RSS feed (src/lib/rss.ts) never renders post bodies at all. It only serializes each post’s frontmatter description into the feed XML, so it never calls getContainerRenderer() and was never exposed to this bug in the first place.

If your project only hit this during Astro 7’s beta cycle, in the window between Sätteri becoming the default processor and 2026-06-17, a plain dependency bump to @astrojs/mdx@^7.0.3 (or any current 7.x release) removes it. There’s nothing left to configure once the version is current.

The same PR also fixed a related error, MISSING_EXPORT “satteriCollectImagesPlugin”, a hard build failure rather than a warning. Read more fixes for this same upgrade in the Guides & Fixes archive.

Frequently asked

Do I need to change anything in my own code to fix this?

No, not if you're already on @astrojs/mdx 7.0.0 or later. The crash itself was fixed inside the package. Switching your own getContainerRenderer import to the new /container-renderer path only removes a separate deprecation warning, it isn't required to stop the Rollup error.

Does this happen during a normal astro build or astro dev?

No. It only happens in code that calls getContainerRenderer() directly, such as a custom script that renders MDX content into an RSS feed or a preview email. A default astro build or astro dev never calls that function, so most projects never hit this at all.

Emitted as FAQPage JSON-LD from the same frontmatter — one source, no duplicated prose.

Recent posts

Full-text search via Pagefind · ↑↓ to navigate · ↵ to open