kotlinx.coroutines v1.11.0 Release Notes
Release Date: 2026-05-08 // 2 months ago-
Various
- โก๏ธ Kotlin was updated to 2.2.20 (#4545).
- ๐ Improved the published jar files (#3842, #4599).
- ๐ Various documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (#4433, #4596).
๐ฅ Breaking changes and deprecations
- ๐ Moved
Promise-related functions from JS and Wasm/JS to the newwebtarget. On Wasm/JS, this is a breaking change. Before the change,Promiseon Wasm/JS could work with arb
itrary Kotlin types, but now, onlyJsAnysubtypes are accepted (#4563). - ๐ Changed handling of coroutine exceptions that can't be propagated on JS and Wasm/JS. B
efore, exceptions were logged, but now, they are reported to the JS runtime (#4451, #4631). - ๐ Deprecated using
CoroutineDispatcheras the coroutine context key; now,ContinuationInterceptorhas to be used instead (#4333). - โ
Advanced the deprecation levels on
kotlinx-coroutines-testAPIs (#4604). - โ Added lint functions that mark passing a
Jobto coroutine builders as deprecated (#4435).
๐ Bug fixes and improvements
- โ Added a
callsInPlace(EXACTLY_ONCE)contract torunBlockingin code shared between JVM and Native (#4368). - โ Added a
callsInPlace(EXACTLY_ONCE)contract tosuspendCancellableCoroutine(#4574). - ๐ Fixed
flowOnincorrectly handlingThreadContextElementupdates (#4403). - ๐ Fixed exceptions in user-supplied
Thread.UncaughtExceptionHandlerinstances causing the internal coroutines machinery to fail (#4516). - ๐ Fixed
CoroutineDispatcher.asSchedulerin the RxJava integration not cancelling outstanding work when aWorkergets cancelled, which led to memory leaks in some scenarios (#4615). - ๐ Fixed
SharedFlowentering an invalid state when a subscriber and an emitter are cancelled simultaneously (#4583). - ๐ Fixed an R8 optimization leading to
shareIn/stateIncoroutines getting garbage-collected (#4646). Thanks, @solevic!
Small additions
- โ Added
CompletableDeferred.asDeferredfor obtaining a read-onlyDeferredview (#4408). - โ Added
SharedFlow.asFlowfor obtaining aFlowview with hidden hot flow semantics (#4530). Thanks, @g000sha256! - โ Added a
StateFlow.collectLatestoverload returningNothingto assist with finding unreachable code (#4454). - โ Added
ReceiveChannel.consumeTofor consuming aReceiveChannelinto aMutableCollection(#4520). - โ Added a
StateFlow<T>.onSubscriptionoverload returning aStateFlow<T>, similar toSharedFlow<T>.onSubscriptionreturningSharedFlow<T>(#4275). Thanks, @xit0c! - โ Added terminal
Flowoperators for collecting aFlowto aMap(#1541).
๐ Changelog relative to version 1.11.0
No changes, only the version is increased.
Previous changes from v1.11.0-rc02
-
โช Restored binary compatibility with 1.10.2 and older versions on Wasm/JS for usages of
Promise-related functions (#4661).