Skip to content

fix(signaling): rejoin with a fresh session on 'no_such_room' rejection#18524

Open
Antreesy wants to merge 1 commit into
mainfrom
fix/noid/network-change-session
Open

fix(signaling): rejoin with a fresh session on 'no_such_room' rejection#18524
Antreesy wants to merge 1 commit into
mainfrom
fix/noid/network-change-session

Conversation

@Antreesy

@Antreesy Antreesy commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

β˜‘οΈ Resolves

  • Ref (and partial fix) for Laptop resume after suspend overnight sometimes doesn't recover automatically.Β #9382
    • When client reconnect to HPB after a network change, both HPB and PHP sessions might be expired
    • HPB opens a new websocket gracefully, but nothing triggers PHP session to be established again
    • HPB then rejects the room join with a "no_such_room" error.
    • Handle by dispatching server request to join conversation similar to useActiveSession.js logic

Reproduction steps:

  • Join room as userA and userB
  • Put userA to offline (Devtools > Network or on a hardware level)
  • Wait for ~3 minutes, then re-join room as userB
  • This should trigger expiring of userA session (removed from DB oc_talk_sessions, HPB sends users left)
  • Put userA back online

Results without this PR:

  • PHP session no longer exists, joining call failed, no signaling messages received for the room (e.g. typing indicator)

Results with this PR:

  • Brief interruption to reconnect, error toast indicating
  • PHP session renewed, joining call works, signaling messages work

AI (if applicable)

  • The content of this PR was partly or fully generated using AI
    • Assisted-by: ClaudeCode:claude-opus-4-8

Tasks:

  • [Not reproduced] If PHP session still alive, but HPB refreshed, it might open a new room session? E.g. call can be joined, but userA won't see userB

πŸ–ŒοΈ UI Checklist

🏁 Checklist

  • 🌏 Tested with different browsers / clients:
    • Chromium (Chrome / Edge / Opera / Brave)
    • Firefox
    • Safari
    • Talk Desktop
    • Integrations with Files sidebar and other apps
    • Not risky to browser differences / client
  • πŸ–ŒοΈ Design was reviewed, approved or inspired by the design team
  • ⛑️ Tests are included or not possible
  • πŸ“— User documentation in https://github.com/nextcloud/documentation/tree/master/user_manual/talk has been updated or is not required

- When client reconnect to HPB after a network change, both HPB and PHP sessions might be expired
- HPB opens a new websocket gracefully, but nothing triggers PHP session to be established again
- HPB then rejects the room join with a "no_such_room" error.
- Handle by dispatching server request to join conversation similar to useActiveSession.js logic

Assisted-by: ClaudeCode:claude-opus-4-8
Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
@Antreesy Antreesy added this to the β›… Next Major (35) milestone Jul 3, 2026
@Antreesy Antreesy self-assigned this Jul 3, 2026
@Antreesy Antreesy added bug feature: signaling πŸ“Ά Internal and external signaling backends feature: frontend πŸ–ŒοΈ "Web UI" client AI assisted This PR contains AI-assisted commits labels Jul 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

AI assisted This PR contains AI-assisted commits bug feature: frontend πŸ–ŒοΈ "Web UI" client feature: signaling πŸ“Ά Internal and external signaling backends

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant