Repository navigation
Next Release - #3914
Merged
Merged
Next Release#3914
Conversation
β¦by mistake Reverts 54c967a, 03f7e17 and 2c66e7c, which were pushed without a review. They come back through a pull request. Co-Authored-By: Claude Opus 5.5 <[email protected]>
## π― Goal Fixes #3903 and the related pagination problems found while testing it. Linear ticket: https://linear.app/stream/issue/RN-471/offline-support-channels-hydrated-from-the-local-db-get-hasprev-false With offline support, channels hydrated from the offline DB could end up with `hasPrev = false` even when the server has older messages, so scrolling up never requests them. The offline DB returns at most 24 messages per channel (`RowNum < 25`). Testing it also showed that the message lists stop paginating after a single failed request and that `MessageFlashList` cannot load older messages when the loaded ones do not fill the screen. ## π Implementation details - Channels loaded from the offline DB can get `hasPrev = false` when the server still has older messages, so scrolling up never loads them. The offline DB returns at most 24 messages per channel and ignores the list's `message_limit`, so the client reads a short cached page as the start of the channel. Fixed in 06e1be3, together with GetStream/stream-chat-js#1958. The offline DB now returns the newest `message_limit` messages per channel (25 when not set), and the client reads that page against the same limit. - The offline DB can show messages with gaps between them. If messages 1-10 were cached in one session and 16-25 in a later one, they show up back to back with 11-15 missing. Fixed in 06e1be3, since only the newest `message_limit` messages are read now. - After a failed request (offline, timeout or w/e), `MessageList` and `MessageFlashList` stop paginating until the number of messages changes. `loadMore`, `loadMoreRecent` and `loadMoreThread` swallow their errors, so the lists treat the failure as a successful load. Fixed in 65b9bf5, so if a load adds nothing the list tries again on the next scroll after a 2 second backoff. - `MessageFlashList` can't load older messages when the loaded ones don't fill the screen, because it only paginates on scroll events and a list that short can't scroll. Fixed in 7e6b5e7 with the same prefill `MessageList` has. ## π¨ UI Changes / ## π§ͺ Testing / ## βοΈ Checklist - [ ] I have signed the [Stream CLA](https://docs.google.com/forms/d/e/1FAIpQLScFKsKkAJI7mhCr7K9rEIOpqIDThrWxuvxnwUq2XkHyG154vQ/viewform) (required) - [x] PR targets the `develop` branch - [ ] Documentation is updated - [ ] New code is tested in main example apps, including all possible scenarios - [ ] SampleApp iOS and Android - [ ] Expo iOS and Android
## π― Goal Linear ticket: https://linear.app/stream/issue/REACT-1472/unhandled-rejection-when-tokenprovider-fails-during-reconnect When the `tokenProvider` rejects while the WebSocket reconnects after an expired token, `stream-chat` lets the rejection escape as an unhandled promise rejection. Integrators can't catch it, and mobile error trackers report it as a crash (e.g. a token refresh in a network dead spot). ## π Implementation details Bumps `stream-chat` to `^9.54.4`, which contains the fix (GetStream/stream-chat-js#1962). A failed refresh is now handled like a failed connect and the reconnect retries with the usual backoff. Bumped in `package/` and the example apps (`SampleApp`, `E2ETestApp`, `ExpoMessaging`, `ExpoChatGPTSample`). No SDK code changes. ## π¨ UI Changes / ## π§ͺ Testing `yarn test:typecheck` and `yarn test:unit` pass. ## βοΈ Checklist - [ ] I have signed the [Stream CLA](https://docs.google.com/forms/d/e/1FAIpQLScFKsKkAJI7mhCr7K9rEIOpqIDThrWxuvxnwUq2XkHyG154vQ/viewform) (required) - [x] PR targets the `develop` branch - [ ] Documentation is updated - [ ] New code is tested in main example apps, including all possible scenarios - [ ] SampleApp iOS and Android - [ ] Expo iOS and Android π€ Generated with [Claude Code](https://claude.com/claude-code)
Next releasesv9.11.19.11.1 (2026-10-29)Bug Fixes
Reverts
[email protected]4.16.4 (2026-10-29)Bug Fixes
|
Contributor
SDK Size
|
Contributor
|
π This PR is included in version 9.11.1 π The release is available on:
Your semantic-release bot π¦π |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
π― Goal
π Implementation details
π¨ UI Changes
iOS
Android
π§ͺ Testing
βοΈ Checklist
developbranch