npm / @astrojs/node
@astrojs/node
What changed in @astrojs/node 9 to 11, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-24.
9 breaking11 security2 behavior and defaults19 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli init@astrojs/node 1115 changes
Breaking changes 1
The adapter waits for the configured log destination through Astro’s app.getLogger() API. Requires Astro 7.2.1 or later.
Security 4
The Node adapter validates the Host header against security.allowedDomains.
Astro: Malformed port in the Host header can crash the Node adapter
Astro: Unauthenticated path override in the @astrojs/vercel ISR function
@astrojs/node: Backslash-prefixed paths not recognized as internal by trailing-slash redirect
Behavior and default changes 1
When session: false is set in astro.config, the adapter no longer auto-wires the filesystem session driver, allowing the session runtime to be tree-shaken from the server bundle.
Fixes and other changes 9
Fixes the standalone server not logging “Server listening on …” when HOST is an IP address on Node.js 26.12 and later.
Fixes standalone mode silently exiting with code 0 when EADDRINUSE occurs.
Prevents aborted request bodies from causing duplicate unhandled rejection logs in standalone mode.
Preserves query strings containing a second
?character during trailing-slash redirects.Unknown parameters that match a prerendered dynamic endpoint now return a 404 instead of a 500.
Fixes an EventEmitter memory leak when serving static pages over keep-alive connections with staticHeaders enabled and CSP active.
Fixes routing when a prerendered dynamic route sorts before an on-demand fallback.
Corrects the dependencies listed in the package’s peerDependencies field.
Astro files with non-ASCII characters in their names are now correctly served after the build.
@astrojs/node 1018 changes
Breaking changes 5
The adapter now depends on Astro 6.3.0, affecting which Astro versions it can be used with.
The Astro peer dependency is updated to 6.0.0, affecting which Astro versions are compatible with @astrojs/node.
Removes this adapter option for fetching a prerendered error page from another host; implement a secure alternative with middleware.
Stabilizes the adapter feature and replaces the experimentalStaticHeaders flag with staticHeaders.
Trusts X-Forwarded-Proto only when allowedDomains is configured.
Security 5
Conditional request failures now return the correct status code without far-future cache directives.
Astro: Unauthenticated Path Override via
x-astro-path/x_astro_pathSets the maximum allowed request body size for the Node.js standalone server in bytes; the default is 1 GB, and 0 disables the limit.
Passes the actual server listening port to createRequest so the constructed URL origin includes the correct port.
Normalizes paths before evaluating dotfile access rules and ensures resolved static file paths stay within the client directory.
Fixes and other changes 8
The logger destination is now used for the “Server listening on...” startup message.
In standalone mode, the Node adapter now resolves clean URLs to prerendered .html files when using build.format: 'file' or 'preserve'.
Read streams are now destroyed on client disconnect or read errors, fixing file descriptor leaks.
When the expected server directory segment is not found in the file path, resolveClientDir() now throws a descriptive error instead of hanging indefinitely.
The middleware handler cleans up socket listeners before calling next() for requests passed on to Express or Fastify, preventing an EventEmitter memory leak warning.
Fixes an issue where the adapter caused a series of warnings during the build.
Fixes the Node.js adapter failing to serve a 404 page matching a pre-rendered dynamic route pattern.
Fixes static headers not being correctly applied when the website uses base.
@astrojs/node 98 changes
Breaking changes 3
@astrojs/node now requires Astro 5.17.3 or later.
A default body size limit is added for server actions to prevent oversized requests from exhausting memory.
The adapter was updated for Astro 5 hybrid rendering; projects using this release need to use Astro 5.
Security 2
Astro has Full-Read SSRF in error rendering via Host: header injection
Astro is vulnerable to SSRF due to missing allowlist enforcement in remote image inferSize
Behavior and default changes 1
Error pages are now loaded from disk first, falling back to the configured host.
Fixes and other changes 2
Fixes prerendered pages that were not correctly rendered when using the Node.js adapter in middleware mode.
Fixes an image 500 error when moving the dist directory in standalone Node.