# NestJS changelog > A progressive Node.js framework for server-side applications. - Vendor: NestJS - Category: Frameworks & Libraries - License: MIT - Language: TypeScript - Official site: https://nestjs.com - Tracked by: What's New (https://whatsnew.fyi/product/nestjs) - Harvested from: GitHub (nestjs/nest) - Entries below: 25 (newest first) What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: release facts (products, versions, dates, links, CVE ids and flags) are open data under CC BY 4.0, from the API at https://whatsnew.fyi/api/v1 or the nightly dataset at https://github.com/whatsnew-fyi/dataset. The summaries, labels and curation are © What's New: quote freely with attribution and a link back; wholesale republication of them is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. ## Releases ### v12.1.3 - Date: 2026-10-12 - Version: v12.1.3 - Original notes: https://github.com/nestjs/nest/releases/tag/v12.1.3 - Permalink: https://whatsnew.fyi/product/nestjs/releases/v12.1.3 - **fixed** — Flush buffered logs when application initialization fails - **fixed** — Run transient global enhancers on controllers - **fixed** — Guard async request hook completion in the Express platform - **fixed** — Destroy the StreamableFile source when the client disconnects - **fixed** — Run wildcard middleware on the bare global prefix path in Express - **fixed** — Fail at startup for request-scoped class global enhancers - **fixed** — Stop silently dropping request-scoped global enhancers - **fixed** — Resolve URI versioned exclusions for the not-found handler - **fixed** — Normalize slashes when mapping controllers for middleware - **fixed** — Do not mutate the message when assigning an SSE event id - **fixed** — End SSE streams whose event data cannot be serialized - **fixed** — Send status and headers set by handlers on SSE responses - **fixed** — Honor a shutdown signal received while close() is in flight - **fixed** — Settle SSE lifecycle on early disconnect - **fixed** — Commit SSE headers for empty streams - **fixed** — Preserve explicit null values in reflectable decorators - **fixed** — Run the shutdown sequence after a failed initialization - **fixed** — Send the expires header on SSE responses - **fixed** — Honor global prefix exclusions for overlapping versions - **fixed** — Let a GET middleware exclusion cover HEAD requests ##### v12.1.3 (2026-10-12) ###### Bug fixes * `core`, `microservices` * [#18111](https://github.com/nestjs/nest/pull/18111) fix(core,microservices): flush buffered logs when initialization fails ([@thekhegay](https://github.com/thekhegay)) * [#17993](https://github.com/nestjs/nest/pull/17993) fix(core,microservices): run transient global enhancers on controllers ([@johnnyhuirilef](https://github.com/johnnyhuirilef)) * `platform-express` * [#18110](https://github.com/nestjs/nest/pull/18110) fix(express): guard async request hook completion ([@GiHoon1123](https://github.com/GiHoon1123)) * [#17973](https://github.com/nestjs/nest/pull/17973) fix(express): destroy the `StreamableFile` source on client disconnect ([@maxymlyskov](https://github.com/maxymlyskov)) * [#17942](https://github.com/nestjs/nest/pull/17942) fix(express): run wildcard middleware on the bare global prefix path ([@Chaoqi31](https://github.com/Chaoqi31)) * `core` * [#18104](https://github.com/nestjs/nest/pull/18104) fix(core): fail at startup for request-scoped class global enhancers ([@thekhegay](https://github.com/thekhegay)) * [#18066](https://github.com/nestjs/nest/pull/18066) fix(core): stop silently dropping request-scoped global enhancers ([@OmBhandwaldar](https://github.com/OmBhandwaldar)) * [#18072](https://github.com/nestjs/nest/pull/18072) fix(core): resolve uri versioned exclusions for the not-found handler ([@basteez](https://github.com/basteez)) * [#18075](https://github.com/nestjs/nest/pull/18075) fix(core): normalize slashes when mapping controllers for middleware ([@basteez](https://github.com/basteez)) * [#18086](https://github.com/nestjs/nest/pull/18086) fix(core): do not mutate the message when assigning an sse event id ([@Metehan-Bicer](https://github.com/Metehan-Bicer)) * [#18025](https://github.com/nestjs/nest/pull/18025) fix(core): end sse streams whose event data cannot be serialized ([@OmBhandwaldar](https://github.com/OmBhandwaldar)) * [#18011](https://github.com/nestjs/nest/pull/18011) fix(core): send status and headers set by handlers on sse responses ([@johnnyhuirilef](https://github.com/johnnyhuirilef)) * [#18021](https://github.com/nestjs/nest/pull/18021) fix(core): honor a shutdown signal received while close() is in flight ([@maxymlyskov](https://github.com/maxymlyskov)) * [#17987](https://github.com/nestjs/nest/pull/17987) fix(core): settle SSE lifecycle on early disconnect ([@jackie-cqz](https://github.com/jackie-cqz)) * [#17986](https://github.com/nestjs/nest/pull/17986) fix(core): commit SSE headers for empty streams ([@jackie-cqz](https://github.com/jackie-cqz)) * [#17978](https://github.com/nestjs/nest/pull/17978) fix(core): preserve explicit null values in reflectable decorators ([@gophersg](https://github.com/gophersg)) * [#17966](https://github.com/nestjs/nest/pull/17966) fix(core): run the shutdown sequence after a failed init ([@kamilmysliwiec](https://github.com/kamilmysliwiec)) * [#17963](https://github.com/nestjs/nest/pull/17963) fix(core): send the expires header on sse responses ([@Mohamed-Elshesheny](https://github.com/Mohamed-Elshesheny)) * [#17953](https://github.com/nestjs/nest/pull/17953) fix(core): honor global prefix exclusions for overlapping versions ([@Chaoqi31](https://github.com/Chaoqi31)) * [#17950](https://github.com/nestjs/nest/pull/17950) fix(core): let a `GET` middleware exclusion cover `HEAD` requests ([@Chaoqi31](https://github.com/Chaoqi31)) * [#17951](https://github.com/nestjs/nest/pull/17951) fix(core): reset the listening state when the application closes ([@Chaoqi31](https://github.com/Chaoqi31)) * [#17945](https://github.com/nestjs/nest/pull/17945) fix(core): hash `Map`, `Set` and `RegExp` options in deep-hash tokens ([@Chaoqi31](https://github.com/Chaoqi31)) * [#17947](https://github.com/nestjs/nest/pull/17947) fix(core): treat `VERSION_NEUTRAL` in middleware routes as no version ([@Chaoqi31](https://github.com/Cha _[Truncated at 4000 characters — full notes: https://github.com/nestjs/nest/releases/tag/v12.1.3]_ ### v12.1.1 - Date: 2026-09-28 - Version: v12.1.1 - Original notes: https://github.com/nestjs/nest/releases/tag/v12.1.1 - Permalink: https://whatsnew.fyi/product/nestjs/releases/v12.1.1 - **fixed** — Fix logger bugs in json output, level changes, fatal and buffered logs - **fixed** — Let the mqtt client retry after a failed connect - **fixed** — Keep tcp event listeners across reconnects - **fixed** — Ignore events from a replaced tcp client socket - **fixed** — Keep a newer nats connection when a stale one fails - **fixed** — Keep a newer kafka connection when a stale one fails - **fixed** — Let the rmq client retry after a failed connect - **fixed** — Reply on the request channel when redis wildcards are enabled - **fixed** — Recover the nats client after it gives up reconnecting - **fixed** — Preserve string enum values matching numeric member names - **fixed** — Detect circular dependencies across more than two providers - **fixed** — Treat a JSON content type with parameters as JSON in reply() - **fixed** — Honor class and factory overrides of value providers - **changed** — Reject non-numeric items in ParseArrayPipe with items Number - **added** — Export deserializers from the microservices package root ##### v12.1.1 (2026-09-28) ###### Bug fixes * `common`, `core`, `microservices`, `testing` * [#17893](https://github.com/nestjs/nest/pull/17893) fix(common): logger bugs in json output, level changes, fatal and buffered logs ([@kamilmysliwiec](https://github.com/kamilmysliwiec)) * `microservices` * [#17891](https://github.com/nestjs/nest/pull/17891) fix(microservices): let the mqtt client retry after a failed connect ([@hktitof](https://github.com/hktitof)) * [#17888](https://github.com/nestjs/nest/pull/17888) fix(microservices): keep tcp event listeners across reconnects ([@KAPUIST](https://github.com/KAPUIST)) * [#17887](https://github.com/nestjs/nest/pull/17887) fix(microservices): ignore events from a replaced tcp client socket ([@KAPUIST](https://github.com/KAPUIST)) * [#17878](https://github.com/nestjs/nest/pull/17878) fix(microservices): keep a newer nats connection when a stale one fails ([@hktitof](https://github.com/hktitof)) * [#17869](https://github.com/nestjs/nest/pull/17869) fix(microservices): keep a newer kafka connection when a stale one fails ([@kamilmysliwiec](https://github.com/kamilmysliwiec)) * [#17865](https://github.com/nestjs/nest/pull/17865) fix(microservices): let the rmq client retry after a failed connect ([@hktitof](https://github.com/hktitof)) * [#17866](https://github.com/nestjs/nest/pull/17866) fix(microservices): reply on the request channel when redis wildcards are enabled ([@fadiroot](https://github.com/fadiroot)) * [#17861](https://github.com/nestjs/nest/pull/17861) fix(microservices): recover the nats client after it gives up reconnecting ([@xia-chao](https://github.com/xia-chao)) * `common` * [#17884](https://github.com/nestjs/nest/pull/17884) fix(common): preserve string enum values matching numeric member names ([@KAPUIST](https://github.com/KAPUIST)) * `core` * [#17871](https://github.com/nestjs/nest/pull/17871) fix(core): detect circular dependencies across more than two providers ([@erezcor](https://github.com/erezcor)) * `platform-fastify` * [#17867](https://github.com/nestjs/nest/pull/17867) fix(fastify): treat a JSON content type with parameters as JSON in reply() ([@fadiroot](https://github.com/fadiroot)) * `core`, `testing` * [#17860](https://github.com/nestjs/nest/pull/17860) fix(core): honor class and factory overrides of value providers ([@lehafari](https://github.com/lehafari)) ###### Enhancements * `common` * [#17876](https://github.com/nestjs/nest/pull/17876) fix(common): reject non-numeric items in ParseArrayPipe with items Number ([@SulimanAbdulrazzaq](https://github.com/SulimanAbdulrazzaq)) * `microservices` * [#17863](https://github.com/nestjs/nest/pull/17863) feat(microservices): export deserializers from the package root ([@lazerg](https://github.com/lazerg)) ###### Committers: 13 - Abdellatif Anaflous ([@hktitof](https://github.com/hktitof)) - Alejandro ([@lehafari](https://github.com/lehafari)) - Daniel Pinto ([@Cayan](https://github.com/Cayan)) - Dharmik Sondagar ([@DharmikSondagar](https://github.com/DharmikSondagar)) - Kamil Mysliwiec ([@kamilmysliwiec](https://github.com/kamilmysliwiec)) - Lazizbek Ergashev ([@lazerg](https://github.com/lazerg)) - Luke Son ([@KAPUIST](https://github.com/KAPUIST)) - Micael Levi L. Cavalcante ([@micalevisk](https://github.com/micalevisk)) - Roman Khegay ([@thekhegay](https://github.com/thekhegay)) - Suliman Abdulrazzaq ([@SulimanAbdulrazzaq](https://github.com/SulimanAbdulrazzaq)) - Xia Chao ([@xia-chao](https://github.com/xia-chao)) - [@erezcor](https://github.com/erezcor) - fadi romdhan ([@fadiroot](https://github.com/fadiroot)) ### v11.2.6 - Date: 2026-09-23 - Version: v11.2.6 - Original notes: https://github.com/nestjs/nest/releases/tag/v11.2.6 - Permalink: https://whatsnew.fyi/product/nestjs/releases/v11.2.6 - **security** — Update dependency multer to v2.4.0 to fix CVE-2026-88932 - **fixed** — Map multer errors by code instead of message so a file sent under an unexpected field name returns 400 instead of 500 with multer 2.4.0 ##### What's changed - `@nestjs/platform-express` - [fix(deps): update dependency multer to v2.4.0 [security]](https://github.com/nestjs/nest/commit/fb8ecdbef124f102f96de7f62db70b68296e6ae0) — fixes CVE-2026-88932 ([GHSA-3pph-fpjx-jg34](https://github.com/advisories/GHSA-3pph-fpjx-jg34)) - [fix(express): map multer errors by code instead of message](https://github.com/nestjs/nest/commit/58c3634b25b027d72fc25ec66d92311cb3d4b249) — backport of #17769; a file sent under an unexpected field name now returns 400 again instead of 500 with multer 2.4.0 **Full Changelog**: https://github.com/nestjs/nest/compare/v11.2.5...v11.2.6 ### v12.1.0 - Date: 2026-09-23 - Version: v12.1.0 - Original notes: https://github.com/nestjs/nest/releases/tag/v12.1.0 - Permalink: https://whatsnew.fyi/product/nestjs/releases/v12.1.0 - **fixed** — Inherit optional constructor parameters when the constructor is not redeclared - **fixed** — Name the module when metadata entries are invalid - **fixed** — Let the Redis client retry after a failed connect - **fixed** — Fail every pending request when a callback throws - **changed** — Do not skip subsequent middleware after a transient one - **changed** — Preserve route handler names - **added** — Add support for array of global prefixes - **added** — Add built-in, adapter-agnostic cookies - **changed** — Honor Nest forceCloseConnections in initHttpServer for Fastify - **changed** — Apply the ParseDatePipe default to every missing value - **added** — Add file upload interceptors backed by @fastify/multipart - **added** — Add built-in CSRF protection and security headers ##### v12.1.0 (2026-09-23) ###### Bug fixes * `core` * [#17838](https://github.com/nestjs/nest/pull/17838) fix(core): inherit optional ctor params when the ctor is not redeclared ([@kamilmysliwiec](https://github.com/kamilmysliwiec)) * [#17819](https://github.com/nestjs/nest/pull/17819) fix(core): name the module when metadata entries are invalid ([@thekhegay](https://github.com/thekhegay)) * `microservices` * [#17828](https://github.com/nestjs/nest/pull/17828) fix(microservices): let the redis client retry after a failed connect ([@hktitof](https://github.com/hktitof)) * [#17810](https://github.com/nestjs/nest/pull/17810) fix(microservices): fail every pending request when a callback throws ([@hktitof](https://github.com/hktitof)) ###### Enhancements * `core` * [#17846](https://github.com/nestjs/nest/pull/17846) fix(core): do not skip subsequent middleware after a transient one ([@lehafari](https://github.com/lehafari)) * [#17840](https://github.com/nestjs/nest/pull/17840) fix(core): preserve route handler names ([@Grmiade](https://github.com/Grmiade)) * `common`, `core` * [#17713](https://github.com/nestjs/nest/pull/17713) feat(core): add support for array of global prefixes ([@micalevisk](https://github.com/micalevisk)) * [#17834](https://github.com/nestjs/nest/pull/17834) feat(common,core): add built-in, adapter-agnostic cookies ([@kamilmysliwiec](https://github.com/kamilmysliwiec)) * `platform-fastify` * [#17824](https://github.com/nestjs/nest/pull/17824) fix(fastify): honor Nest forceCloseConnections in initHttpServer ([@xia-chao](https://github.com/xia-chao)) * `common` * [#17827](https://github.com/nestjs/nest/pull/17827) fix(common): apply the ParseDatePipe default to every missing value ([@xia-chao](https://github.com/xia-chao)) * `platform-fastify`, `testing` * [#17835](https://github.com/nestjs/nest/pull/17835) feat(fastify): add file upload interceptors backed by @fastify/multipart ([@kamilmysliwiec](https://github.com/kamilmysliwiec)) * `common`, `core`, `platform-fastify` * [#17836](https://github.com/nestjs/nest/pull/17836) feat(common,core,fastify): built-in CSRF protection and security headers ([@kamilmysliwiec](https://github.com/kamilmysliwiec)) ###### Committers: 9 - Abdellatif Anaflous ([@hktitof](https://github.com/hktitof)) - Alejandro ([@lehafari](https://github.com/lehafari)) - Chris Z ([@haimingZZ](https://github.com/haimingZZ)) - Johnny J. Huirilef Millán ([@johnnyhuirilef](https://github.com/johnnyhuirilef)) - Jérémy Fauvel ([@Grmiade](https://github.com/Grmiade)) - Kamil Mysliwiec ([@kamilmysliwiec](https://github.com/kamilmysliwiec)) - Micael Levi L. Cavalcante ([@micalevisk](https://github.com/micalevisk)) - Roman Khegay ([@thekhegay](https://github.com/thekhegay)) - Xia Chao ([@xia-chao](https://github.com/xia-chao)) ### v12.0.4 - Date: 2026-09-21 - Version: v12.0.4 - Original notes: https://github.com/nestjs/nest/releases/tag/v12.0.4 - Permalink: https://whatsnew.fyi/product/nestjs/releases/v12.0.4 - **fixed** — Let the Kafka client retry after a failed connect - **fixed** — Fail pending RabbitMQ requests on client close - **fixed** — Fail pending NATS requests on client close - **fixed** — Handle missing gRPC package namespace gracefully - **fixed** — Share the processing hook envelope across transports - **fixed** — Close the Kafka request-response span exactly once - **fixed** — Close the request-response span exactly once - **fixed** — Route message handler rejections to handleError - **fixed** — Fix hang on sparse factory inject array - **fixed** — Merge multer limits key-by-key instead of overriding it wholesale - **changed** — Mark ParseDatePipe options as optional ##### v12.0.4 (2026-09-21) ###### Bug fixes * `microservices` * [#17816](https://github.com/nestjs/nest/pull/17816) fix(microservices): let the kafka client retry after a failed connect ([@Xch4rt](https://github.com/Xch4rt)) * [#17786](https://github.com/nestjs/nest/pull/17786) fix(microservices): fail pending rmq requests on client close ([@johnnyhuirilef](https://github.com/johnnyhuirilef)) * [#17802](https://github.com/nestjs/nest/pull/17802) fix(microservices): fail pending nats requests on client close ([@hktitof](https://github.com/hktitof)) * [#17803](https://github.com/nestjs/nest/pull/17803) fix(microservices): handle missing grpc package namespace gracefully ([@Se3do](https://github.com/Se3do)) * [#17799](https://github.com/nestjs/nest/pull/17799) fix(microservices): share the processing hook envelope across transports ([@kamilmysliwiec](https://github.com/kamilmysliwiec)) * [#17797](https://github.com/nestjs/nest/pull/17797) fix(microservices): close the kafka request-response span exactly once ([@MingLin1995](https://github.com/MingLin1995)) * [#17794](https://github.com/nestjs/nest/pull/17794) fix(microservices): close the request-response span exactly once ([@kamilmysliwiec](https://github.com/kamilmysliwiec)) * [#17785](https://github.com/nestjs/nest/pull/17785) fix(microservices): route message handler rejections to handleError ([@hktitof](https://github.com/hktitof)) * `core` * [#17821](https://github.com/nestjs/nest/pull/17821) fix(core): hang on sparse factory inject array ([@xia-chao](https://github.com/xia-chao)) ###### Enhancements * `platform-express` * [#17818](https://github.com/nestjs/nest/pull/17818) Fix: merge multer `limits` key-by-key instead of overriding it wholesale ([@mdrezuanislamridoy](https://github.com/mdrezuanislamridoy)) * `common` * [#17780](https://github.com/nestjs/nest/pull/17780) fix(common): mark parse date pipe options as optional ([@Chy-Zaber-Bin-Zahid](https://github.com/Chy-Zaber-Bin-Zahid)) ###### Dependencies * `common` * [#17793](https://github.com/nestjs/nest/pull/17793) fix(deps): update dependency file-type to v22.1.1 ([@renovate[bot]](https://github.com/apps/renovate)) * `platform-fastify` * [#17791](https://github.com/nestjs/nest/pull/17791) fix(deps): update dependency fastify to v5.12.5 ([@renovate[bot]](https://github.com/apps/renovate)) ###### Committers: 10 - Abdellatif Anaflous ([@hktitof](https://github.com/hktitof)) - Chowdhury Zaber Bin Zahid ([@Chy-Zaber-Bin-Zahid](https://github.com/Chy-Zaber-Bin-Zahid)) - Imad - Prakticode ([@prakticode](https://github.com/prakticode)) - Johnny J. Huirilef Millán ([@johnnyhuirilef](https://github.com/johnnyhuirilef)) - Kamil Mysliwiec ([@kamilmysliwiec](https://github.com/kamilmysliwiec)) - MD. Ridoy Babu ([@mdrezuanislamridoy](https://github.com/mdrezuanislamridoy)) - Ming ([@MingLin1995](https://github.com/MingLin1995)) - Mohammed Said ([@Se3do](https://github.com/Se3do)) - Pablo Gutiérrez ([@Xch4rt](https://github.com/Xch4rt)) - Xia Chao ([@xia-chao](https://github.com/xia-chao)) ### v12.0.3 - Date: 2026-09-15 - Version: v12.0.3 - Original notes: https://github.com/nestjs/nest/releases/tag/v12.0.3 - Permalink: https://whatsnew.fyi/product/nestjs/releases/v12.0.3 - **fixed** — Always run the kafka processing end hook in microservices - **fixed** — Fail pending requests on client close in microservices - **fixed** — Bound memory held for a TCP peer in microservices - **fixed** — Destroy open TCP sockets on shutdown in microservices - **fixed** — Validate uuid version and variant when no version is set in common - **fixed** — Invoke proto-key stripping hook via this in transform in common - **changed** — Update dependency multer to v2.4.0 in platform-express - **changed** — Update dependency file-type to v22.1.0 in common ##### v12.0.3 (2026-09-15) ###### Bug fixes * `microservices` * [#17766](https://github.com/nestjs/nest/pull/17766) fix(microservices): always run the kafka processing end hook ([@kamilmysliwiec](https://github.com/kamilmysliwiec)) * [#17757](https://github.com/nestjs/nest/pull/17757) fix(microservices): fail pending requests on client close ([@hktitof](https://github.com/hktitof)) * [#17746](https://github.com/nestjs/nest/pull/17746) fix(microservices): bound memory held for a TCP peer ([@kamilmysliwiec](https://github.com/kamilmysliwiec)) * [#17745](https://github.com/nestjs/nest/pull/17745) fix(microservices): destroy open TCP sockets on shutdown ([@kamilmysliwiec](https://github.com/kamilmysliwiec)) * `common` * [#17738](https://github.com/nestjs/nest/pull/17738) fix(common): validate uuid version and variant when no version is set ([@otnc](https://github.com/otnc)) * [#17761](https://github.com/nestjs/nest/pull/17761) fix(common): invoke proto-key stripping hook via this in transform ([@koreahghg](https://github.com/koreahghg)) ###### Dependencies * `platform-express` * [#17762](https://github.com/nestjs/nest/pull/17762) fix(deps): update dependency multer to v2.4.0 ([@renovate[bot]](https://github.com/apps/renovate)) * `common` * [#17753](https://github.com/nestjs/nest/pull/17753) fix(deps): update dependency file-type to v22.1.0 ([@renovate[bot]](https://github.com/apps/renovate)) ###### Committers: 4 - Abdellatif Anaflous ([@hktitof](https://github.com/hktitof)) - Kamil Mysliwiec ([@kamilmysliwiec](https://github.com/kamilmysliwiec)) - otoneko. ([@otnc](https://github.com/otnc)) - 한국 ([@koreahghg](https://github.com/koreahghg)) ### v11.2.5 - Date: 2026-09-15 - Version: v11.2.5 - Original notes: https://github.com/nestjs/nest/releases/tag/v11.2.5 - Permalink: https://whatsnew.fyi/product/nestjs/releases/v11.2.5 - **security** — Harden the TCP transport in @nestjs/microservices against a hostile peer ##### What's changed - `@nestjs/microservices` - [fix(microservices): harden the tcp transport against a hostile peer](https://github.com/nestjs/nest/commit/dee4ed4dbc2e18e1e722619927647f5441dfe812) **Full Changelog**: https://github.com/nestjs/nest/compare/v11.2.4...v11.2.5 ### v11.2.4 - Date: 2026-09-14 - Version: v11.2.4 - Original notes: https://github.com/nestjs/nest/releases/tag/v11.2.4 - Permalink: https://whatsnew.fyi/product/nestjs/releases/v11.2.4 - **fixed** — Handle unserializable patterns in microservices without crashing - **fixed** — Absolute-form request target middleware bypass in platform-fastify ###### What's changed - fix(microservices): handle unserializable patterns without crashing - fix(platform-fastify): absolute-form request target middleware bypass ### v12.0.2 - Date: 2026-09-14 - Version: v12.0.2 - Original notes: https://github.com/nestjs/nest/releases/tag/v12.0.2 - Permalink: https://whatsnew.fyi/product/nestjs/releases/v12.0.2 - **fixed** — Keep the message stream alive when a handler throws in Socket.IO - **fixed** — Detach signal listeners of connected microservices - **fixed** — Fail requests whose reply subscription is rejected in microservices - **fixed** — Do not treat foreign JSON as an RPC envelope in microservices - **fixed** — Do not flatten plain handler results with pre-request hooks in microservices - **fixed** — Run the MQTT listen callback once in microservices - **fixed** — Collapse duplicate internal slashes in normalizePath - **fixed** — Validate UUID v3 variant - **fixed** — Treat empty string as array input in ParseArrayPipe - **fixed** — Discover factory providers with discovery decorators - **fixed** — Avoid treating error instances with statusCode as HTTP errors - **fixed** — Clean up repeated shutdown signal listeners - **fixed** — Derive neutral version when accept header is absent in Fastify - **fixed** — Send responses for exceptions thrown from middleware in Fastify - **added** — Add maxConnectionAttempts option to ServerMqtt - **changed** — Update Fastify dependency to v5.12.4 ##### v12.0.2 (2026-09-14) ###### Bug fixes * `platform-socket.io`, `platform-ws` * [#17666](https://github.com/nestjs/nest/pull/17666) fix(socket.io): keep the message stream alive when a handler throws ([@hktitof](https://github.com/hktitof)) * `microservices` * [#17728](https://github.com/nestjs/nest/pull/17728) fix(microservices): detach signal listeners of connected microservices ([@kamilmysliwiec](https://github.com/kamilmysliwiec)) * [#17671](https://github.com/nestjs/nest/pull/17671) fix(microservices): fail requests whose reply subscription is rejected ([@samuelmbabhazi](https://github.com/samuelmbabhazi)) * [#17670](https://github.com/nestjs/nest/pull/17670) fix(microservices): do not treat foreign JSON as an RPC envelope ([@xia-chao](https://github.com/xia-chao)) * [#17644](https://github.com/nestjs/nest/pull/17644) fix(microservices): don't flatten plain handler results with pre-request hooks ([@iamolegga](https://github.com/iamolegga)) * [#17641](https://github.com/nestjs/nest/pull/17641) fix(microservices): run the mqtt listen callback once ([@johnnyhuirilef](https://github.com/johnnyhuirilef)) * `common` * [#17710](https://github.com/nestjs/nest/pull/17710) fix(common): collapse duplicate internal slashes in `normalizePath` ([@Asadshah7950](https://github.com/Asadshah7950)) * [#17655](https://github.com/nestjs/nest/pull/17655) fix(common): validate UUID v3 variant ([@gwagjiug](https://github.com/gwagjiug)) * [#17702](https://github.com/nestjs/nest/pull/17702) fix(common): treat empty string as array input in ParseArrayPipe ([@xia-chao](https://github.com/xia-chao)) * `core` * [#17667](https://github.com/nestjs/nest/pull/17667) fix(core): discover factory providers with discovery decorators ([@hktitof](https://github.com/hktitof)) * [#17709](https://github.com/nestjs/nest/pull/17709) fix(core): avoid treating error instances with `statusCode` as http errors ([@Asadshah7950](https://github.com/Asadshah7950)) * [#17625](https://github.com/nestjs/nest/pull/17625) fix(core): clean up repeated shutdown signal listeners ([@Raj4478](https://github.com/Raj4478)) * `platform-fastify` * [#17705](https://github.com/nestjs/nest/pull/17705) fix(fastify): derive neutral version when accept header is absent ([@Gaurav1112](https://github.com/Gaurav1112)) * [#17699](https://github.com/nestjs/nest/pull/17699) fix(fastify): send responses for exceptions thrown from middleware ([@micalevisk](https://github.com/micalevisk)) ###### Enhancements * `microservices` * [#17734](https://github.com/nestjs/nest/pull/17734) feat(microservices): add maxConnectionAttempts to ServerMqtt ([@kamilmysliwiec](https://github.com/kamilmysliwiec)) ###### Dependencies * `platform-fastify` * [#17729](https://github.com/nestjs/nest/pull/17729) fix(deps): update dependency fastify to v5.12.4 ([@renovate[bot]](https://github.com/apps/renovate)) ###### Committers: 16 - Abdellatif Anaflous ([@hktitof](https://github.com/hktitof)) - Alexey Solovyov ([@lyohaplotinka](https://github.com/lyohaplotinka)) - Asad Ali Shah ([@Asadshah7950](https://github.com/Asadshah7950)) - Gyeonghun Park ([@Gyeonghun-Park](https://github.com/Gyeonghun-Park)) - Johnny J. Huirilef Millán ([@johnnyhuirilef](https://github.com/johnnyhuirilef)) - Kamil Mysliwiec ([@kamilmysliwiec](https://github.com/kamilmysliwiec)) - Kumar Gaurav ([@Gaurav1112](https://github.com/Gaurav1112)) - Micael Levi L. Cavalcante ([@micalevisk](https://github.com/micalevisk)) - Ming ([@MingLin1995](https://github.com/MingLin1995)) - Mohammed Said ([@Se3do](https://github.com/Se3do)) - Rajeshwar Singh ([@Raj4478](https://github.com/Raj4478)) - Xia Chao ([@xia-chao](https://github.com/xia-chao)) - [@iamolegga](https://github.com/iamolegga) - cui fliter ([@cuishuang](https://github.com/cuishuang)) - samuel mbabhazi ([@samuelmbabhazi](https://github.com/samuelmbabhazi)) - 곽지욱 ([@gwagjiug](https://github.com/gwagjiug)) ### v12.0.0 - Date: 2026-08-27 - Version: v12.0.0 - Original notes: https://github.com/nestjs/nest/releases/tag/v12.0.0 - Permalink: https://whatsnew.fyi/product/nestjs/releases/v12.0.0 - **added** — ESM packages for all core Nest packages with CommonJS compatibility through require(esm) in Node.js v20.19+ or v22.12+ - **added** — Standard Schema validation support via schema option in @Body(), @Query(), @Param(), and @RawBody() decorators - **added** — StandardSchemaValidationPipe for validating requests against Standard Schema compatible libraries - **added** — StandardSchemaSerializerInterceptor for validating and transforming outgoing responses with Standard Schema - **added** — @nestjs/observe SDK for native observability with automatic instrumentation of HTTP, GraphQL, gRPC, microservice transports, queue consumers, and cron runs - **added** — Route conflict diagnostics with routeConflictPolicy and routeResolutionStrategy options to detect duplicate and shadow routes - **added** — Machine-readable error codes via errorCode option in HttpExceptionOptions - **added** — Structured logging params in ConsoleLogger treating plain objects after messages as structured fields - **changed** — @nestjs/config validation now accepts Standard Schema compatible schemas via validationSchema option - **changed** — nest new command now offers choice to scaffold CommonJS or ESM projects - **changed** — nest upgrade command applies mechanical migrations including webpack options, GraphQL playground to graphiql rename, NATS package replacement, and Jest and Joi bumps - **changed** — Node.js minimum requirement is v20.19+ or v22.12+ - **removed** — Implicit CommonJS-only packages support removed in favor of ESM-ready packages #### NestJS v12.0.0 NestJS 12 is centered around **ESM-ready packages**, **first-class [Standard Schema](https://standardschema.dev/) support** for validation and serialization, a **rebuilt CLI**, and **native observability** through the new `@nestjs/observe` SDK. Existing CommonJS applications keep working — migrating your own code to ESM is entirely optional. 📖 Full [migration guide](https://docs.nestjs.com/migration-guide) --- ##### Upgrading Upgrade the CLI first, since the upgrade command ships with it: ```bash npm i -g @nestjs/cli@latest ``` Then, from the root of your project: ```bash nest upgrade ``` `nest upgrade` moves every `@nestjs/*` package to its v12-compatible major at once and applies the mechanical parts of the migration for you — `nest-cli.json` webpack options, the GraphQL `playground` → `graphiql` rename and subscriptions transport swap, the NATS package replacement, `@nestjs/config` validation options, Jest and Joi bumps — then prints a report of everything it changed and everything you still need to review by hand. Run it with `--dry-run` first to see that report without touching your files. It deliberately does **not** migrate your project to ESM, Vitest, or oxlint. Those are the defaults for newly generated projects; existing projects adopt them on their own schedule. **Node.js:** v12 requires **Node.js v20.19+ or v22.12+**. Both `require(esm)` and the ESM packages depend on it; the upgrade command refuses to run on older releases (including the 21.x line). The latest active LTS is recommended. --- ##### Highlights ###### ESM packages All core Nest packages now ship as ESM. Thanks to `require(esm)` in modern Node.js, most existing CommonJS applications continue to work without a rewrite. Review custom bootstrapping scripts, build tooling, and test runners if they assume CommonJS-only packages. `nest new` now asks whether to scaffold a **CommonJS** or an **ESM** project. ###### Standard Schema validation Route parameter decorators — `@Body()`, `@Query()`, `@Param()`, `@RawBody()` — accept a new `schema` option, designed for Standard Schema compatible libraries such as Zod, Valibot, and ArkType: ```ts @Post() create(@Body({ schema: createUserSchema }) body: CreateUserDto) { return this.usersService.create(body); } @Get(':id') findOne(@Param('id', { schema: z.coerce.number().int().positive() }) id: number) { return this.usersService.findOne(id); } ``` The decorator only attaches metadata; register the new `StandardSchemaValidationPipe` to validate against it: ```ts app.useGlobalPipes(new StandardSchemaValidationPipe()); ``` The same schemas feed OpenAPI generation. The decorator-based `class-validator` workflow remains fully supported, with no plan to remove it. ###### Standard Schema serialization `StandardSchemaSerializerInterceptor` validates and transforms outgoing responses with the same ecosystem: ```ts @UseInterceptors(StandardSchemaSerializerInterceptor) @SerializeOptions({ schema: userResponseSchema }) @Get(':id') findOne(@Param('id') id: string) { return this.usersService.findOne(id); } ``` Pick per use case: `ValidationPipe` / `ClassSerializerInterceptor` for class-based DTOs, the Standard Schema variants when your schemas already exist. ###### Native observability — `@nestjs/observe` The official [NestJS Observe](https://observe.nestjs.com) SDK plugs into Nest's own request lifecycle through the `instrument` application option, rather than patching the HTTP server like a generic APM agent. Requests, jobs, errors, and traces are reported in terms of your controllers, providers, resolvers, and queue consumers: ```ts export const { ObserveModule, ObserveInstrument } = createObserveModule(); const app = await NestFactory.create(AppModule, { instrument: ObserveInstrument, }); ``` Auto-instrumentation covers HTTP, GraphQL, gRPC, and microservice transports, plus queue _[Truncated at 4000 characters — full notes: https://github.com/nestjs/nest/releases/tag/v12.0.0]_ ### v11.2.3 - Date: 2026-08-25 - Version: v11.2.3 - Original notes: https://github.com/nestjs/nest/releases/tag/v11.2.3 - Permalink: https://whatsnew.fyi/product/nestjs/releases/v11.2.3 - **fixed** — circular durable providers issue ##### What's Changed * fix(core): circular durable providers issue by @kamilmysliwiec in https://github.com/nestjs/nest/pull/17563 **Full Changelog**: https://github.com/nestjs/nest/compare/v11.2.2...v11.2.3 ### v11.2.2 - Date: 2026-08-25 - Version: v11.2.2 - Original notes: https://github.com/nestjs/nest/releases/tag/v11.2.2 - Permalink: https://whatsnew.fyi/product/nestjs/releases/v11.2.2 - **fixed** — ObserveInstrument breaking app startup with @nestjs/core@11.2.x - **fixed** — Bootstrap crashing with nestjs-cls proxy providers (ProxyProviderNotResolvedException on CLS_REQ) ##### What's changed - fix(core): ObserveInstrument breaks app startup with @nestjs/core@11.2.x #17554 by @kamilmysliwiec - fix(core): Bootstrap crashes with nestjs-cls proxy providers (ProxyProviderNotResolvedException on CLS_REQ) #17553 by @kamilmysliwiec ### v11.2.1 - Date: 2026-08-14 - Version: v11.2.1 - Original notes: https://github.com/nestjs/nest/releases/tag/v11.2.1 - Permalink: https://whatsnew.fyi/product/nestjs/releases/v11.2.1 - **fixed** — early-return SSE abort issue ##### What's Changed * fix(core): early-return SSE abort issue by @kamilmysliwiec **Full Changelog**: https://github.com/nestjs/nest/compare/v11.2.0...v11.2.1 ### v11.2.0 - Date: 2026-08-14 - Version: v11.2.0 - Original notes: https://github.com/nestjs/nest/releases/tag/v11.2.0 - Permalink: https://whatsnew.fyi/product/nestjs/releases/v11.2.0 - **fixed** — Share existing singleton providers with lazily loaded modules - **fixed** — Match string file types containing regex metacharacters - **fixed** — Convert adjacent wildcard segments in legacy route converter - **fixed** — Run middleware on routes excluded from global prefix in Fastify - **fixed** — Avoid double prefixing inherited middleware in Fastify - **fixed** — Scan pre-registered dynamic imports of lazy modules - **added** — Add query HTTP method support - **fixed** — Exclude reverse-mapped keys from numeric enum validation in ParseEnumPipe - **added** — Add SSE signal support ##### What's Changed * fix(core): share existing singleton providers with lazily loaded modules by @shariyerShazan in https://github.com/nestjs/nest/pull/17430 * fix(common): match string file types containing regex metacharacters by @Jaybhade in https://github.com/nestjs/nest/pull/17435 * fix(core): convert adjacent wildcard segments in legacy route converter by @eeshsaxena in https://github.com/nestjs/nest/pull/17416 * fix(fastify): run middleware on routes excluded from global prefix by @Arun445 in https://github.com/nestjs/nest/pull/17377 * fix(fastify): avoid double prefixing inherited middleware by @GiHoon1123 in https://github.com/nestjs/nest/pull/17350 * fix(core): scan pre-registered dynamic imports of lazy modules by @johnnyhuirilef in https://github.com/nestjs/nest/pull/17464 * feat(core,common,platform-fastify): add query http method support by @gacardinal in https://github.com/nestjs/nest/pull/17162 * fix(common): exclude reverse-mapped keys from numeric enum validation in ParseEnumPipe by @LeSingh1 in https://github.com/nestjs/nest/pull/17086 * test(testing): Add e2e integration tests for HTTP QUERY method (RFC 10008) by @brayanjeshua in https://github.com/nestjs/nest/pull/17310 * feat(core): sse signal by @kamilmysliwiec in https://github.com/nestjs/nest/pull/17469 * chore(deps): update dependency fastify to v5.12.0 by @renovate[bot] in https://github.com/nestjs/nest/pull/17473 ##### New Contributors * @shariyerShazan made their first contribution in https://github.com/nestjs/nest/pull/17430 * @Jaybhade made their first contribution in https://github.com/nestjs/nest/pull/17435 * @eeshsaxena made their first contribution in https://github.com/nestjs/nest/pull/17416 * @Arun445 made their first contribution in https://github.com/nestjs/nest/pull/17377 * @GiHoon1123 made their first contribution in https://github.com/nestjs/nest/pull/17350 * @johnnyhuirilef made their first contribution in https://github.com/nestjs/nest/pull/17464 * @gacardinal made their first contribution in https://github.com/nestjs/nest/pull/17162 * @LeSingh1 made their first contribution in https://github.com/nestjs/nest/pull/17086 * @brayanjeshua made their first contribution in https://github.com/nestjs/nest/pull/17310 **Full Changelog**: https://github.com/nestjs/nest/compare/v11.1.29...v11.2.0 ### v11.1.29 - Date: 2026-08-10 - Version: v11.1.29 - Original notes: https://github.com/nestjs/nest/releases/tag/v11.1.29 - Permalink: https://whatsnew.fyi/product/nestjs/releases/v11.1.29 - **fixed** — Stop import lookup after first direct export match in core - **changed** — Update multerExceptions constant - **fixed** — Correct pub/sub client type in redis listeners for microservices - **added** — Add override mimetype option to file type validator - **fixed** — Drop the g flag from middleware overlap regexes in core - **added** — Support SSE comments in core - **fixed** — Resolve barrier immediately when target count is zero in core - **fixed** — Exclude pipe options from validator options in common - **fixed** — Serialize SSE retry field when value is zero in core - **fixed** — Nullify grpcclient on close when tryshutdown fails in microservices - **fixed** — Map missing multer field nesting error in express ##### What's Changed * fix(core): stop import lookup after first direct export match by @malekelkssas in https://github.com/nestjs/nest/pull/17141 * chore: update multerExceptions constant by @bo0tzz in https://github.com/nestjs/nest/pull/17328 * fix(microservices): correct pub/sub client type in redis listeners by @zaewc in https://github.com/nestjs/nest/pull/17331 * feat(common): add override mimetype option to file type validator by @Ativ3k in https://github.com/nestjs/nest/pull/17333 * fix(core): drop the g flag from middleware overlap regexes by @dchaudhari7177 in https://github.com/nestjs/nest/pull/17335 * feat(core): support sse comments by @kyu4583 in https://github.com/nestjs/nest/pull/17327 * fix(core): resolve barrier immediately when target count is zero by @ikrbasak in https://github.com/nestjs/nest/pull/17393 * fix(common): exclude pipe options from validator options by @coxxny in https://github.com/nestjs/nest/pull/17399 * fix(core): serialize SSE retry field when value is zero by @kyu4583 in https://github.com/nestjs/nest/pull/17360 * fix(microservices): nullify grpcclient on close when tryshutdown fails by @Se3do in https://github.com/nestjs/nest/pull/17394 * fix(express): map missing multer field nesting error by @Se3do in https://github.com/nestjs/nest/pull/17421 ##### New Contributors * @malekelkssas made their first contribution in https://github.com/nestjs/nest/pull/17141 * @hjc0930 made their first contribution in https://github.com/nestjs/nest/pull/17311 * @bo0tzz made their first contribution in https://github.com/nestjs/nest/pull/17328 * @Ativ3k made their first contribution in https://github.com/nestjs/nest/pull/17333 * @dchaudhari7177 made their first contribution in https://github.com/nestjs/nest/pull/17335 * @kyu4583 made their first contribution in https://github.com/nestjs/nest/pull/17327 * @anupamme made their first contribution in https://github.com/nestjs/nest/pull/17378 * @ikrbasak made their first contribution in https://github.com/nestjs/nest/pull/17393 * @beiifeng made their first contribution in https://github.com/nestjs/nest/pull/17404 * @coxxny made their first contribution in https://github.com/nestjs/nest/pull/17399 **Full Changelog**: https://github.com/nestjs/nest/compare/v11.1.28...v11.1.29 ### v11.1.28 - Date: 2026-07-08 - Version: v11.1.28 - Original notes: https://github.com/nestjs/nest/releases/tag/v11.1.28 - Permalink: https://whatsnew.fyi/product/nestjs/releases/v11.1.28 - **fixed** — Trigger teardown of SSE producer Observable on client disconnect with interceptor - **fixed** — Add missing exception classes to HttpErrorByCode - **fixed** — Correct type guard to check value not key in websockets - **changed** — Include auto-converted route in legacy route path warning - **changed** — Bump fastify from 5.8.5 to 5.10.0 - **security** — Update dependency multer to v2.2.0 ##### v11.1.28 (2026-07-08) ###### Bug fixes * `core` * [#17239](https://github.com/nestjs/nest/pull/17239) fix(core): trigger teardown of SSE producer Observable on client disconnect with interceptor ([@jyx-07](https://github.com/jyx-07)) * `common` * [#17257](https://github.com/nestjs/nest/pull/17257) fix(common): Add missing exception classes to HttpErrorByCode ([@Se3do](https://github.com/Se3do)) * `websockets` * [#17188](https://github.com/nestjs/nest/pull/17188) fix(websockets): correct type guard to check value not key ([@Se3do](https://github.com/Se3do)) ###### Enhancements * `core` * [#17241](https://github.com/nestjs/nest/pull/17241) feat(core): include auto-converted route in legacy route path warning ([@ronielli](https://github.com/ronielli)) ###### Dependencies * `platform-fastify` * [#17262](https://github.com/nestjs/nest/pull/17262) chore(deps): bump fastify from 5.8.5 to 5.10.0 ([@dependabot[bot]](https://github.com/apps/dependabot)) * `platform-express` * [#17164](https://github.com/nestjs/nest/pull/17164) fix(deps): update dependency multer to v2.2.0 [security] ([@renovate[bot]](https://github.com/apps/renovate)) ###### Committers: 4 - Mohammed Said ([@Se3do](https://github.com/Se3do)) - Ronielli ([@ronielli](https://github.com/ronielli)) - greymoth ([@greymoth-jp](https://github.com/greymoth-jp)) - 종윤 ([@jyx-07](https://github.com/jyx-07)) ### v11.1.27 - Date: 2026-06-15 - Version: v11.1.27 - Original notes: https://github.com/nestjs/nest/releases/tag/v11.1.27 - Permalink: https://whatsnew.fyi/product/nestjs/releases/v11.1.27 - **fixed** — Fix SSE async handlers teardown issue - **fixed** — Fix forRoutes middleware ending slash in platform-fastify ##### What's Changed * fix(core): sse async handlers teardown issue by @kamilmysliwiec in https://github.com/nestjs/nest/pull/17131 * fix(platform-fastify): forRoutes middleware ending slash by @kamilmysliwiec in https://github.com/nestjs/nest/pull/17138 **Full Changelog**: https://github.com/nestjs/nest/compare/v11.1.26...v11.1.27 ### v11.1.26 - Date: 2026-06-08 - Version: v11.1.26 - Original notes: https://github.com/nestjs/nest/releases/tag/v11.1.26 - Permalink: https://whatsnew.fyi/product/nestjs/releases/v11.1.26 - **fixed** — post sse endpoint empty response ##### What's Changed * fix(core): post sse endpoint empty response #17098 by @kamilmysliwiec in https://github.com/nestjs/nest/pull/17099 **Full Changelog**: https://github.com/nestjs/nest/compare/v11.1.25...v11.1.26 ### v11.1.25 - Date: 2026-06-08 - Version: v11.1.25 - Original notes: https://github.com/nestjs/nest/releases/tag/v11.1.25 - Permalink: https://whatsnew.fyi/product/nestjs/releases/v11.1.25 - **fixed** — Reject pending Redis requests on close in microservices - **fixed** — Register SSE close listener before async setup in core - **fixed** — Remove pathname ending slash in platform-fastify ##### What's Changed * fix(microservices): reject pending Redis requests on close by @yudin-s in https://github.com/nestjs/nest/pull/17024 * fix(core): register SSE close listener before async setup by @fallintoplace in https://github.com/nestjs/nest/pull/17018 * fix(platform-fastify): remove pathname ending slash by @kamilmysliwiec in https://github.com/nestjs/nest/pull/17094 ##### New Contributors * @fallintoplace made their first contribution in https://github.com/nestjs/nest/pull/17018 * @DucMinhNe made their first contribution in https://github.com/nestjs/nest/pull/17085 * @iambeaukim made their first contribution in https://github.com/nestjs/nest/pull/17091 **Full Changelog**: https://github.com/nestjs/nest/compare/v11.1.24...v11.1.25 ### v11.1.24 - Date: 2026-05-25 - Version: v11.1.24 - Original notes: https://github.com/nestjs/nest/releases/tag/v11.1.24 - Permalink: https://whatsnew.fyi/product/nestjs/releases/v11.1.24 - **fixed** — Reset dependency-tree cache on metadata changes - **added** — Warn on late websocket adapter registration ##### v11.1.24 (2026-05-25) ###### Bug fixes * `core` * [#17009](https://github.com/nestjs/nest/pull/17009) fix(core): reset dependency-tree cache on metadata changes ([@puneetdixit200](https://github.com/puneetdixit200)) ###### Enhancements * `core` * [#16997](https://github.com/nestjs/nest/pull/16997) feat(core): warn on late websocket adapter registration ([@hbinhng](https://github.com/hbinhng)) ###### Dependencies * `platform-ws` * [#17011](https://github.com/nestjs/nest/pull/17011) chore(deps): bump ws from 8.20.1 to 8.21.0 ([@dependabot[bot]](https://github.com/apps/dependabot)) ###### Committers: 2 - Nguyễn Hải Bình ([@hbinhng](https://github.com/hbinhng)) - Puneet Dixit ([@puneetdixit200](https://github.com/puneetdixit200)) ### v11.1.23 - Date: 2026-05-21 - Version: v11.1.23 - Original notes: https://github.com/nestjs/nest/releases/tag/v11.1.23 - Permalink: https://whatsnew.fyi/product/nestjs/releases/v11.1.23 - **fixed** — Fix snapshot: true to not eagerly instantiate Terminus transient indicators since 11.1.20 ##### v11.1.23 (2026-05-21) ###### Bug fixes * `core` * https://github.com/nestjs/nest/issues/16998 fix snapshot: true eagerly instantiates Terminus transient indicators since 11.1.20 ###### Committers: 1 - Kamil Mysliwiec ([@kamilmysliwiec](https://github.com/kamilmysliwiec)) ### v11.1.22 - Date: 2026-05-21 - Version: v11.1.22 - Original notes: https://github.com/nestjs/nest/releases/tag/v11.1.22 - Permalink: https://whatsnew.fyi/product/nestjs/releases/v11.1.22 - **fixed** — Fix inflight request injection bug in core - **changed** — Improve error message to identify decorator type in invalid-class-module error ##### v11.1.22 (2026-05-21) ###### Bug fixes * `core` * [#16993](https://github.com/nestjs/nest/pull/16993) fix(core): inflight request injection bug #16989 ([@kamilmysliwiec](https://github.com/kamilmysliwiec)) ###### Enhancements * `core` * [#16967](https://github.com/nestjs/nest/pull/16967) fix(core): identify decorator type in invalid-class-module error ([@HarrierOnChain](https://github.com/HarrierOnChain)) * ###### Committers: 2 - Harrier ([@HarrierOnChain](https://github.com/HarrierOnChain)) - Kamil Mysliwiec ([@kamilmysliwiec](https://github.com/kamilmysliwiec)) ### v11.1.21 - Date: 2026-05-14 - Version: v11.1.21 - Original notes: https://github.com/nestjs/nest/releases/tag/v11.1.21 - Permalink: https://whatsnew.fyi/product/nestjs/releases/v11.1.21 - **fixed** — settle skipped provider initialization in core ##### v11.1.21 (2026-05-14) ###### Bug fixes * `core` * [#16948](https://github.com/nestjs/nest/pull/16948) fix(core): settle skipped provider initialization ([@yudin-s](https://github.com/yudin-s)) ###### Committers: 1 - Serge Yudin ([@yudin-s](https://github.com/yudin-s)) ### v11.1.20 - Date: 2026-05-13 - Version: v11.1.20 - Original notes: https://github.com/nestjs/nest/releases/tag/v11.1.20 - Permalink: https://whatsnew.fyi/product/nestjs/releases/v11.1.20 - **fixed** — Fix deeply nested transient providers resolution - **fixed** — Fix @Sse losing events on complete - **fixed** — Defer SSE writehead until after lifecycle completes - **fixed** — Use strict null check for SSE message id - **fixed** — Fix ServerRMQ crashing at boot when @MessagePattern(undefined) is combined with wildcards: true - **fixed** — Accept zero timestamp in parse date pipe - **fixed** — Deduplicate disconnect listener in bindMessageHandlers for socket.io - **added** — Add return buffers option for binary data in microservices - **added** — Handle RMQ blocked/unblocked connection events - **changed** — Improve filetype validator buffer message - **added** — Add defParamCharset to MulterOptions in platform-express ##### v11.1.20 (2026-05-13) ###### Bug fixes * `core`, `testing` * [#16939](https://github.com/nestjs/nest/pull/16939) fix(core): fix deeply nested transient providers resolution ([@kamilmysliwiec](https://github.com/kamilmysliwiec)) * `core` * [#16861](https://github.com/nestjs/nest/pull/16861) fix(core): fix @Sse losing events on complete ([@MatthiasBrehmer](https://github.com/MatthiasBrehmer)) * [#16753](https://github.com/nestjs/nest/pull/16753) fix(core): defer sse writehead until after lifecycle completes ([@jkalberer](https://github.com/jkalberer)) * [#16782](https://github.com/nestjs/nest/pull/16782) fix(core): use strict null check for SSE message id ([@burhanharoon](https://github.com/burhanharoon)) * `microservices` * [#16850](https://github.com/nestjs/nest/pull/16850) fix(microservices): ServerRMQ crashes at boot when @MessagePattern(undefined) is combined with wildcards: true ([@lavieennoir](https://github.com/lavieennoir)) * `common` * [#16845](https://github.com/nestjs/nest/pull/16845) fix(common): accept zero timestamp in parse date pipe ([@Mysh3ll](https://github.com/Mysh3ll)) * `platform-socket.io` * [#16742](https://github.com/nestjs/nest/pull/16742) fix(socket.io): Deduplicate disconnect listener in bindMessageHandlers ([@fru1tworld](https://github.com/fru1tworld)) ###### Enhancements * `microservices` * [#16676](https://github.com/nestjs/nest/pull/16676) feat(microservices): add return buffers option for binary data ([@Forceres](https://github.com/Forceres)) * [#16826](https://github.com/nestjs/nest/pull/16826) feat(microservices): handle rmq blocked/unblocked connection events ([@thisalihassan](https://github.com/thisalihassan)) * `common` * [#16902](https://github.com/nestjs/nest/pull/16902) fix(common): filetype validator buffer message ([@QusaiAlbonni](https://github.com/QusaiAlbonni)) * `platform-express` * [#16844](https://github.com/nestjs/nest/pull/16844) feat(platform-express): add defParamCharset to MulterOptions ([@starnayuta](https://github.com/starnayuta)) ###### Dependencies * `platform-ws` * [#16941](https://github.com/nestjs/nest/pull/16941) chore(deps): bump ws from 8.20.0 to 8.20.1 ([@dependabot[bot]](https://github.com/apps/dependabot)) ###### Committers: 13 - Ali Hassan ([@thisalihassan](https://github.com/thisalihassan)) - Burhan Haroon⚡ ([@burhanharoon](https://github.com/burhanharoon)) - Dmytro Khyzhniak ([@lavieennoir](https://github.com/lavieennoir)) - Harsh Rathod ([@harshrathod50](https://github.com/harshrathod50)) - IlyaCredo ([@Forceres](https://github.com/Forceres)) - Kamil Mysliwiec ([@kamilmysliwiec](https://github.com/kamilmysliwiec)) - Mysh3ll ([@Mysh3ll](https://github.com/Mysh3ll)) - [@MatthiasBrehmer](https://github.com/MatthiasBrehmer) - [@QusaiAlbonni](https://github.com/QusaiAlbonni) - [@jkalberer](https://github.com/jkalberer) - [@pazaderey](https://github.com/pazaderey) - fru1tworld ([@fru1tworld](https://github.com/fru1tworld)) - starnayuta ([@starnayuta](https://github.com/starnayuta)) ### v11.1.19 - Date: 2026-04-13 - Version: v11.1.19 - Original notes: https://github.com/nestjs/nest/releases/tag/v11.1.19 - Permalink: https://whatsnew.fyi/product/nestjs/releases/v11.1.19 - **fixed** — Use backing field for consumer CRASH event listener in microservices - **fixed** — Prevent stack overflow in jsonsocket.handledata() in microservices ##### v11.1.19 (2026-04-13) ###### Bug fixes * `microservices` * [#16762](https://github.com/nestjs/nest/pull/16762) fix(microservices): use backing field for consumer CRASH event listener ([@burhanharoon](https://github.com/burhanharoon)) * [#16764](https://github.com/nestjs/nest/pull/16764) fix(microservices): prevent stack overflow in jsonsocket.handledata() ([@kamilmysliwiec](https://github.com/kamilmysliwiec)) ###### Committers: 2 - Burhan Haroon⚡ ([@burhanharoon](https://github.com/burhanharoon)) - Kamil Mysliwiec ([@kamilmysliwiec](https://github.com/kamilmysliwiec))