element-hq / element-x-android

Android Matrix messenger application using the Matrix Rust Sdk and Jetpack Compose
GNU Affero General Public License v3.0
1.01k stars 137 forks source link

App crash when joing specific room #415

Closed Freezlex closed 1 year ago

Freezlex commented 1 year ago

Steps to reproduce

  1. Join #gomuks:maunium.net from a client other than Element X Android
  2. Open Element X Android and login with the same user and wait

Outcome

What did you expect?

The application should load all the rooms that the user has joined.

What happened instead?

The application seems to load indefinitely before crashing.

This error occurs when a room contains a dash - in its URL :

xception: java.lang.IllegalStateException: `!gomuks-v10:maunium.net` is not a valid room id.
      Example room id: `!room_id:domain`.
        at io.element.android.libraries.matrix.api.core.RoomId.constructor-impl(RoomId.kt:27)
        at io.element.android.libraries.matrix.impl.room.RoomSummaryDetailsFactory.create(RoomSummaryDetailsFactory.kt:33)
        at io.element.android.libraries.matrix.impl.room.RustRoomSummaryDataSource.buildRoomSummaryForIdentifier(RustRoomSummaryDataSource.kt:189)
        at io.element.android.libraries.matrix.impl.room.RustRoomSummaryDataSource.buildSummaryForRoomListEntry(RustRoomSummaryDataSource.kt:177)

Your phone model

No response

Operating system version

Android 11.0

Application version and app store

No response

Homeserver

matrix.org

Will you send logs?

No

Are you willing to provide a PR?

Yes

speatzle commented 1 year ago

I am also Experiencing this Issue.

Applying the Patch from the Closed PR #416 Fixes the Problem for me.

Here is my Log:

2023-05-31 16:39:07.749 11469-12120 RustRoomSu...DataSource io.element.android.x.debug           V  ApplyDiff: Set(index=16, value=Filled(roomId=!whatsapp-v10:maunium.net)) for list with size: 250
2023-05-31 16:39:07.774 11469-12121 VectorUnca...ionHandler io.element.android.x.debug           V  Uncaught exception: java.lang.IllegalStateException: `!whatsapp-v10:maunium.net` is not a valid room id.
                                                                                                     Example room id: `!room_id:domain`.
2023-05-31 16:39:07.776 11469-12121 VectorUnca...ionHandler io.element.android.x.debug           E  FATAL EXCEPTION ElementX Version : 1.0Phone : Pixel 4a (2023052900 13 REL)
                                                                                                    Memory statuses 
                                                                                                    usedSize   32 MB
                                                                                                    freeSize   33 MB
                                                                                                    totalSize   65 MB
                                                                                                    Thread: DefaultDispatcher-worker-7, Exception: java.lang.IllegalStateException: `!whatsapp-v10:maunium.net` is not a valid room id.
                                                                                                     Example room id: `!room_id:domain`.
                                                                                                        at io.element.android.libraries.matrix.api.core.RoomId.constructor-impl(RoomId.kt:27)
                                                                                                        at io.element.android.libraries.matrix.impl.room.RoomSummaryDetailsFactory.create(RoomSummaryDetailsFactory.kt:33)
                                                                                                        at io.element.android.libraries.matrix.impl.room.RustRoomSummaryDataSource.buildRoomSummaryForIdentifier(RustRoomSummaryDataSource.kt:188)
                                                                                                        at io.element.android.libraries.matrix.impl.room.RustRoomSummaryDataSource.buildSummaryForRoomListEntry(RustRoomSummaryDataSource.kt:176)
                                                                                                        at io.element.android.libraries.matrix.impl.room.RustRoomSummaryDataSource.applyDiff(RustRoomSummaryDataSource.kt:146)
                                                                                                        at io.element.android.libraries.matrix.impl.room.RustRoomSummaryDataSource.access$applyDiff(RustRoomSummaryDataSource.kt:47)
                                                                                                        at io.element.android.libraries.matrix.impl.room.RustRoomSummaryDataSource$init$1$2$1.invoke(RustRoomSummaryDataSource.kt:71)
                                                                                                        at io.element.android.libraries.matrix.impl.room.RustRoomSummaryDataSource$init$1$2$1.invoke(RustRoomSummaryDataSource.kt:70)
                                                                                                        at io.element.android.libraries.matrix.impl.room.RustRoomSummaryDataSource$updateRoomSummaries$2.invokeSuspend(RustRoomSummaryDataSource.kt:198)
                                                                                                        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
                                                                                                        at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
                                                                                                        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137)
                                                                                                        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637)
                                                                                                        at java.lang.Thread.run(Thread.java:1012)
                                                                                                        Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@cf99c12, Dispatchers.IO]
2023-05-31 16:39:07.785 11469-12121 AndroidRuntime          io.element.android.x.debug           E  FATAL EXCEPTION: DefaultDispatcher-worker-7
                                                                                                    Process: io.element.android.x.debug, PID: 11469
                                                                                                    java.lang.IllegalStateException: `!whatsapp-v10:maunium.net` is not a valid room id.
                                                                                                     Example room id: `!room_id:domain`.
                                                                                                        at io.element.android.libraries.matrix.api.core.RoomId.constructor-impl(RoomId.kt:27)
                                                                                                        at io.element.android.libraries.matrix.impl.room.RoomSummaryDetailsFactory.create(RoomSummaryDetailsFactory.kt:33)
                                                                                                        at io.element.android.libraries.matrix.impl.room.RustRoomSummaryDataSource.buildRoomSummaryForIdentifier(RustRoomSummaryDataSource.kt:188)
                                                                                                        at io.element.android.libraries.matrix.impl.room.RustRoomSummaryDataSource.buildSummaryForRoomListEntry(RustRoomSummaryDataSource.kt:176)
                                                                                                        at io.element.android.libraries.matrix.impl.room.RustRoomSummaryDataSource.applyDiff(RustRoomSummaryDataSource.kt:146)
                                                                                                        at io.element.android.libraries.matrix.impl.room.RustRoomSummaryDataSource.access$applyDiff(RustRoomSummaryDataSource.kt:47)
                                                                                                        at io.element.android.libraries.matrix.impl.room.RustRoomSummaryDataSource$init$1$2$1.invoke(RustRoomSummaryDataSource.kt:71)
                                                                                                        at io.element.android.libraries.matrix.impl.room.RustRoomSummaryDataSource$init$1$2$1.invoke(RustRoomSummaryDataSource.kt:70)
                                                                                                        at io.element.android.libraries.matrix.impl.room.RustRoomSummaryDataSource$updateRoomSummaries$2.invokeSuspend(RustRoomSummaryDataSource.kt:198)
                                                                                                        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
                                                                                                        at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
                                                                                                        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137)
                                                                                                        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637)
                                                                                                        at java.lang.Thread.run(Thread.java:1012)
                                                                                                        Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@cf99c12, Dispatchers.IO]
Freezlex commented 1 year ago

Fixed 🕺