nextcloud / nextcloud/spreed

Laptop resume after suspend overnight sometimes doesn't recover automatically.

Open
#9,382 3 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

bug feature: frontend 🖌️ feature: signaling 📶
Dominant language
PHP
Stars
2.2k
Forks
587
Avg merge
18h 27m
Merged PRs (30d)
333

Description

How to use GitHub
  • Please use the 👍 reaction to show that you are affected by the same issue.
  • Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this issue.
  • Subscribe to receive notifications on status change and new comments.

Steps to reproduce

  1. Be connected to a room.
  2. Suspend the laptop.
  3. The next morning, resume the laptop.
Expected behaviour

The browser should automatically reconnect to the room or prompt for a login if required.

Actual behaviour

While it doesn't happen always, there are lots of times where Talk is stuck on Failed to establish signaling connection. Retrying …. After a reload of the browser window it usually works, sometimes a new login to Nextcloud is required. In the browser log below, a login was required.

Not sure how to reproduce this as it doesn't happen every day.

Talk app

Talk app version: (see apps admin page: /index.php/settings/apps)
16.0.3 with Nextcloud 26.0.1, but this has also happened in older versions.

Custom Signaling server configured: yes/no and version (see additional admin settings: /index.php/index.php/settings/admin/talk#signaling_server)

Yes, using the HPB-Service.

Browser

Microphone available: yes

Camera available: yes

Operating system: Ubuntu

Browser name: Chrome

Browser version: 111

Browser log

Suspend:

index.js:319 OC.requestToken changed z8YbzlnlYpKLcMoJfG+yUMngBd2EqfmKmuXGg/msAbg=:oIdJ/2iUUtvHBZJkTjrQOb+hcLO344nT+dytzrf4SIw=
17:24:20.735 signaling.js:701 Close CloseEvent
17:24:20.735 signaling.js:715 Reconnecting socket as the connection was closed unexpected
17:24:20.735 signaling.js:631 Reconnect in 937.7575155002867
17:24:20.736 MessagesList.vue:689 Error happened while getting chat messages. Trying again in  6 a
17:24:20.736 /ocs/v2.php/apps/spreed/api/v1/chat/3603878983?setReadMarker=0&lookIntoFuture=1&lastKnownMessageId=7914&includeLastKnown=0:1          Failed to load resource: net::ERR_NETWORK_IO_SUSPENDED
17:24:22.064 signaling.js:657 Connecting to wss://XXX.cust.spreed.cloud/spreed for 3603878983

Resume:

08:10:51.756 /apps/notify_push/pre_auth:1          Failed to load resource: net::ERR_NAME_NOT_RESOLVED
08:10:51.757 MessagesList.vue:689 Error happened while getting chat messages. Trying again in  6 a
08:10:51.757 /ocs/v2.php/apps/spreed/api/v1/chat/3603878983?setReadMarker=0&lookIntoFuture=1&lastKnownMessageId=7914&includeLastKnown=0:1          Failed to load resource: net::ERR_NAME_NOT_RESOLVED
08:10:51.757 index.js:6 Uncaught (in promise) a
08:10:51.801 signaling.js:664 WebSocket connection to 'wss://XXX.cust.spreed.cloud/spreed' failed: 
v.Standalone.connect @ signaling.js:664
08:10:51.802 signaling.js:684 Error Event
(anonymous) @ signaling.js:684
08:10:51.807 signaling.js:631 Reconnect in 2790.3426807680075
08:10:51.807 signaling.js:701 Close CloseEvent
08:10:53.009 globals.js:59 $ is deprecated: The global jQuery is deprecated. It will be removed in a later versions without another warning. Please ship your own.
jn @ globals.js:59
08:10:53.009 globals.js:59 $ is deprecated: The global jQuery is deprecated. It will be removed in a later versions without another warning. Please ship your own.
jn @ globals.js:59
08:10:55.009 signaling.js:657 Connecting to wss://XXX.cust.spreed.cloud/spreed for 3603878983
08:10:56.180 signaling.js:664 WebSocket connection to 'wss://XXX.cust.spreed.cloud/spreed' failed: 
v.Standalone.connect @ signaling.js:664
08:10:56.180 signaling.js:684 Error Event
(anonymous) @ signaling.js:684
08:10:56.180 signaling.js:631 Reconnect in 5023.243282385329
08:10:56.181 signaling.js:701 Close CloseEvent
08:10:58.106 MessagesList.vue:689 Error happened while getting chat messages. Trying again in  6 a
08:10:58.106 /ocs/v2.php/apps/spreed/api/v1/chat/3603878983?setReadMarker=0&lookIntoFuture=1&lastKnownMessageId=7914&includeLastKnown=0:1          Failed to load resource: net::ERR_NETWORK_CHANGED
08:10:59.520 LeftSidebar.vue:544 Error while fetching conversations:  a
08:10:59.520 /ocs/v2.php/apps/spreed/api/v4/room?includeStatus=true:1          Failed to load resource: net::ERR_NETWORK_CHANGED
08:11:02.009 signaling.js:657 Connecting to wss://XXX.cust.spreed.cloud/spreed for 3603878983
08:11:02.092 signaling.js:667 Connected Event
08:11:02.092 signaling.js:795 Welcome received Object
08:11:02.092 signaling.js:947 Trying to resume session QEB3REhQVKksVLyAwNnJ2mGKfBqTKkgIOOOIfsTx-6p8PT1nWV9rMkFENU5lTTBDakc4czJ0bDE3T3NGNGtQaXJHQklHc3owQWJYZ1BkR1pYTnE1WW5XcmVTT3VHa053V1NKY044NUxwZ0xvSS1WSWZ3NHVmc1lSODBfSEhlc0Y0dkJ1cG9OU3k4U2tEUnZWc1kyR3cwTDZ4dzJmV0tkQjJzdEZoV1lNMFpJdTQ1R0hUYV81bUJkZTRMMWxDOF9LYTJUQVh2ZHRmbVFzYTVYZ1I0bHVuRThfc3JCTC0wR3YwSlE4V0gxM2d3SnpBRHdFY2taZHhWVHdENzRvMmtkazc0ZGdyfDM5NjkxNDI4NjE=
08:11:02.115 signaling.js:984 Hello response received Object
08:11:02.115 signaling.js:779 Ignore unknown error Object
(anonymous) @ signaling.js:779
08:11:02.290 signaling.js:984 Hello response received Object
08:11:02.290 signaling.js:1012 Could not connect to server Object
v.Standalone.helloResponseReceived @ signaling.js:1012
08:11:02.290 signaling.js:631 Reconnect in 1333.5457971378478
08:11:02.290 signaling.js:775 The signaling token is expired, need to update settings
08:11:02.311 signaling.js:701 Close CloseEvent
08:11:03.267 /ocs/v2.php/apps/spreed/api/v3/signaling/settings?token=3603878983:1          Failed to load resource: the server responded with a status of 412 ()
08:11:03.267 index.esm.js:13 Request to https://nextcloud.XXX/ocs/v2.php/apps/spreed/api/v3/signaling/settings?token=3603878983 failed because of a CSRF mismatch. Fetching a new token
(anonymous) @ index.esm.js:13
08:11:03.383 index.esm.js:15 New request token R6nDH9acnT3AoEEfrmxJg3MBUJjc2Yph0Gx/Y7y/5sA=:dMygeILsq3iizTtU41946gRUN8ivkOsEiR5HO/rT1qI= fetched
08:11:03.561 /ocs/v2.php/apps/spreed/api/v3/signaling/settings?token=3603878983:1          Failed to load resource: the server responded with a status of 404 ()
08:11:03.562 index.js:77 Failed to get the signaling settings for 3603878983
(anonymous) @ index.js:77
08:11:03.562 index.js:125 Received updated settings null
08:11:04.009 signaling.js:657 Uncaught TypeError: Cannot read properties of null (reading 'token')
    at v.Standalone.connect (signaling.js:657:70)
    at y.<anonymous> (signaling.js:635:8)
08:11:05.120 /ocs/v2.php/apps/spreed/api/v1/chat/3603878983?setReadMarker=0&lookIntoFuture=1&lastKnownMessageId=7914&includeLastKnown=0:1          Failed to load resource: the server responded with a status of 404 ()
08:11:05.122 MessagesList.vue:689 Error happened while getting chat messages. Trying again in  6 a
08:11:12.166 /ocs/v2.php/apps/spreed/api/v1/chat/3603878983?setReadMarker=0&lookIntoFuture=1&lastKnownMessageId=7914&includeLastKnown=0:1          Failed to load resource: the server responded with a status of 404 ()
08:11:12.211 MessagesList.vue:689 Error happened while getting chat messages. Trying again in  6 a
08:11:19.075 /ocs/v2.php/apps/spreed/api/v1/chat/3603878983?setReadMarker=0&lookIntoFuture=1&lastKnownMessageId=7914&includeLastKnown=0:1          Failed to load resource: the server responded with a status of 404 ()
08:11:19.132 MessagesList.vue:689 Error happened while getting chat messages. Trying again in  6 a
08:11:23.205 globals.js:59 $ is deprecated: The global jQuery is deprecated. It will be removed in a later versions without another warning. Please ship your own.
jn @ globals.js:59
08:11:23.208 globals.js:59 $ is deprecated: The global jQuery is deprecated. It will be removed in a later versions without another warning. Please ship your own.
jn @ globals.js:59
08:11:23.208 MessagesList.vue:807 setVisualLastReadMessageId token=3603878983 id=7912
08:11:24.562 /ocs/v2.php/apps/user_status/api/v1/heartbeat?format=json:1          Failed to load resource: the server responded with a status of 401 ()
08:11:24.610 UserStatus.vue:210 Failed sending heartbeat, got: 401
08:11:25.197 /ocs/v2.php/apps/spreed/api/v1/chat/3603878983?setReadMarker=0&lookIntoFuture=1&lastKnownMessageId=7914&includeLastKnown=0:1          Failed to load resource: the server responded with a status of 404 ()
08:11:25.198 MessagesList.vue:689 Error happened while getting chat messages. Trying again in  6 a
08:11:25.389 MessagesList.vue:807 setVisualLastReadMessageId token=3603878983 id=7912

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the reconnect flow in signaling.js and the token refresh and settings requests shown in index.js, then compare the suspend and resume logs. Check how MessagesList.vue and LeftSidebar.vue handle the failed requests. Done means a resumed browser reconnects to the room or prompts for login instead of remaining stuck in retries.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
authentication, frontend, networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.