Skip to content
verdict:

NestJS 12.1.3

digest

note: no summary for this digest release

Digest releases are listed without a summary. The original release notes for this version are below.

release-notesgithub.com/nestjs/nest · 134 lines
  1. ## v12.1.3 (2026-10-12)
  2. #### Bug fixes
  3. * `core`, `microservices`
  4. * [#18111](https://github.com/nestjs/nest/pull/18111) fix(core,microservices): flush buffered logs when initialization fails ([@thekhegay](https://github.com/thekhegay))
  5. * [#17993](https://github.com/nestjs/nest/pull/17993) fix(core,microservices): run transient global enhancers on controllers ([@johnnyhuirilef](https://github.com/johnnyhuirilef))
  6. * `platform-express`
  7. * [#18110](https://github.com/nestjs/nest/pull/18110) fix(express): guard async request hook completion ([@GiHoon1123](https://github.com/GiHoon1123))
  8. * [#17973](https://github.com/nestjs/nest/pull/17973) fix(express): destroy the `StreamableFile` source on client disconnect ([@maxymlyskov](https://github.com/maxymlyskov))
  9. * [#17942](https://github.com/nestjs/nest/pull/17942) fix(express): run wildcard middleware on the bare global prefix path ([@Chaoqi31](https://github.com/Chaoqi31))
  10. * `core`
  11. * [#18104](https://github.com/nestjs/nest/pull/18104) fix(core): fail at startup for request-scoped class global enhancers ([@thekhegay](https://github.com/thekhegay))
  12. * [#18066](https://github.com/nestjs/nest/pull/18066) fix(core): stop silently dropping request-scoped global enhancers ([@OmBhandwaldar](https://github.com/OmBhandwaldar))
  13. * [#18072](https://github.com/nestjs/nest/pull/18072) fix(core): resolve uri versioned exclusions for the not-found handler ([@basteez](https://github.com/basteez))
  14. * [#18075](https://github.com/nestjs/nest/pull/18075) fix(core): normalize slashes when mapping controllers for middleware ([@basteez](https://github.com/basteez))
  15. * [#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))
  16. * [#18025](https://github.com/nestjs/nest/pull/18025) fix(core): end sse streams whose event data cannot be serialized ([@OmBhandwaldar](https://github.com/OmBhandwaldar))
  17. * [#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))
  18. * [#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))
  19. * [#17987](https://github.com/nestjs/nest/pull/17987) fix(core): settle SSE lifecycle on early disconnect ([@jackie-cqz](https://github.com/jackie-cqz))
  20. * [#17986](https://github.com/nestjs/nest/pull/17986) fix(core): commit SSE headers for empty streams ([@jackie-cqz](https://github.com/jackie-cqz))
  21. * [#17978](https://github.com/nestjs/nest/pull/17978) fix(core): preserve explicit null values in reflectable decorators ([@gophersg](https://github.com/gophersg))
  22. * [#17966](https://github.com/nestjs/nest/pull/17966) fix(core): run the shutdown sequence after a failed init ([@kamilmysliwiec](https://github.com/kamilmysliwiec))
  23. * [#17963](https://github.com/nestjs/nest/pull/17963) fix(core): send the expires header on sse responses ([@Mohamed-Elshesheny](https://github.com/Mohamed-Elshesheny))
  24. * [#17953](https://github.com/nestjs/nest/pull/17953) fix(core): honor global prefix exclusions for overlapping versions ([@Chaoqi31](https://github.com/Chaoqi31))
  25. * [#17950](https://github.com/nestjs/nest/pull/17950) fix(core): let a `GET` middleware exclusion cover `HEAD` requests ([@Chaoqi31](https://github.com/Chaoqi31))
  26. * [#17951](https://github.com/nestjs/nest/pull/17951) fix(core): reset the listening state when the application closes ([@Chaoqi31](https://github.com/Chaoqi31))
  27. * [#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))
  28. * [#17947](https://github.com/nestjs/nest/pull/17947) fix(core): treat `VERSION_NEUTRAL` in middleware routes as no version ([@Chaoqi31](https://github.com/Chaoqi31))
  29. * [#17941](https://github.com/nestjs/nest/pull/17941) fix(core): turn off express `x-powered-by` in `useSecurityHeaders()` ([@Chaoqi31](https://github.com/Chaoqi31))
  30. * [#17939](https://github.com/nestjs/nest/pull/17939) fix(core): name dynamic host modules in import error messages ([@Chaoqi31](https://github.com/Chaoqi31))
  31. * [#17940](https://github.com/nestjs/nest/pull/17940) fix(core): isolate nested transient providers injected into properties ([@Chaoqi31](https://github.com/Chaoqi31))
  32. * `microservices`
  33. * [#18108](https://github.com/nestjs/nest/pull/18108) fix(microservices): keep nats status updates alive when a listener throws ([@kamilmysliwiec](https://github.com/kamilmysliwiec))
  34. * [#18100](https://github.com/nestjs/nest/pull/18100) fix(microservices): default server options like the client factory does ([@thekhegay](https://github.com/thekhegay))
  35. * [#18083](https://github.com/nestjs/nest/pull/18083) fix(microservices): match rmq '#' wildcards in any position ([@thekhegay](https://github.com/thekhegay))
  36. * [#18095](https://github.com/nestjs/nest/pull/18095) fix(microservices): fail mqtt requests whose publish fails ([@izg0820](https://github.com/izg0820))
  37. * [#18085](https://github.com/nestjs/nest/pull/18085) fix(microservices): preserve null payloads in kafka tombstone records ([@Hangell](https://github.com/Hangell))
  38. * [#18081](https://github.com/nestjs/nest/pull/18081) fix(microservices): close the connection when the channel close fails ([@hktitof](https://github.com/hktitof))
  39. * [#18071](https://github.com/nestjs/nest/pull/18071) fix(microservices): return the rmq reply publish so failures are handled ([@maxymlyskov](https://github.com/maxymlyskov))
  40. * [#18060](https://github.com/nestjs/nest/pull/18060) fix(microservices): fail redis listen on rejected subscriptions ([@kamilmysliwiec](https://github.com/kamilmysliwiec))
  41. * [#18056](https://github.com/nestjs/nest/pull/18056) fix(microservices): clone the kafka record before serializing ([@Mihir-Rabari](https://github.com/Mihir-Rabari))
  42. * [#18054](https://github.com/nestjs/nest/pull/18054) fix(microservices): do not crash when the redis connection drops ([@maxymlyskov](https://github.com/maxymlyskov))
  43. * [#18043](https://github.com/nestjs/nest/pull/18043) fix(microservices): fail pending kafka request on deserializer error ([@hktitof](https://github.com/hktitof))
  44. * [#18002](https://github.com/nestjs/nest/pull/18002) fix(microservices): wait for the TCP TLS handshake ([@jackie-cqz](https://github.com/jackie-cqz))
  45. * [#17995](https://github.com/nestjs/nest/pull/17995) fix(microservices): survive custom deserializer errors in clients ([@johnnyhuirilef](https://github.com/johnnyhuirilef))
  46. * [#18027](https://github.com/nestjs/nest/pull/18027) fix(microservices): close both kafka client connections when one fails ([@izg0820](https://github.com/izg0820))
  47. * [#18008](https://github.com/nestjs/nest/pull/18008) fix(microservices): unwrap records returned by message handlers ([@johnnyhuirilef](https://github.com/johnnyhuirilef))
  48. * [#18001](https://github.com/nestjs/nest/pull/18001) fix(microservices): wait for both Redis clients to be ready ([@jackie-cqz](https://github.com/jackie-cqz))
  49. * [#18000](https://github.com/nestjs/nest/pull/18000) fix(microservices): ignore stale NATS status events ([@jackie-cqz](https://github.com/jackie-cqz))
  50. * [#17996](https://github.com/nestjs/nest/pull/17996) fix(microservices): preserve MQTT payload options ([@jackie-cqz](https://github.com/jackie-cqz))
  51. * [#17989](https://github.com/nestjs/nest/pull/17989) fix(microservices): suspend incomplete packet timers during backpressure ([@jackie-cqz](https://github.com/jackie-cqz))
  52. * [#17988](https://github.com/nestjs/nest/pull/17988) fix(microservices): cancel pending TCP retries on close ([@jackie-cqz](https://github.com/jackie-cqz))
  53. * [#17972](https://github.com/nestjs/nest/pull/17972) fix(microservices): keep grpc response errors out of the request stream ([@drakeo338](https://github.com/drakeo338))
  54. * [#17957](https://github.com/nestjs/nest/pull/17957) fix(microservices): fail rmq connect and listen on channel setup errors ([@johnnyhuirilef](https://github.com/johnnyhuirilef))
  55. * [#17961](https://github.com/nestjs/nest/pull/17961) fix(microservices): run every event handler when a sibling completes empty ([@johnnyhuirilef](https://github.com/johnnyhuirilef))
  56. * [#17959](https://github.com/nestjs/nest/pull/17959) fix(microservices): fail nats requests on undecodable replies ([@johnnyhuirilef](https://github.com/johnnyhuirilef))
  57. * [#17955](https://github.com/nestjs/nest/pull/17955) fix(microservices): stop rmq client opening two channels on connect ([@johnnyhuirilef](https://github.com/johnnyhuirilef))
  58. * [#17946](https://github.com/nestjs/nest/pull/17946) fix(microservices): answer client-streaming calls that return nothing ([@Chaoqi31](https://github.com/Chaoqi31))
  59. * [#17943](https://github.com/nestjs/nest/pull/17943) fix(microservices): resolve grpc stream calls that complete empty ([@hktitof](https://github.com/hktitof))
  60. * `platform-fastify`
  61. * [#18109](https://github.com/nestjs/nest/pull/18109) fix(fastify): answer the shutdown hooks 503 with fastify's json body ([@kamilmysliwiec](https://github.com/kamilmysliwiec))
  62. * [#18101](https://github.com/nestjs/nest/pull/18101) fix(fastify): honor `return503OnClosing` during the shutdown hooks ([@thekhegay](https://github.com/thekhegay))
  63. * [#18059](https://github.com/nestjs/nest/pull/18059) fix(fastify): reject listen() on an invalid port ([@kamilmysliwiec](https://github.com/kamilmysliwiec))
  64. * [#18053](https://github.com/nestjs/nest/pull/18053) fix(fastify): listen on a socket path ([@johnnyhuirilef](https://github.com/johnnyhuirilef))
  65. * [#17997](https://github.com/nestjs/nest/pull/17997) fix(fastify): settle async lifecycle hooks once ([@jackie-cqz](https://github.com/jackie-cqz))
  66. * [#17998](https://github.com/nestjs/nest/pull/17998) fix(fastify): preserve custom router constraints ([@jackie-cqz](https://github.com/jackie-cqz))
  67. * [#17938](https://github.com/nestjs/nest/pull/17938) fix(fastify): keep the default body parsers after `useBodyParser()` ([@Chaoqi31](https://github.com/Chaoqi31))
  68. * [#17937](https://github.com/nestjs/nest/pull/17937) fix(fastify): count headers flushed on `reply.raw` in `isHeadersSent` ([@Chaoqi31](https://github.com/Chaoqi31))
  69. * `common`
  70. * [#18090](https://github.com/nestjs/nest/pull/18090) fix(common): keep custom decorator data that has schema or pipes keys ([@Ahmad-Mosha](https://github.com/Ahmad-Mosha))
  71. * [#18073](https://github.com/nestjs/nest/pull/18073) fix(common): reject arrays nested in ParseArrayPipe items ([@KAPUIST](https://github.com/KAPUIST))
  72. * [#17999](https://github.com/nestjs/nest/pull/17999) fix(common): collect configurable module alias dependencies ([@jackie-cqz](https://github.com/jackie-cqz))
  73. * [#17983](https://github.com/nestjs/nest/pull/17983) fix(common): isolate file type regexp state ([@jackie-cqz](https://github.com/jackie-cqz))
  74. * [#17982](https://github.com/nestjs/nest/pull/17982) fix(common): preserve parent validation constraints ([@jackie-cqz](https://github.com/jackie-cqz))
  75. * [#17949](https://github.com/nestjs/nest/pull/17949) fix(common): let a redeclared `@Inject()` property replace the parent's ([@Chaoqi31](https://github.com/Chaoqi31))
  76. * [#17944](https://github.com/nestjs/nest/pull/17944) fix(common): keep inherited `@Optional()` properties optional ([@Chaoqi31](https://github.com/Chaoqi31))
  77. * `microservices`, `websockets`
  78. * [#18084](https://github.com/nestjs/nest/pull/18084) fix(websockets, microservices): fallback to 'Error' for minified exception class names ([@korrayt](https://github.com/korrayt))
  79. * `websockets`
  80. * [#18088](https://github.com/nestjs/nest/pull/18088) fix(websockets): copy the options object in the base ws exception filter ([@Mihir-Rabari](https://github.com/Mihir-Rabari))
  81. * [#18089](https://github.com/nestjs/nest/pull/18089) fix(websockets): log scoped gateway resolution errors without a hook ([@basteez](https://github.com/basteez))
  82. * [#18048](https://github.com/nestjs/nest/pull/18048) fix(websockets): pass gateway lifecycle hook errors to exception filters ([@kamilmysliwiec](https://github.com/kamilmysliwiec))
  83. * [#18046](https://github.com/nestjs/nest/pull/18046) fix(websockets): pass the pattern when a scoped handler fails to resolve ([@kamilmysliwiec](https://github.com/kamilmysliwiec))
  84. * [#18044](https://github.com/nestjs/nest/pull/18044) fix(websockets): use the hook name as pattern for request-scoped hooks ([@OmBhandwaldar](https://github.com/OmBhandwaldar))
  85. * [#17985](https://github.com/nestjs/nest/pull/17985) fix(websockets): retain shared contexts during disconnect hooks ([@jackie-cqz](https://github.com/jackie-cqz))
  86. * `common`, `core`, `platform-express`
  87. * [#17923](https://github.com/nestjs/nest/pull/17923) fix(common,core,express): answer method miss on an excluded route ([@thekhegay](https://github.com/thekhegay))
  88. * `platform-ws`
  89. * [#18003](https://github.com/nestjs/nest/pull/18003) fix(ws): default omitted adapter creation options ([@jackie-cqz](https://github.com/jackie-cqz))
  90. * `core`, `websockets`
  91. * [#17979](https://github.com/nestjs/nest/pull/17979) fix(websockets): resolve global scoped enhancers per connection ([@jackie-cqz](https://github.com/jackie-cqz))
  92. * `core`, `testing`
  93. * [#17952](https://github.com/nestjs/nest/pull/17952) fix(core): take the scope of the class in `useClass()` overrides ([@Chaoqi31](https://github.com/Chaoqi31))
  94. #### Enhancements
  95. * `platform-express`, `platform-fastify`
  96. * [#18074](https://github.com/nestjs/nest/pull/18074) feat(express,fastify): add field nesting and array index upload limits ([@KAPUIST](https://github.com/KAPUIST))
  97. #### Docs
  98. * [#18099](https://github.com/nestjs/nest/pull/18099) docs(samples): replace broken api.travis-ci.org badges (Closes [#18091](https://github.com/nestjs/nest/issues/18091)) ([@auroraxo](https://github.com/auroraxo))
  99. #### Dependencies
  100. * `platform-fastify`
  101. * [#18050](https://github.com/nestjs/nest/pull/18050) fix(deps): update dependency @fastify/formbody to v9.0.1 ([@renovate[bot]](https://github.com/apps/renovate))
  102. * [#18051](https://github.com/nestjs/nest/pull/18051) fix(deps): update dependency @fastify/middie to v9.3.5 ([@renovate[bot]](https://github.com/apps/renovate))
  103. * [#18039](https://github.com/nestjs/nest/pull/18039) fix(deps): update dependency @fastify/cors to v11.3.1 ([@renovate[bot]](https://github.com/apps/renovate))
  104. * `platform-socket.io`
  105. * [#18015](https://github.com/nestjs/nest/pull/18015) chore(deps): bump socket.io from 4.8.3 to 4.8.4 ([@dependabot[bot]](https://github.com/apps/dependabot))
  106. #### Committers: 23
  107. - Abdellatif Anaflous ([@hktitof](https://github.com/hktitof))
  108. - Ahmed Gamal ([@Ahmad-Mosha](https://github.com/Ahmad-Mosha))
  109. - Aurora ([@auroraxo](https://github.com/auroraxo))
  110. - Chaoqi ([@Chaoqi31](https://github.com/Chaoqi31))
  111. - Dustin ([@GiHoon1123](https://github.com/GiHoon1123))
  112. - Hangell ([@Hangell](https://github.com/Hangell))
  113. - Johnny J. Huirilef Millán ([@johnnyhuirilef](https://github.com/johnnyhuirilef))
  114. - Kamil Mysliwiec ([@kamilmysliwiec](https://github.com/kamilmysliwiec))
  115. - Lee Jae Hyun ([@izg0820](https://github.com/izg0820))
  116. - Luke Son ([@KAPUIST](https://github.com/KAPUIST))
  117. - Maksym Lyskov ([@maxymlyskov](https://github.com/maxymlyskov))
  118. - Metehan Biçer ([@Metehan-Bicer](https://github.com/Metehan-Bicer))
  119. - Micael Levi L. Cavalcante ([@micalevisk](https://github.com/micalevisk))
  120. - Mohamed-Zakaria ([@Mohamed-Elshesheny](https://github.com/Mohamed-Elshesheny))
  121. - Om Bhandwaldar ([@OmBhandwaldar](https://github.com/OmBhandwaldar))
  122. - Rabari Mihir ([@Mihir-Rabari](https://github.com/Mihir-Rabari))
  123. - RedShapedMoon ([@korrayt](https://github.com/korrayt))
  124. - Roman Khegay ([@thekhegay](https://github.com/thekhegay))
  125. - Tiziano Basile ([@basteez](https://github.com/basteez))
  126. - Younes Beriane ([@drakeo338](https://github.com/drakeo338))
  127. - [@gophersg](https://github.com/gophersg)
  128. - jackie_cqz ([@jackie-cqz](https://github.com/jackie-cqz))
  129. - Žan Mlakar ([@zanmlakar](https://github.com/zanmlakar))

view on githubdetected 2026-10-13 via npm