- Currently, as a part of [RTL5](https://sdk.ably.com/builds/ably/specification/main/features/#RTL5), [we only check for initialized, attaching, detaching and detached states](https://github.com/ably/ably-java/blob/dc4d464ed73084e1276eeccb20ba994472a112f7/lib/src/main/java/io/ably/lib/realtime/ChannelBase.java#L314). - We are missing cases for the channel `suspended` and `failed` states, [RTL5b](https://sdk.ably.com/builds/ably/specification/main/features/#RTL5b) and [RTL5j](https://sdk.ably.com/builds/ably/specification/main/features/#RTL5j). - We have complete implementation for the same in case of [ably-go detach.](https://github.com/ably/ably-go/blob/a81632dfeb26bd545232674622463e5709d42e03/ably/realtime_channel.go#L429) - These checks are needed as a part of [chat-kotlin-room-lifecycle internal rollbacks](https://github.com/ably-labs/ably-chat-kotlin/issues/6). - Ideally, should also check for inconsistent connection states, CLOSING or FAILED as per [RTL5g](https://sdk.ably.com/builds/ably/specification/main/features/#RTL5g) - Need to add unit tests for the same. ┆Issue is synchronized with this [Jira Task](https://ably.atlassian.net/browse/ECO-5117) by [Unito](https://www.unito.io)