In [3.5.0](https://github.com/typelevel/cats-effect/releases/tag/v3.5.0) there was a breaking semantic change to `async`/`async_`: > As of 3.5.0, the following is now considered to be uncancelable: > > ```IO.async[A] { cb => > IO { > // ... > None // we aren't returning a finalizer > } > } > ``` > > Previously, the above was cancelable without any caveats. Notably, this applies to all uses of the async_ constructor! There are no new laws to ensure this behavior, a build updating to 3.5.1 [passes](https://github.com/7mind/izumi/pull/1976) without having to [add uncancelability](https://github.com/7mind/izumi/blob/80f6417fafab697aa635cbd27c9906e8bae11f5d/fundamentals/fundamentals-bio/src/main/scala/izumi/functional/bio/CatsConversions.scala#L528) to the implemenation of `async`. I think this may be a potential footgun for any third-party implementors of CE typeclasses if the laws don't specify this behavior.