Join retry logic ignores receiver_version and fails for VersionUnknown
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 68/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Stale
- Tech stack
- rust
- Domain
- networking
Research direction
Start in rust/loro-websocket-client/src/lib.rs at lines 574-620 and 792-807, comparing the plain join_loro path with the adaptor-based join loop. Trace receiver_version through retry handling and get_alternative_version. Done means both paths retry VersionUnknown responses and use the receiver_version for resynchronization.
Written by the indexing model from the issue text.
Description
rust/loro-websocket-client/src/lib.rs:574-620, rust/loro-websocket-client/src/lib.rs:792-807
- The plain join_loro path returns an error immediately if the server responds with
JoinError::VersionUnknown, so clients never rewind. - The adaptor-based join loop does retry, but it discards the receiver_version field, never handing it to
the adaptor or using it as the next attempt’s version. - Result: reconnects to a server that prunes history fail unless the server still has every update since the
client’s last counter. - Fix: plumb receiver_version into retry logic (and surface it to get_alternative_version). Mirror that
retry in the non-adaptor join_loro path so plain Loro docs also resync correctly.
- Dominant language
- TypeScript
- Stars
- 38
- Forks
- 11
- PR merge metrics
- No merged PRs in 30d
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from loro-dev/protocol
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
-
Difficulty 1/5 Under an hour Newbie friendliness 25/100
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
-
bug
Difficulty 3/5 1-2 days Newbie friendliness 48/100
-
bug
Difficulty 4/5 3-5 days Newbie friendliness 48/100
All issues in loro-dev/protocol
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Eynzof/Hermes-CN-Desktop#610 ·
-
bug clawsweeper:linked-pr-open clawsweeper:needs-live-repro clawsweeper:no-new-fix-pr impact:message-loss issue-rating: 🐚 platinum hermit P2 regression
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
calcite-components needs triage refactor
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Esri/calcite-design-system#15203 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 78/100
fullcalendar/fullcalendar#8106 ·