Last 7 days
1
Features: 0
Changes: 0
Fixes: 1
Deprecations: 0
Fast and low-overhead web framework for Node.js services.
Latest Fastify changelog updates, official release notes, breaking changes, security patches, pricing changes, and developer reactions in one product feed.
Follow this Fastify release-notes page to spot useful features, risky migrations, noisy announcements, and source links before they hit your backlog.
Changes.Watch links back to official changelog and release-note sources so summaries stay easy to verify.
Use channels to follow groups of tools around a stack, workflow, or topic.
Rolling windows show how many product updates landed in the last 7, 30, 90, and 365 days, grouped by existing changelog semantics.
1
6
8
22
Fix for two Fastify security advisories (GHSA‑w2qp‑rph6‑63g4 and GHSA‑3m5p‑2c4r‑xxw2).
Added per‑route logging for Google Cloud Functions and introduced `Reply.prototype.mediaType` for easier content‑type handling.
Fixed trailer state clearing when removing all trailers and corrected requestCompleted handling to use null instead of undefined.
Minor updates and bug fixes
Added a warning for HTTP method overrides and clarified attachValidation behavior in docs.
Added RFC 10008 HTTP query method support to Fastify.
Introduce a log controller layer for unified logging management
- Added request.mediaType support, onMaxParamLength option, and allowed request.getValidationFunction() to return undefined; new sponsor entries in ecosystem docs
Security release patching CVE‑2026‑33806.
No detailed changelog entries are provided for v5.8.4
Patched critical CVE‑2026‑3635 security vulnerability.
Updated ecosystem documentation by adding the @yeliex/fastify problem-details plugin, fastify file router, Svelte view, and community plugin listings.
Patch security vulnerability where malformed content types could bypass validation due to a missing end anchor in subtypeNameReg
Added first‑class handler‑level timeout support, async route‑hook handling, and Pino v9/v10 compatibility; fixed shared routerOptions mutation.
No specific changes are listed in the provided text.
Fixed CVE‑2026‑25224 security vulnerability.
Enforced strict RFC 9110 parsing for the Content‑Type header, potentially breaking non‑compliant usage
Upgrade actions/checkout from version 5 to 6
Added conditional request logging, a custom compiler for faster loading, and switched to the native WebStream API for improved performance.
Refactored source file names to kebab‑case and moved options processing to a dedicated function.
Fixed typo in deprecation warning and corrected TypeScript documentation inconsistency.
Added TypeScript types for router options and updated pino type to use `Pick`.
Added extensive TypeScript enhancements: more schema‑related types, missing error types, reply status code typing via type providers, and moved router options to a dedicated key.
Add configurable error‑handler override feature
Updated various documentation sections, including Vercel guide, ecosystem plugins, and error‑handler warnings
Fix for invalid content type parsing that could allow validation bypass.
Fixed edge case in content type parsing by treating spaces as delimiters, fully addressing CVE‑2025‑32442
🔒 Security fix for invalid content‑type parsing that could bypass validation (CVE‑2025‑32442).
Fixed wrong reply return type and cleared internal readyPromise for improved garbage collection.
Added async callback warning for `fastify.listen` and refined build path handling.
Updated docs to clarify request host handling and fixed a typo
Migrated most test files from tap to the built‑in node:test runner and standardized file naming conventions.
Added body parsing for COPY/MOVE/MKCOL methods and support for different body schemas per content type.
Migrated the entire test suite from tap to the built‑in node:test runner, adding new test runner features and updating related documentation
Breaking changes: added req.hostname and req.port, removed variadic listen methods and JSON shorthand, and tightened decorator type rules.
Fixed server.listen listener cleanup issue.
Fixed pipeline closing issue.
Added new HTTP methods (WebDAV body‑parsing methods, mkcalendar/report) and features like disabling request logging and handling synchronous errors in errorHandler.
Fixed multiple bugs: typo in module exports, callback error in fallbackErrorHandler, test failure, and missing DB connection code in migration docs.
Added Fastify Hana to community plugins list and updated documentation (including tracing warnings and a deprecation warning fix).
Added new APIs: expose findRoute and param validator, setGenReqId method, semicolon-delimited config option, and Web Stream API support.
Fixed npm test:watch command behavior
Fix route constraints handling
Improved typings for RouteShorthandOptions (constraints) and added async/callback style warnings for plugins, plus Uint8Array payload support in reply.send.
Fix timeout issue in CITGM tests
Fix build errors that occur when Symbol.asyncDispose type is not available.
Fix citgm issue
Added Symbol.asyncDispose to improve developer experience for short‑lived servers.
Added `routeOptions.schema` to Fastify TypeScript type definitions.
Fix warning messages for request.routerPath and request.routerMethod.
Added onListen hook and support for accessing handler name with route option properties
Removed an accidental test run result file from the package.
Fixed regression in handling async POST requests with empty bodies.
Fixed plugin tracking (hasPlugin) and prevented double responses when requests are destroyed.
Removed unused license checker and pump devDependencies.
Added new configuration options: childLoggerFactory, IPv6 ::1 listening origin, and allowUnsafeRegex type definition.
Fixed TypeScript route config typing to exclude url and method parameters.
Fix typo in TypeScript documentation
Added new request property `originalUrl`, exposed `pluginName` on FastifyInstance, introduced type narrowing for status().send() chains and stricter `decorate()` validation.
Added new immutable `listeningOrigin` property, async validation support, typed‑array body handling, and allowed lowercase HTTP methods when registering routes.
Added missing error codes to framework errors.
No specific change details provided in the prompt; refer to the full changelog link for complete information.
Incremental patch release to v4.16.2.
Patch release v4.16.1
Added new plugins (fastify-koa, fastify-redis-session) plus async hooks signature on routes and a preClose hook; also support for custom startup log text.
Added internal tree usage and exposed `prettyPrint` method parameter for improved pretty‑printing (feature)
Added Bun lockfile entry to .gitignore
Added onRequestAbort hook and new features: origin error messages in serialization errors and logging of refused requests.
Updated and expanded documentation, including client abort detection and numerous ecosystem plugin guides
Added fast content type parsing and nodenext compatibility support
Replace the PEM dependency with @climba03003 and switch to fast-content-type parsing
Fixed logger registration with custom logger and made res.statusCode optional, preventing re‑thrown error crashes.
Fixed incorrect Content-Type parsing that could enable CSRF attacks
Fixed incorrect content type parsing that could enable CSRF attacks
Fixed node 19.1.0 port validation test
Added async trailer support, request.routeOptions object, and typed reply content types via TypeProvider
Added missing context type definitions to improve TypeScript support.
Updated documentation: added reply stream content type info, fixed reference grammar, and added example for decorator dependencies
Added support for multiple response content types and ensured default schema compilers are called
Backport security fixes from advisory GHSA‑455w‑c45v‑86rg to the v3.x line (v3.29.3).
Fixes high severity security vulnerability (CVE‑2022‑39288) that could cause crashes and total loss of availability.
Fix GitHub URL for fastify‑qs package
Added support for HTTP SEARCH request bodies and introduced routeSchema/routeConfig handling.
Introduced `hasRoute` API and made the `listen` signature variadic, allowing string ports.
Backported fix for the reused connection issue.
Updated ecosystem.md to move fastify secure session and fastify soap client to core plugins.
Fix issue #4204 reported in the repository
Set preSerialization hooks to null by default to avoid unintended behavior.
Added the fastify‑osm plugin and an option to disable or ignore the request‑id header.
Added WebDAV HTTP methods and updated Fastify logger to use pino.BaseLogger as the main interface.
Expose validate and serialize functions on Request and Reply objects (new feature).
Introduced the official TypeORM Fastify plugin, added to the ecosystem list.
Updated documentation to reference new @fastify/ modules.
Added statusCode to all validation errors and fixed schema reference resolution using AJV.
Added feature: reply.redirect() and reply.callNotFound() now return the reply object.
Fixed Fastify.listen when using a path to prevent unintended port listening
Fixed error serializer test and disallowed reply status code 600.
Updated CI concurrency configuration and added markdown linting
- Fastify v4 introduces breaking changes: drops Node 12 support, removes flatstrt, deprecates the variadic listen method, changes default reply.sent handling and content‑type coercion for streams, among other API adjustments.
Update fastify error dependency.
Added support for custom Context Config types on hook request properties.
Fixed compatibility with Node.js v18 and master branch.
Removed the @typescript-eslint/no-misused-promises rule from the linting configuration.
Fixed several runtime issues: added jsonShorthand option, prevented uncaught exceptions from reply.callNotFound, and corrected plugin labeling and onRegister hook typings.
Fixed documentation links, grammar, and added missing TypeScript types for FastifyInstance methods and the `forceCloseConnections` option.
Added keep‑alive connection tracking to monitor active connections.
Updated documentation including prototype‑poisoning guide and TypeScript formatting fixes
Switches Fastify warnings to use process warnings instead of Fastify's internal warning system.
Improved documentation with small updates.
Added Fastify split validator to the Ecosystem and introduced file routes support
Fixed TypeScript types for setErrorHandler and corrected request dependency checks.
Fixed multiple runtime bugs including HTTPS request timeout handling, maxRequestsPerSocket, logger request serializers, and schema controller usage.
Made the version field deterministic and reliable.
Fixed setSchemaController not inheriting schemas from the root parent
Added `requestTimeout` option for request handling.
Updated NGINX, Validation & Serialization documentation with comments and usage notes
Added a feature to limit the maximum number of requests per socket.
Fixed handling of undefined values during decoration; they are no longer coerced to null
Restricts same shape optimization to only accept null and undefined values
Added and clarified query string handling documentation.
Link the Fastify docs logo to its website
Enforced consistent schema shapes across Fastify instances
Added nginx to Recommendations and async support for FastifyInstance.setErrorHandler
Added new plugins and features: Fastify Appwrite plugin, diagnostics channel publishing at initialization, a Webpack test stack, and TypeScript types for routing.
Enhanced documentation: added Reply generic interface info, session status update, clarified getting started guide, fixed import statement, corrected dead link, and added Fastify allow plugin reference.
Upgrade minimum find-my-way version.
Added new type decorations and extended the content‑type parser support
- Updated documentation: added Fastify form‑diable support, clarified constrained route definitions, http2SessionTimeout, request.context/reply.context, and removed outdated pump reference.
Revert previous change that used path.join to load version, restoring original version loading logic.
Added shorthand schema bypass flag and fastify route group support
Updated documentation for hooks, early hints, server, ecosystem, and content-type parser; added benchmark workflow triggered by label.
Added hook display to `printRoutes` for better insight.
Added an instance property to request/response prototypes.
Resolved PR issues 3099 and 3100
Removed spurious file from the npm package.
Added several TypeScript enhancements: clientErrorHandler definition, serializer request/response types, compilers factory with transient AJV, AJV options support, and decorator dependency type validation.
- Added community OAS Fastify plugin and auto‑generated HTTPS test certificates
Added support for Tap 15.0.1, Node.js 16, and allowed route onSend to accept a function or an array of functions.
Fix documentation link and update docs to reflect changes
Added Fastify Vite integration and updated TypeScript definitions for setNotFoundHandler and default parser
Added serverless environment support, RegExp content‑type parser, and exposed Avvio pretty‑printer for plugin tree visualization
Added initialConfig to FastifyInstance, converted request IDs to base‑36 strings, and introduced constrained route support plus a diagnostics channel plugin entry.
Added route‑level lifecycle hooks and a new schema controller layer, expanding Fastify’s extensibility.
Expose fastify httpHandler and defaultRoute functions, adding hijack support to FastifyReply (new feature).
Fixed warning triggered by the `exposeHeadRoute` route option.
Added automatic HEAD routes for GET, plugin hinting, and preSerialization hook support for custom reply serializers.
Updated the querystringParser type definition and corrected multiple typos in docs and type declarations.
Added support for null values in decorateRequest and decorateReply functions.
Added new features: decorator warning and custom error schema handling.
Added fastify TOTP support, upgraded ESLint TypeScript integration, and switched Fastify GraphQL to Mercurius.
Added ability for custom error handlers to fall back to the default handler and introduced validationContext for custom errors.
Deprecated certain API usages.
Fixed a broken documentation link and refreshed examples and lifecycle documentation with correct status codes.
Added plugin version checks, fastify response caching, prettyPrint logger option, and Node v14.13 named‑export support
Fixed Fastify plugin type exports
Updated core dependencies (undici, light) and added ecosystem plugins (fastify dynareg, fastify guard, Grant) with new core team members.
Bumped TypeScript to 4.0.2 and added router config getters on Request.
Updated autocannon to 6.0.0 (potential breaking change) and added several new features: dynamic plugin imports, CommonJS type support, unWritable logger props, and increased timeout.
Added validationError property, route-level custom error handlers, routePath hook, onTimeout hook, Promise-like Fastify instance, new typings (getSchema/getSchemas), and improved server types.
Fix inject function to return the correct normal value even when the app is not ready.
Removed warnings introduced in version 2418
Update README with author name and fix section order
Updated Server.md documentation and moved a contributor to past contributors list.
Fixed test failures related to security release (PR #2365).
Fix incorrect TypeScript typing for the register() function
Added Netlify Lambda guide, introduced Fastify Firebase plugin (replacing Firestore) and Fastify Prettier to the ecosystem.
- Breaking changes: middleware no longer bundled (requires fastify‑express or middie), schema substitution now uses $ref, setSchemaCompiler/Resolver replaced by setValidatorCompiler, preParsing and content‑type parser signatures updated,...
Default `allErrors` in AJV configuration changed from true to false, preventing a DoS attack vector (breaking change).
Added support to bind error handler to instance (v2).
Adjust HAProxy configuration to resolve issue 2036.
Support builder‑style injection API
Added new ecosystem plugins: Fastify method override, QR code, and Google Cloud Trace API support.
Added configurable onBadUrl callback option and switched to lightweight request typings.
Added new Fastify plugins: esso and axios.
Added several new community plugins (fastify‑casl, secure‑session, typeorm, explorer) and introduced response validation to the ecosystem.
Added multiple new plugins and features: HTTPS redirect, fastify‑qs, auth0 verification, error‑properties plugin, onConstructorPoisoning hook, onSend route hook, and Ajv custom options.
Added Reply.statusCode property to the reply object
Added new plugin support (pluginName), onResponse hook, schema resolver, and made FastifyReply thenable.
Added a plugin for auto‑generating CRUD routes to the ecosystem and updated the Ecosystem documentation
Prevent handler execution when reply.sent is true, fixing redundant processing.
Introduced `return503OnClosing` option for handling closed connections.
Add custom serializer support
Added response time tracking on replies, introduced an RBAC plugin, and aliased schema.query to schema.querystring.
Add .git folder to .npmignore to exclude repository metadata from published packages
Switched to a secure JSON parser (replacing Bourne) and added an option to disable request start/end logging
Added onRequest route hook and fastify‑normalize‑request‑reply plugin for enhanced request handling.
Fix RequestHandler type handling (issue #1539)
Added option to match only prefix root with paths and introduced a schemaCompiler property.
Added multiple new features: expanded listen signatures, onRegister hook, initial config handling, request object now includes ip/ips/hostname, and pluginTimeout option in typings
Added `pluginTimeout` option to the TypeScript declaration file
Fixed unused shared schema serializer issue
Fixed unused shared schema issue affecting serializers
- Adds several new lifecycle hooks (preParsing, preValidation, preSerialization, onError) and moves prefixed properties to Symbols, breaking existing plugins and patterns.
Prevent duplicate JSON schema entries in encapsulated objects during tree processing
Fixes an issue that prevented plugins from overriding the default content type parser.
Added support for custom route versioning strategies.
Demoted ECONNRESET logs to debug level.
Fix response validation error (issue #1328).
Upgrade AJV to the latest version
Pin ajv library to version 6.5.5
Enable nested plugins to override decorators and attach validation results to requests; preserve stack traces on request end
Correct content length calculation for UTF-8 characters
Added full Joi validation support, TypeScript overloads for parseAs, and new generic request types (Query, Params, Headers, Body).
Updated error handling to process promises like normal handlers.
Reverted the fastify file upload integration added in earlier PRs
Introduced `pluginTimeout` option for plugins.
Added Fastify plugins (gateway, CORS, vhost) and listed them in ecosystem docs.
Added a method to retrieve all shared schemas and TypeScript definition for FastifyInstance.all
Added configurable request ID header with case‑insensitivity support and a beforeHandler for setNotFoundHandler (new feature).
Added getter/setter object decoration, .status() alias for .code(), and versioned routes support.
Blocks new incoming requests after close and introduces custom HTTP/HTTPS server support with tests.
Added fastify.hasRequestDecorator and fastify.hasReplyDecorator, plus new TypeScript definitions for onRoute hook and missing headers on FastifyRequest.
Improved promise performance by 10% and set UTF‑8 as the default charset.
Fixed a close bug uncovered by avvio@5.4.3.
Added reply.removeHeader() and made the logger option accept a boolean in TypeScript definitions
Fixed Run onSend hooks when an encapsulated handler invokes the notFound handler.
Improved JSON schema error messages and added handler support in shorthand route options
Corrected encapsulation logic for 404 handlers
Added reply.hasHeader and reply.getHeader methods for header inspection
Mark version 1.0.0 as a Long‑Term Support (LTS) release.
Added request object to custom error handler parameters (breaking change).
Breaking: route 404 errors are now routed to the dedicated 404 handler.
Root Fastify instance is now a plain object (breaking change)
- Breaking changes: payload serialization now occurs before onSend hooks, AJV configuration removed, default listen address switched to 127.0.0.1, avvio upgraded to v5, and Fastify iterator removed.
Upgrade fast-json-stringify to version 0.17.0
Added plugin log level configuration and stream support, with improved error stream logging.
Added new reply utilities (reply.notFound(), buffer support in reply.send), request body size limit option, and automatic logging on server listen.
Plugins now load lazily only when .ready, .inject, or .listen are called (breaking change).
Updated ContentParser API (breaking) and added plugins meta and onSend hook typings
Removed usage of `setImmediate` from the Fastify core
Ensure errors are not silently ignored after parsing a JSON body
Updated pump to the latest version
Corrected 404 response handling for unsupported HTTP methods
Added body parsing support for DELETE requests
Adjusted logging behavior: 5xx responses are now recorded as error level logs.
Update onSend to modify the payload before sending
Expose the default JSON serializer and add Fastify server‑session, Angular‑Universal, and caching to the ecosystem list
Introduce handler context feature (fixes #430).
Bind Fastify instance in hooks (new feature)
Added onSend hook, basic HTTP/2 support, and promise rejection with statusCode/message
Fixed internal route registration and corrected preHandler interface parameter handling
Fixed decorateReply to avoid modifying root objects
Adds support for using the request ID header when it is present.
Upgrade to the new major version of avvio and remove the default logger (breaking change)
- Added optional "logger: false" flag to abstract logging configuration
Updated navigation and 404 error handling
Reduced logging overhead, boosting performance by roughly 5%.
Fixed async handling issue (ID 204).
Fixed async/await handling permanently
Added TypeScript typings, new schemaOptions, headers shortcut validation, and setSchemaCompiler for enhanced schema handling
Refactored lifecycle and upgraded middie to 2.0.0, removing symbol‑based context tracking
- Resolved performance regression when handling large arrays
Updated the copyright notice
Added support for redirects.
Set required Content-Type header on error responses
Fixed bug that prevented proper chaining of routes when a route prefix was set
Updated project dependencies to newer versions.
Updated the close flow and added a preload beforeHandler.
Introduced a route Before handler.
Added support for route prefixing, enabling grouping of routes under a common base path.
Introduce handling for client errors to improve robustness of request processing.
Added response validation based on status code.
Add support for Node.js 8 runtime
Fastify CLI is now bundled directly with Fastify 93
Enhanced integration with the Boom library for improved compatibility
Introduce a standardized error object with Boom support and an extendServerError API
Added ability to inject fake HTTP requests for testing (shot 83).
Implemented a new routing system
Added an exposed logger instance for direct use
Added ability to specify the listening address for the server
Added path alias support to route options
Faster JSON body parsing
Add support for custom parsers
Fixed querystring handling bug (issue #65)
Added an iterator for routes (issue #62).
Improved error handling for more robust operation