fix(conversationlist): Retry conversation sync - #6611
Conversation
|
APK file: https://github.com/nextcloud/talk-android/actions/runs/33525362576/artifacts/9810626068 |
4976d71 to
620f12f
Compare
mahibi
left a comment
There was a problem hiding this comment.
lgtm.
i added a commit for backoff handling.
|
APK file: https://github.com/nextcloud/talk-android/actions/runs/33661377644/artifacts/9859105980 |
…rs on slow networks On a slow/unstable connection (e.g. GPRS), the room-list fetch can fail with a transient error like StreamResetException, which was silently swallowed. On first launch with an empty local cache this left the conversation list blank with no explanation and no way to recover short of restarting the app. Retry the fetch a few times to ride out transient failures, and only when retries are exhausted and there is nothing cached locally to show, surface the error through the existing error-dialog UI so the user knows the sync failed. Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
…retries Retrying immediately on a slow/unstable connection tends to hit the same transient failure again right away. Wait between retry attempts, backing off exponentially (1s, 2s, 4s, capped at 8s) instead of retrying instantly. Assisted-by: Claude Code:claude-sonnet-5 Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
620f12f to
fef1491
Compare
|
/backport to stable-25.0.x |
|
APK file: https://github.com/nextcloud/talk-android/actions/runs/33726231217/artifacts/9882508131 |
fix(conversationlist): Retry conversation sync and surface fetch errors on slow networks
On a slow/unstable connection (e.g. GPRS), the room-list fetch can fail with a transient error like StreamResetException, which was silently swallowed. On first launch with an empty local cache this left the conversation list blank with no explanation and no way to recover short of restarting the app.
Retry the fetch a few times to ride out transient failures, and only when retries are exhausted and there is nothing cached locally to show, surface the error through the existing error-dialog UI so the user knows the sync failed.
🏁 Checklist
/backport to stable-xx.x🤖 AI (if applicable)