Published 26 November 2025
Improvements
- KTOR-6837 Discrepancies when parsing URL host with CIO and Darwin engines compared to the rest engines
- KTOR-9050 Logging: SimpleLogger should be an object, not a class
- KTOR-9094 Jetty Client: Support HTTP/2 over cleartext (h2c)
- KTOR-9120 OpenAPI gen: missing operationId for KDoc fields
- KTOR-3019 Improve logging for CORS plugin
Bugfixes
- KTOR-8671 Netty: RejectedExecutionException during shutdown on MacOS when dev mode is enabled
- KTOR-9096 Darwin: New SSE handlers stop responding after canceling few SSE sessions
- KTOR-9125 Double ResponseSent invocation when exception is thrown after respond
- KTOR-8878 OpenAPI: StackOverflowError when a response object has property with
@Contextualserializer - KTOR-8947 Java, ContentEncoding: IllegalHeaderNameException is thrown for ":status" pseudo header with HTTP/2
- KTOR-9092 NettyHttp2Handler throws IllegalArgumentException: 'ktor.ApplicationCall' is already in use
- KTOR-8924 Curl: Client sends both Transfer-Encoding and Content-Length headers for DELETE requests with body
- KTOR-8838 Exception handling issue in client cache