Да, существуют.
Примеры таких случаев:
isActive только при приостановке (suspending). Если задача не приостанавливается (например, долгий цикл или математические вычисления), она не увидит запрос на отмену.CancellationException). Корутина может завершиться, но родительская корутина или менеджер задач не узнают о её отмене, и ресурсы могут не быть освобождены корректно.Dispatchers.Unconfined или диспетчера с пулом потоков, который не поддерживает Cooperative Cancellation. Хотя CancellationException все равно будет выброшено, поведение может быть непредсказуемым.InputStream в цикле без использования withContext(Dispatchers.IO) и приостанавливающих методов). Блокирующая операция не проверяет состояние корутины и не выбрасывает CancellationException.Для кооперативной отмены корутина должна:
Cooperative Cancellation (например, Dispatchers.Default, Dispatchers.IO, Dispatchers.Main).isActive или использовать приостанавливающие функции, которые делают это за неё.CancellationException.