withastro / astro · Issue No. 18054
Astro v7.2.9
Vite v8.2.2
Node v24.19.0
System Linux (x64)
Package Manager npm
Output static
Adapter none
Integrations none
Not browser-specific; this occurs during astro build.
When a Markdown plugin throws during the glob() loader's eager rendering, Astro logs the error but continues building and exits with code 0. This lets CI treat incomplete output as a successful build.
I encountered this while validating image references. The reduced reproduction uses @astrojs/markdown-satteri@0.3.8 and satteri@0.10.5 with a plugin that deliberately throws on any image:
defineMdastPlugin({
name: "missing-image-repro",
image(node) {
throw new Error("Cannot resolve image: " + node.url);
},
})
The collection uses glob({ pattern: "**/*.md", base: "./src/content" }). A note contains , and the index page retrieves that entry and renders .
[ERROR] [glob-loader] Error rendering test.md: Cannot resolve image: /missing.png
[content] Synced content
...
[build] 1 page(s) built
[build] Complete!
Verified results:
A Markdown rendering error should make astro build exit with a nonzero status, so CI can prevent deployment of incomplete output. Whether rendering is eager or deferred should not determine whether the build reports failure.
https://github.com/OlaoluwaM/digitalgarden-blog/tree/astro-rewrite
Relay reads this issue against the repository's contribution signals: the files it is likely to touch, how the maintainers triage work this size, and what the first contribution would exercise.
The full analysis for this issue is still being assembled. Until then, the description above and the thread on GitHub are the most reliable context.