Build issue with .cancellable effect

This sample fails to build on TCA 1.22.3


import ComposableArchitecture

@Reducer
struct TestReducer {
    @ObservableState
    struct State: Equatable {
        var counter: Int
    }
    
    enum Action {
        case task
        case countUp
    }
    
    @Dependency(\.date) var date
    @Dependency(\.continuousClock) var clock

    enum CancelID { case wakeup }
    
    var body: some Reducer<State, Action> {
        Reduce { state, action in
            switch action {
            case .task:
                return .run { send in
                    try await self.clock.sleep(for: .seconds(1))
                    await send(.countUp)
                }
                .cancellable(id: CancelID.wakeup)
                
            case .countUp:
                return .none
            }
        }
    }
}

with error: Main actor-isolated conformance of 'TestReducer.CancelID' to 'Hashable' cannot satisfy conformance requirement for a 'Sendable' type parameter

any ideas what’s going on?

Adding nonisolated to the CancelID declaration fixed the issue.
nonisolated enum CancelID { case wakeup }
Since this enum doesn’t actually capture any actor-isolated state, marking it as nonisolated removes the @MainActor isolation and allows it to satisfy the Sendable requirement.