## nestjs/nest — v12.0.1…v12.0.2

_92 commits._

### Features
- **feat(microservices): add maxConnectionAttempts to ServerMqtt (#17734)** (3824f48)

### Fixes
- **fix: absolute-form middleware bypass (fastify) and unserializable pattern crash (microservices) (#17737)** (e93c8e1)
- **fix(socket.io): keep the message stream alive when a handler throws (#17666)** (4247f6e)
- **fix(deps): update graphql-tools monorepo (#17736)** (4882223)
- **fix(deps): update dependency hbs to v4.3.1 (#17733)** (e310c84)
- **fix(deps): update dependency fastify to v5.12.4 (#17729)** (7c4fd19)
- **fix(deps): update dependency @nestjs/jwt to v12.0.2 (#17732)** (23b6356)
- **fix(microservices): detach signal listeners of connected microservices (#17728)** (b413c2f)
- **fix(deps): update dependency @nestjs/schedule to v12.0.2 (#17727)** (714d62c)
- **fix(deps): update dependency @nestjs/event-emitter to v12.0.1 (#17726)** (c8396a9)
- **fix(microservices): report rpc exceptions thrown from event handlers (#17634)** (02318f0)
- **fix(express): normalize error and not-found prefixes (#17648)** (ab64da7)
- **fix(microservices): reset client state when reconnecting after close (#17691)** (85789c3)
- **fix(microservices): fail requests whose reply subscription is rejected (#17671)** (f5642a6)
- **fix(microservices): call RMQ listen callback once (#17675)** (917aec5)
- **fix(common): support object path segments in issue messages (#17690)** (290ab07)
- **fix(common): Support numeric string values in ParseEnumPipe (#17668)** (02ee6d4)
- **fix(common): collapse duplicate internal slashes in `normalizePath` (#17710)** (1c4d9c4)
- **fix(deps): update dependency typeorm to v1.1.1 (#17659)** (d841b07)
- **fix(deps): update dependency mysql2 to v3.24.4 (#17658)** (63000cb)
- **fix(core): discover factory providers with discovery decorators (#17667)** (1d1dbf7)
- **fix(common): validate UUID v3 variant (#17655)** (a0b14b5)
- **fix(microservices): do not treat foreign JSON as an RPC envelope (#17670)** (b2b555a)
- **fix(common): treat empty string as array input in ParseArrayPipe (#17702)** (2f78be2)
- **fix(core): avoid treating error instances with `statusCode` as http errors (#17709)** (788e886)
- **fix(core): clean up repeated shutdown signal listeners (#17625)** (ddbb455)
- **fix(microservices): don't flatten plain handler results with pre-request hooks (#17644)** (eb65d75)
- **fix(fastify): derive neutral version when accept header is absent (#17705)** (7796520)
- **fix(microservices): run the mqtt listen callback once (#17641)** (1181f74)
- **fix(fastify): send responses for exceptions thrown from middleware (#17699)** (3e149fa)
- **fix(ws): stop discarding parser and handler lookup failures silently** (39fbdda)
- **fix(scripts): stop hiding build failures in the setup scripts** (75958d7)
- **fix(core): Serialize errorCode for plain HttpException responses** (a9bf20b)
- **fix(deps): update dependency zod to v4.5.4** (0ff9d86)
- **fix(core): restore logger after silent lazy module load** (52b5e10)
- **fix(ws): remove the upgrade listener on dispose** (9847b54)
- **fix(deps): update dependency multer to v2.3.0** (1eeccd3)
- **fix(core): correctly discover value providers in discovery service** (9b71cad)
- **fix(common): serialize errorCode in built-in exception responses** (abce26e)
- **fix(deps): update dependency @apollo/subgraph to v2.15.0** (e879be1)
- **fix(deps): update dependency zod to v4.5.2** (c1b0254)
- **fix(core): fix type error in dependencies cast** (24db9f7)
- **fix(core): throw `UndefinedDependencyException` for nil inject entries** (86a7f16)
- **fix(core): do not tune the shared socket for http2 sse responses** (19ad8bf)
- **fix(core): omit connection header on http2 sse responses** (04689f1)
- **fix(core): load deferred forward-ref providers from their host module** (fff4818)
- **fix(deps): update dependency @nestjs/swagger to v12.0.1** (235b47b)
- **fix(deps): update dependency @nestjs/typeorm to v12.0.1** (6312d6a)
- **fix(common): reject null file input in parse-file pipe** (f216411)
- **fix(core): use `isNil` instead of `isUndefined` in provider classifiers** (7f79233)
- **fix(deps): update nest monorepo to v12** (7516c5b)

### Backend
- **sample: upgrade to v12** (a333a9d)

### Tests
- **test(common): cover remaining branches in core and http decorators (#17712)** (88a6886)
- **test(ws): cover the message handler binding failure paths** (1637abb)

### Docs
- **docs(core,common): document the HTTP adapter contract for custom adapters (#17715)** (31a1e50)

### Chore
- **chore(release): publish v12.0.2 release** (ee168a5)
- **chore(deps): update nest monorepo (#17735)** (2ed228c)
- **chore(deps-dev): bump vitest coverage providers to 5.0.0** (26e62a9)
- **chore(deps): update dependency oxlint to v1.83.0 (#17730)** (b433e02)
- **chore(deps): update dependency @types/node to v26.5.1 (#17660)** (9184c83)
- **chore(deps): update dependency typescript-eslint to v8.70.0 (#17663)** (849ec2c)
- **chore(deps-dev): bump vitest from 4.1.11 to 5.0.0 (#17719)** (8afaa09)
- **chore(deps): update dependency @nestjs/schematics to v12.0.1 (#17724)** (319d3ec)
- **chore: add workflow to flag malicious pull request content (#17714)** (8f0d7bb)
- **chore(deps): update dependency oxlint to v1.82.0 (#17662)** (db889fe)
- **chore(deps): update dependency fastify to v5.12.4 (#17725)** (4099e76)
- **refactor(common): extract duplicated strip proto keys into shared util (#17653)** (d098bf9)
- **chore(deps-dev): bump @types/node from 26.4.0 to 26.4.1 (#17721)** (8640de1)
- **chore(deps-dev): bump @fastify/middie from 9.3.3 to 9.3.4 (#17718)** (f4f6d59)
- **chore(deps-dev): bump mysql2 from 3.24.2 to 3.24.3 (#17717)** (fb70f18)
- **chore(deps-dev): bump oxlint from 1.80.0 to 1.81.0 (#17716)** (e2ca9d5)
- **chore(deps): bump fast-uri (#17652)** (08ffaba)
- **chore(deps-dev): bump browserslist from 4.28.2 to 4.28.8 (#17646)** (d29c56d)
- **chore(deps): bump engine.io from 6.6.6 to 6.6.9 (#17643)** (70fed6e)
- **chore(deps): update dependency @types/node to v24.13.4 (#17704)** (f5d6901)
- **chore(deps): bump qs from 6.15.2 to 6.16.0 in /tools/benchmarks (#17654)** (3ed32fe)
- **chore(deps): bump fast-uri in /tools/benchmarks (#17651)** (0d8b669)
- **refactor(core): extract duplicate debug-mode check into shared helper** (783d539)
- **refactor: use Object.hasOwn** (a3a31b9)
- **chore(deps-dev): bump @nats-io/transport-node from 3.3.1 to 3.4.0** (03a81a4)
- **chore(deps-dev): bump @nestjs/mongoose from 11.0.4 to 12.0.0** (85d1aad)
- **chore(deps): update dependency webpack to v5.110.3** (e0bf387)
- **refactor(ws): extract the default message parser to a module constant** (b763af1)
- **refactor(websockets): drop the redundant pattern append in the ws context creator** (536eba5)
- **chore(deps): update dependency tsx to v4.23.13** (4cf4ffa)
- **chore(deps): update dependency webpack to v5.110.2** (6262701)
- **chore(deps): update dependency webpack-cli to v7.2.3** (7f40a4c)
- **chore(deps): update dependency @nestjs/mongoose to v12** (55b2832)
- **chore(deps): update nest-graphql monorepo to v14** (16b21b5)
- **chore(deps): update dependency lint-staged to v17.4.1** (cd5ee12)
- **chore(deps): update dependency webpack to v5.110.1** (1075160)
- **chore(deps): update dependency @types/node to v26.4.0** (5c78b3c)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/nestjs/nest?utm_source=github-action)._