Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Notifications are not reliable #14296

Open
fraenki opened this issue Feb 5, 2025 · 13 comments
Open

Notifications are not reliable #14296

fraenki opened this issue Feb 5, 2025 · 13 comments

Comments

@fraenki
Copy link

fraenki commented Feb 5, 2025

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

Not easy to reproduce, the notification behaviour seems pretty unpredictable (see below). 😕

Expected behaviour

All messages and calls should result in reliable notifications on Web UI and Talk Desktop, and on all devices (if the user is logged in on multiple devices).

Actual behaviour

  • Someone writes a message in group chat – some participants don't receive a notification
  • Someone calls in group chat – some participants don't receive a notification (and miss the call)
  • Neither Web UI nor Talk Desktop seem to offer reliable notifications
  • Sometimes notifications actually arrive, but with a pretty high delay (acceptable for messages, but result in missed calls)
  • The behaviour does not seem to be consistent across all users – some say they receive all/most notification, while other users say they barely receive any notification at all.

NOTE: notify_push is already configured (and recognized by the Talk Desktop application), but it looks like this did not solve the issue.

Talk app

Talk app version: 20.1.3

Custom Signaling server configured: yes

Custom TURN server configured: yes

Custom STUN server configured: yes

Browser

Microphone available: yes

Camera available: yes

Operating system: Ubuntu, Linux Mint, Mac

Browser name: Firefox, Chrome and Safari

Browser version: most recent versions :)

Browser log

Server configuration

Operating system: RedHat

Web server: Apache –> 3 web servers running Nextcloud (php-fpm) and a loadbalancer

Database: MySQL (Galera Cluster)

PHP version: 8.3

Nextcloud Version: 30.0.5

List of activated apps:

Enabled:
  - app_api: 4.0.5
  - bruteforcesettings: 3.0.0
  - calendar: 5.0.9
  - cloud_federation_api: 1.13.0
  - contacts: 6.1.3
  - dav: 1.31.1
  - deck: 1.14.3
  - federatedfilesharing: 1.20.0
  - federation: 1.20.0
  - files: 2.2.0
  - files_antivirus: 5.6.1
  - files_downloadlimit: 3.0.0
  - files_external: 1.22.0
  - files_pdfviewer: 3.0.0
  - files_reminders: 1.3.0
  - files_sharing: 1.22.0
  - files_trashbin: 1.20.1
  - files_versions: 1.23.0
  - firstrunwizard: 3.0.0
  - logreader: 3.0.0
  - lookup_server_connector: 1.18.0
  - notifications: 3.0.0
  - notify_push: 1.0.0
  - oauth2: 1.18.1
  - password_policy: 2.0.0
  - polls: 7.2.9
  - privacy: 2.0.0
  - provisioning_api: 1.20.0
  - related_resources: 1.5.0
  - richdocuments: 8.5.3
  - serverinfo: 2.0.0
  - settings: 1.13.0
  - sharebymail: 1.20.0
  - spreed: 20.1.3
  - support: 2.0.0
  - systemtags: 1.20.0
  - tasks: 0.16.1
  - text: 4.1.0
  - theming: 2.5.0
  - twofactor_backupcodes: 1.19.0
  - user_ldap: 1.21.0
  - user_status: 1.10.0
  - viewer: 3.0.0
  - webhook_listeners: 1.1.0-dev
  - workflowengine: 2.12.0
Disabled:
  - activity: 3.0.0 (installed 2.15.0)
  - admin_audit: 1.20.0
  - circles: 30.0.0 (installed 25.0.0)
  - comments: 1.20.1 (installed 1.10.0)
  - contactsinteraction: 1.11.0 (installed 1.5.0)
  - dashboard: 7.10.0 (installed 7.2.0)
  - encryption: 2.18.0
  - nextcloud_announcements: 2.0.0 (installed 1.9.0)
  - photos: 3.0.2 (installed 1.2.3)
  - recommendations: 3.0.0 (installed 0.8.0)
  - survey_client: 2.0.0 (installed 1.8.0)
  - suspicious_login: 8.0.0 (installed 4.2.1)
  - twofactor_nextcloud_notification: 4.0.0
  - twofactor_totp: 12.0.0-dev
  - updatenotification: 1.20.0 (installed 1.10.0)
  - weather_status: 1.10.0 (installed 1.0.0)

Nextcloud configuration:

{
    "system": {
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "trusted_domains": [
            "localhost",
            "example.com"
        ],
        "datadirectory": "***REMOVED SENSITIVE VALUE***",
        "dbtype": "mysql",
        "version": "30.0.5.1",
        "overwrite.cli.url": "http:\/\/nextcloud.example.com",
        "dbname": "***REMOVED SENSITIVE VALUE***",
        "dbhost": "***REMOVED SENSITIVE VALUE***",
        "dbport": "",
        "dbtableprefix": "oc_",
        "mysql.utf8mb4": true,
        "dbuser": "***REMOVED SENSITIVE VALUE***",
        "dbpassword": "***REMOVED SENSITIVE VALUE***",
        "installed": true,
        "instanceid": "***REMOVED SENSITIVE VALUE***",
        "filelocking.enabled": true,
        "forcessl": true,
        "forwarded_for_headers": [
            "HTTP_X_FORWARDED_FOR"
        ],
        "loglevel": 2,
        "log_type": "errorlog",
        "logfile": "nextcloud.log",
        "mail_smtpmode": "smtp",
        "mail_smtphost": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpport": "25",
        "mail_smtpauth": false,
        "overwritehost": "nextcloud.example.com",
        "trusted_proxies": "***REMOVED SENSITIVE VALUE***",
        "maintenance": false,
        "ldapIgnoreNamingRules": false,
        "ldapProviderFactory": "OCA\\User_LDAP\\LDAPProviderFactory",
        "redis.cluster": {
            "timeout": "300",
            "read_timeout": "300",
            "failover_mode": "\\RedisCluster::FAILOVER_ERROR",
            "password": "***REMOVED SENSITIVE VALUE***",
            "seeds": "***REMOVED SENSITIVE VALUE***"
        },
        "memcache.distributed": "\\OC\\Memcache\\Redis",
        "memcache.locking": "\\OC\\Memcache\\Redis",
        "allow_user_to_change_display_name": false,
        "auth.bruteforce.protection.enabled": true,
        "knowledgebaseenabled": false,
        "lost_password_link": "disabled",
        "mail_domain": "***REMOVED SENSITIVE VALUE***",
        "mail_from_address": "***REMOVED SENSITIVE VALUE***",
        "session_lifetime": "60 * 60 * 48",
        "simpleSignUpLink.shown": false,
        "trashbin_retention_obligation": "auto, 14",
        "updatechecker": false,
        "upgrade.disable-web": true,
        "versions_retention_obligation": "auto, 14",
        "skeletondirectory": "\/custom\/skeleton",
        "quota_include_external_storage": false,
        "filesystem_check_changes": "1",
        "default_locale": "de",
        "default_phone_region": "DE",
        "default_language": "de",
        "memcache.local": "\\OC\\Memcache\\APCu",
        "session_keepalive": true,
        "session_relaxed_expiry": true,
        "maintenance_window_start": "2",
        "token_auth_wipe_token_retention": 7776000,
        "token_auth_token_retention": 63072000,
        "enable_previews": true,
        "preview_concurrency_all": 4,
        "preview_concurrency_new": 2,
        "enabledPreviewProviders": [
            "OC\\Preview\\BMP",
            "OC\\Preview\\GIF",
            "OC\\Preview\\HEIC",
            "OC\\Preview\\JPEG",
            "OC\\Preview\\Krita",
            "OC\\Preview\\MarkDown",
            "OC\\Preview\\MP3",
            "OC\\Preview\\OpenDocument",
            "OC\\Preview\\PNG",
            "OC\\Preview\\TXT",
            "OC\\Preview\\XBitmap"
        ]
    }
}

Server log (data/nextcloud.log)

no related log message found
@fraenki
Copy link
Author

fraenki commented Feb 5, 2025

We're so close to use Talk as a replacement for another solution, but the unreliable notifications may prevent this from happening. 😢 That's a bummer, because otherwise Talk works perfectly fine.

@nickvergessen
Copy link
Member

nickvergessen commented Feb 6, 2025

Someone writes a message in group chat – some participants don't receive a notification

In group chats only mentioned participants or in case of a reply the author of the original message receive a notification, unless you change the admin setting:

Image

Someone calls in group chat – some participants don't receive a notification (and miss the call)

Can not really reproduce this, unless specifically opting out of call notifications:

Image

Sometimes notifications actually arrive, but with a pretty high delay (acceptable for messages, but result in missed calls)

Can you name "pretty high delay"? Does it match below description?

  • Without notify_push this is depending on the timing the case, yes. The default notification behaviour is "poll every 30 seconds", if there is something new: show browser popup and play sounds if enabled.
  • With notify_push a websocket is used by the Talk Desktop client as well as the web browser to receive a push and then they pull the notifications, if there is something new: show browser popup and play sounds if enabled.

notify_push is already configured (and recognized by the Talk Desktop application), but it looks like this did not solve the issue.

Can you post a screenshot of notify_push:self-test:

sudo -u www-data php /var/www/nextcloud/occ notify_push:self-test
✓ redis is configured
✓ push server is receiving redis messages
✓ push server can load mount info from database
✓ push server can connect to the Nextcloud server
✓ push server is a trusted proxy
✓ push server is running the same version as the app

As well as notify_push:metrics?

@fraenki
Copy link
Author

fraenki commented Feb 6, 2025

In group chats only mentioned participants or in case of a reply the author of the original message receive a notification, unless you change the admin setting:

Yes, I've changed the setting to "All messages" already. (The global default was changed and all users have it set to "All messages".)

Can not really reproduce this, unless specifically opting out of call notifications:

Yeah, 100% reproducability would be great, but I couldn't find a pattern so far.

Can you name "pretty high delay"? Does it match below description?

I've already added notify_push. But notifications are still delayed. Yesterday I did another test: some notifications arrived immediately, while others were delayed for approx. 5-20s. It does not seem to matter whether I use a browser (Firefox) or Talk Desktop (on Linux Mint).

But other users said they did not receive a notification at all, just noticed an ongoing group call by chance (after several minutes).

Can you post a screenshot of notify_push:self-test:

Here's the output:

$ php occ notify_push:self-test
Cannot load Zend OPcache - it was already loaded
✓ redis is configured
✓ push server is receiving redis messages
✓ push server can load mount info from database
✓ push server can connect to the Nextcloud server
✓ push server is a trusted proxy
✓ push server is running the same version as the app

As well as notify_push:metrics?

$ php occ notify_push:metrics
Cannot load Zend OPcache - it was already loaded
Active connection count: 25
Active user count: 19
Total connection count: 384
Total database query count: 697
Events received: 16670
Messages sent: 12989

Not sure if this could be related, but I've noticed that the number of open file handles increased dramatically after enabling notify_push (nextcloud/notify_push#560).

@nickvergessen
Copy link
Member

Can you reproduce the delays when you use the occ notification:test-push <user-id> command?

@fraenki
Copy link
Author

fraenki commented Feb 6, 2025

Can you reproduce the delays when you use the occ notification:test-push command?

I've successfully tested this command on all web servers:

server1$ php occ notification:test-push testuser
Cannot load Zend OPcache - it was already loaded
No devices found for user

server2$ php occ notification:test-push testuser
Cannot load Zend OPcache - it was already loaded
No devices found for user

server3$ php occ notification:test-push testuser
Cannot load Zend OPcache - it was already loaded
No devices found for user

This command works perfectly fine when using Nextcloud/Talk in a browser. When using Talk Desktop no notification is received, but I assume this is expected, because Desktop Talk cannot handle the notification:test-push command? (Maybe it may be useful to add a notification:test-spreed command?)

However... I think I can reproduce the delayed/missing notifications.

Assuming two users in 1:1 chat:

  • user1@talk-desktop (1.1.2-beta or stable; Linux)
  • user2@browser (Firefox or Chrome; Linux)

Steps to reproduce:

  • both users open Talk, but do not enter a chat
  • user2@browser enters the chat with user1@talk-desktop
  • user2@browser sends message "test 001" to user1@talk-desktop
  • user1@talk-desktop receives a notification (but does not read the message)
  • user2@browser sends message "test 002" to user1@talk-desktop
  • user1@talk-desktop does NOT receive a notification (waited ~2 minutes)
  • user2@browser sends message "test 003" to user1@talk-desktop
  • user1@talk-desktop receives a notification for TWO new messages

NOTE 1: It's not always the 2nd notification that is missing. But according to my testing one out of three notifications is always missing.

NOTE 2: Only messages from user2@browser to user1@talk-desktop cause missing notifications. (When user1@talk-desktop sends messages to user2@browser not a single notification gets missing.)

NOTE 3: If both user1 and user2 use Talk in a browser, then notifications are 100% reliable (according to my testing).

Not receiving 1 out of 3 notifications is probably not a big deal, but it may help to find the reason why any notification is not received (as I already said some users almost never get notifications). So far only notifications in Talk Desktop are reproduceable missing. Should I file a bug for the talk desktop app, or could it still be related to spreed, notify_push or another server component?

I've collected some logs...

notify_push service log (debug log level):

[2025-02-06 21:05:54.716470 +00:00] DEBUG [notify_push] /volume/src/lib.rs:439: Received pre_auth user user2@browser
[2025-02-06 21:05:55.006427 +00:00] DEBUG [notify_push::connection] /volume/src/connection.rs:272: Authenticated socket for user2@browser using pre authenticated token
[2025-02-06 21:05:55.006498 +00:00] INFO [notify_push::connection] /volume/src/connection.rs:111: new websocket authenticated as user2@browser
[2025-02-06 21:05:55.507659 +00:00] DEBUG [notify_push::connection] /volume/src/connection.rs:179: Sending ping to user2@browser
[2025-02-06 21:05:56.009448 +00:00] DEBUG [notify_push::connection] /volume/src/connection.rs:179: Sending ping to user1@talk-desktop
[2025-02-06 21:06:24.618177 +00:00] DEBUG [notify_push::connection] src/connection.rs:60: Removing user2@browser from active connections
[2025-02-06 21:06:26.079945 +00:00] DEBUG [notify_push::connection] /volume/src/connection.rs:179: Sending ping to user1@talk-desktop
[2025-02-06 21:06:29.282671 +00:00] DEBUG [notify_push] /volume/src/lib.rs:439: Received pre_auth user user2@browser
[2025-02-06 21:06:29.525392 +00:00] DEBUG [notify_push::connection] /volume/src/connection.rs:272: Authenticated socket for user2@browser using pre authenticated token
[2025-02-06 21:06:29.525482 +00:00] INFO [notify_push::connection] /volume/src/connection.rs:111: new websocket authenticated as user2@browser
[2025-02-06 21:06:30.027345 +00:00] DEBUG [notify_push::connection] /volume/src/connection.rs:179: Sending ping to user2@browser
[2025-02-06 21:06:32.072672 +00:00] DEBUG [notify_push] /volume/src/lib.rs:439: Received notification notification for user user2@browser
[2025-02-06 21:06:32.072815 +00:00] DEBUG [notify_push] /volume/src/lib.rs:439: Received notification notification for user user2@browser
[2025-02-06 21:06:32.072849 +00:00] DEBUG [notify_push] /volume/src/lib.rs:439: Received notification notification for user user2@browser
[2025-02-06 21:06:32.574310 +00:00] DEBUG [notify_push::connection] /volume/src/connection.rs:168: Sending debounced notify_notification to user2@browser
[2025-02-06 21:06:40.281408 +00:00] DEBUG [notify_push] /volume/src/lib.rs:439: Received notification notification for user user1@talk-desktop
[2025-02-06 21:06:40.783044 +00:00] DEBUG [notify_push::connection] /volume/src/connection.rs:168: Sending debounced notify_notification to user1@talk-desktop
[2025-02-06 21:07:00.856791 +00:00] DEBUG [notify_push] /volume/src/lib.rs:439: Received notification notification for user user1@talk-desktop
[2025-02-06 21:07:01.358348 +00:00] DEBUG [notify_push::connection] /volume/src/connection.rs:168: Sending debounced notify_notification to user1@talk-desktop
[2025-02-06 21:07:02.648951 +00:00] DEBUG [notify_push::connection] /volume/src/connection.rs:179: Sending ping to user2@browser
[2025-02-06 21:07:31.430925 +00:00] DEBUG [notify_push::connection] /volume/src/connection.rs:179: Sending ping to user1@talk-desktop
[2025-02-06 21:07:32.719649 +00:00] DEBUG [notify_push::connection] /volume/src/connection.rs:179: Sending ping to user2@browser
[2025-02-06 21:08:01.504066 +00:00] DEBUG [notify_push::connection] /volume/src/connection.rs:179: Sending ping to user1@talk-desktop
[2025-02-06 21:08:02.794802 +00:00] DEBUG [notify_push::connection] /volume/src/connection.rs:179: Sending ping to user2@browser
[2025-02-06 21:08:31.575735 +00:00] DEBUG [notify_push::connection] /volume/src/connection.rs:179: Sending ping to user1@talk-desktop
[2025-02-06 21:08:32.869196 +00:00] DEBUG [notify_push::connection] /volume/src/connection.rs:179: Sending ping to user2@browser
[2025-02-06 21:09:01.645902 +00:00] DEBUG [notify_push::connection] /volume/src/connection.rs:179: Sending ping to user1@talk-desktop
[2025-02-06 21:09:02.943343 +00:00] DEBUG [notify_push::connection] /volume/src/connection.rs:179: Sending ping to user2@browser
[2025-02-06 21:09:28.871274 +00:00] DEBUG [notify_push] /volume/src/lib.rs:439: Received notification notification for user user1@talk-desktop
[2025-02-06 21:09:29.372947 +00:00] DEBUG [notify_push::connection] /volume/src/connection.rs:168: Sending debounced notify_notification to user1@talk-desktop
[2025-02-06 21:09:33.013798 +00:00] DEBUG [notify_push::connection] /volume/src/connection.rs:179: Sending ping to user2@browser
[2025-02-06 21:09:58.498986 +00:00] DEBUG [notify_push::connection] /volume/src/connection.rs:168: Sending debounced notify_file to user1@talk-desktop
[2025-02-06 21:10:03.083196 +00:00] DEBUG [notify_push::connection] /volume/src/connection.rs:179: Sending ping to user2@browser
[2025-02-06 21:10:28.575182 +00:00] DEBUG [notify_push::connection] /volume/src/connection.rs:179: Sending ping to user1@talk-desktop
[2025-02-06 21:10:29.360750 +00:00] DEBUG [notify_push] /volume/src/lib.rs:439: Received notification notification for user user1@talk-desktop
[2025-02-06 21:10:29.360828 +00:00] DEBUG [notify_push] /volume/src/lib.rs:439: Received notification notification for user user1@talk-desktop
[2025-02-06 21:10:29.360862 +00:00] DEBUG [notify_push] /volume/src/lib.rs:439: Received notification notification for user user1@talk-desktop
[2025-02-06 21:10:29.862423 +00:00] DEBUG [notify_push::connection] /volume/src/connection.rs:168: Sending debounced notify_notification to user1@talk-desktop
[2025-02-06 21:10:33.153826 +00:00] DEBUG [notify_push::connection] /volume/src/connection.rs:179: Sending ping to user2@browser
[2025-02-06 21:10:59.932647 +00:00] DEBUG [notify_push::connection] /volume/src/connection.rs:179: Sending ping to user1@talk-desktop
[2025-02-06 21:11:03.226366 +00:00] DEBUG [notify_push::connection] /volume/src/connection.rs:179: Sending ping to user2@browser
[2025-02-06 21:11:30.004472 +00:00] DEBUG [notify_push::connection] /volume/src/connection.rs:179: Sending ping to user1@talk-desktop

user2@browser console log:

Navigated to https://nextcloud.example.com/index.php/apps/spreed/
Content-Security-Policy: Ignoring “blob:” within script-src-elem: ‘strict-dynamic’ specified spreed
Content-Security-Policy: The page’s settings blocked the loading of a resource (media-src) at data: because it violates the following directive: “media-src 'self' blob:” spreed
GET
https://nextcloud.example.com/apps/tasks/css/tasks-store.css?v=f5f692bb-0
NS_ERROR_CORRUPTED_CONTENT
GET
https://nextcloud.example.com/apps/tasks/css/tasks-TaskCreateDialog.css?v=f5f692bb-0
NS_ERROR_CORRUPTED_CONTENT
[WARN] viewer: Some mimes were ignored because they are not enabled in the server previews config 
Object { app: "viewer", uid: "user2@browser", level: 2, ignoredMimes: (3) […] }
previewUtils-IBFOr72u.chunk.mjs:2:124831
Setting current user talk-main.js:27207:9825
Conversations have been restored from BrowserStorage talk-main.js:26467:12801
Detected browser Firefox 134 (134.0) talk-main.js:26467:124004
Initializing unified search plugin-filters from talk talk-search.js:752:1955
session heartbeat polling started core-main.js:1:28782
Layout was forced before the page was fully loaded. If stylesheets are not yet loaded this may cause a flash of unstyled content. blank
Content-Security-Policy: The page’s settings blocked the loading of a resource (media-src) at data: because it violates the following directive: “media-src 'self' blob:” blank
[WASM] Loading model of size: 249792 talk-JitsiStreamBackgroundEffect.worker.worker.js:1:7917
INFO: Created TensorFlow Lite XNNPACK delegate for CPU. talk-JitsiStreamBackgroundEffect.worker.worker.js:1:7917
Registering notifications container as a menu NotificationsApp-DV09BU4a.chunk.mjs:35:66966
Notifications permissions granted NotificationsApp-DV09BU4a.chunk.mjs:35:71939
Has notify_push enabled, slowing polling to 15 minutes NotificationsApp-DV09BU4a.chunk.mjs:35:67217
Polling interval updated to 900000 NotificationsApp-DV09BU4a.chunk.mjs:35:71370
Started background fetcher as session_keepalive is enabled NotificationsApp-DV09BU4a.chunk.mjs:35:68259
Registering notifications container as a menu NotificationsApp-DV09BU4a.chunk.mjs:35:66966
Notifications permissions granted NotificationsApp-DV09BU4a.chunk.mjs:35:71939
Has notify_push enabled, slowing polling to 15 minutes NotificationsApp-DV09BU4a.chunk.mjs:35:67217
Polling interval updated to 900000 NotificationsApp-DV09BU4a.chunk.mjs:35:71370
Started background fetcher as session_keepalive is enabled NotificationsApp-DV09BU4a.chunk.mjs:35:68259
X-Nextcloud-Talk-Hash initialised:  185a560656c06ffae2ce6226d892dffc13a8ad5a talk-main.js:26382:14846
Conversations were saved to BrowserStorage. Estimated object size: 4.60 kB talk-main.js:26467:13013
Got notification data, restoring default polling interval. NotificationsApp-DV09BU4a.chunk.mjs:35:70325
Got notification data, restoring default polling interval. NotificationsApp-DV09BU4a.chunk.mjs:35:70325
[DEBUG] spreed: zj5ewtnv | get context | 629.00 ms status 200 talk-main.js:26467:49520
Scrolling to a focused message programmatically talk-main.js:27046:39769
Remote address is bruteforce throttled: 200ms (Request ID: 4eZ2rL82Z7TWEXznGJVQ) talk-main.js:26467:39055
Refreshing notifications are notify_push event 2 NotificationsApp-DV09BU4a.chunk.mjs:35:69615
Connecting to wss://signaling.example.com/signaling/spreed for zj5ewtnv talk-main.js:26490:49500
Not connected to signaling server yet, defer joining room zj5ewtnv talk-main.js:26490:58755
Connected 
open { target: WebSocket, isTrusted: true, srcElement: WebSocket, currentTarget: WebSocket, eventPhase: 2, bubbles: false, cancelable: false, returnValue: true, defaultPrevented: false, composed: false, … }
talk-main.js:26490:49812
Welcome received 
Object { type: "welcome", welcome: {…} }
talk-main.js:26490:52947
Got notification data, restoring default polling interval. NotificationsApp-DV09BU4a.chunk.mjs:35:70325
Hello response received 
Object { id: "1", type: "hello", hello: {…} }
talk-main.js:26490:56068
Joined talk-main.js:26490:40818
Join room zj5ewtnv talk-main.js:26490:59475
Joined 
Object { id: "2", type: "room", room: {…} }
 zj5ewtnv talk-main.js:26490:60812
Users joined 
Array [ {…} ]
talk-main.js:26490:62576
clearLastReadMessage because of isSticky token=zj5ewtnv talk-main.js:27046:38269
Got notification data, restoring default polling interval. NotificationsApp-DV09BU4a.chunk.mjs:35:70325
Conversations were saved to BrowserStorage. Estimated object size: 4.86 kB talk-main.js:26467:13013
[DEBUG] spreed: zj5ewtnv | long polling | 8 225.00 ms status 200 talk-main.js:26467:49520
setVisualLastReadMessageId token=zj5ewtnv id=23844 talk-main.js:27046:37243
Conversations were saved to BrowserStorage. Estimated object size: 4.86 kB talk-main.js:26467:13013
[DEBUG] spreed: zj5ewtnv | long polling | 20 306.00 ms status 200 talk-main.js:26467:49520
Conversations were saved to BrowserStorage. Estimated object size: 4.86 kB talk-main.js:26467:13013
[DEBUG] spreed: zj5ewtnv | long polling | 30 327.00 ms status 304 talk-main.js:26467:49520
Conversations were saved to BrowserStorage. Estimated object size: 4.86 kB talk-main.js:26467:13013
[DEBUG] spreed: zj5ewtnv | long polling | 30 218.00 ms status 304 talk-main.js:26467:49520
Conversations were saved to BrowserStorage. Estimated object size: 4.86 kB talk-main.js:26467:13013
[DEBUG] spreed: zj5ewtnv | long polling | 30 216.00 ms status 304 talk-main.js:26467:49520
Conversations were saved to BrowserStorage. Estimated object size: 4.86 kB talk-main.js:26467:13013
[DEBUG] spreed: zj5ewtnv | long polling | 30 421.00 ms status 304 talk-main.js:26467:49520
setVisualLastReadMessageId token=zj5ewtnv id=23847 talk-main.js:27046:37243
[DEBUG] spreed: zj5ewtnv | long polling | 24 289.00 ms status 200 talk-main.js:26467:49520
Conversations were saved to BrowserStorage. Estimated object size: 4.86 kB talk-main.js:26467:13013

user1@talk-desktop console log:

index.js:2 Using locale "" for language "en"
index.js:1 Registering notifications container as a menu
index.js:1 Notifications permissions granted
index.js:1 Refetching data in null (prev: null age: 19)
index.js:1 Has notify_push enabled, slowing polling to 15 minutes
index.js:1 Polling interval updated to 900000
index.js:1 Started background fetcher as session_keepalive is enabled
index.js:1 Setting current user
index.js:1 Conversations have been restored from BrowserStorage
index.js:1 Got notification data
index.js:1 Polling interval updated to 900000
JitsiStreamBackgroundEffect.worker.js?v=fa1b69e42302a02d7a71:1 [WASM] Loading model of size: 249792
JitsiStreamBackgroundEffect.worker.js?v=fa1b69e42302a02d7a71:1 INFO: Created TensorFlow Lite XNNPACK delegate for CPU.
printChar @ JitsiStreamBackgroundEffect.worker.js?v=fa1b69e42302a02d7a71:1
_user1@talk-desktop:1 
Failed to load resource: the server responded with a status of 404 ()
index.js:1 X-Nextcloud-Talk-Hash initialised:  185a560656c06ffae2ce6226d892dffc13a8ad5a
index.js:1 Conversations were saved to BrowserStorage. Estimated object size: 37.63 kB
_user1@talk-desktop:1 
Failed to load resource: the server responded with a status of 404 ()
index.js:1 Conversations were saved to BrowserStorage. Estimated object size: 37.63 kB
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:1 TypeError: OC.registerXHRForErrorProcessing is not a function
    at k.xhrProvider (index.js:1:309308)
    at k.request (index.js:2:1776983)
    at k.propFind (index.js:2:1776629)
    at st._discoverPrincipalUri (index.js:2:1810645)
    at st.connect (index.js:2:1806764)
    at Qa (index.js:1:309378)
    at Object.getDefaultCalendarUri (index.js:1:310418)
    at Object.n (index.js:2:2579731)
    at U (index.js:1:1202149)
    at o.<anonymous> (index.js:1:1202236)
getDefaultCalendarUri @ index.js:1
index.js:1 TypeError: OC.registerXHRForErrorProcessing is not a function
    at k.xhrProvider (index.js:1:309308)
    at k.request (index.js:2:1776983)
    at k.propFind (index.js:2:1776629)
    at st._discoverPrincipalUri (index.js:2:1810645)
    at st.connect (index.js:2:1806764)
    at Qa (index.js:1:309378)
    at Object.getPersonalCalendars (index.js:1:310583)
    at Object.n (index.js:2:2579731)
    at U (index.js:1:1202181)
getPersonalCalendars @ index.js:1
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:1 [DEBUG] spreed: zj5ewtnv | get context | 1 774.20 ms status 200
index.js:1 Scrolling to a focused message programmatically
index.js:1 clearLastReadMessage because of isSticky token=zj5ewtnv
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:1 Remote address is bruteforce throttled: 200ms (Request ID: yMZ75o6eNl528WMfnoRP)
(anonymous) @ index.js:1
index.js:1 Connecting to wss://signaling.example.com/signaling/spreed for zj5ewtnv
index.js:1 Not connected to signaling server yet, defer joining room zj5ewtnv
index.js:1 Connected Event
index.js:1 Welcome received Object
index.js:1 Initialized Olm version 3.2.15
index.js:1 Hello response received Object
index.js:1 Joined
index.js:1 Join room zj5ewtnv
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:1 Joined Object zj5ewtnv
index.js:1 Users joined Array(1)
index.js:1 Users joined Array(1)
index.js:1 setVisualLastReadMessageId token=zj5ewtnv id=23769
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:1 Leave room zj5ewtnv
index.js:1 [DEBUG] spreed: zj5ewtnv | long polling | 5 363.00 ms cancelled
index.js:1 The request has been canceled dA
index.js:1 Left Object
index.js:1 [DEBUG] spreed: t4aqt9x2 | get context | 277.20 ms first chunk
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:1 Remote address is bruteforce throttled: 200ms (Request ID: C2d0cdrUOgnthPdJiky0)
(anonymous) @ index.js:1
index.js:1 Conversations were saved to BrowserStorage. Estimated object size: 37.63 kB
index.js:1 [DEBUG] spreed: t4aqt9x2 | get context | 273.80 ms status 304
index.js:1 Scrolling to a focused message programmatically
index.js:1 Joined
index.js:1 Join room t4aqt9x2
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:1 Joined Object t4aqt9x2
index.js:1 Users joined Array(1)
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:1 Leave room t4aqt9x2
index.js:1 Scrolling to a focused message programmatically
index.js:1 TypeError: OC.registerXHRForErrorProcessing is not a function
    at k.xhrProvider (index.js:1:309308)
    at k.request (index.js:2:1776983)
    at k.propFind (index.js:2:1776629)
    at st._discoverPrincipalUri (index.js:2:1810645)
    at st.connect (index.js:2:1806764)
    at Qa (index.js:1:309378)
    at Object.getDefaultCalendarUri (index.js:1:310418)
    at Object.n (index.js:2:2579731)
    at U (index.js:1:1202149)
    at o.<anonymous> (index.js:1:1202236)
getDefaultCalendarUri @ index.js:1
index.js:1 TypeError: OC.registerXHRForErrorProcessing is not a function
    at k.xhrProvider (index.js:1:309308)
    at k.request (index.js:2:1776983)
    at k.propFind (index.js:2:1776629)
    at st._discoverPrincipalUri (index.js:2:1810645)
    at st.connect (index.js:2:1806764)
    at Qa (index.js:1:309378)
    at Object.getPersonalCalendars (index.js:1:310583)
    at Object.n (index.js:2:2579731)
    at U (index.js:1:1202181)
getPersonalCalendars @ index.js:1
index.js:1 [DEBUG] spreed: t4aqt9x2 | long polling | 1 089.40 ms cancelled
index.js:1 The request has been canceled dA
index.js:1 Left Object
index.js:1 Remote address is bruteforce throttled: 200ms (Request ID: YrWk9UcA67c5Zo7jxWoM)
(anonymous) @ index.js:1
index.js:1 Joined
index.js:1 Join room zj5ewtnv
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:1 Joined Object zj5ewtnv
index.js:1 Users joined Array(1)
index.js:1 Users joined Array(1)
index.js:1 Conversations were saved to BrowserStorage. Estimated object size: 38.15 kB
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:1 [DEBUG] spreed: zj5ewtnv | long polling | 7 400.90 ms status 200
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:1 Leave room zj5ewtnv
index.js:1 Scrolling to a focused message programmatically
index.js:1 [DEBUG] spreed: zj5ewtnv | long polling | 3 134.90 ms cancelled
index.js:1 The request has been canceled dA
index.js:1 Left Object
index.js:1 Conversations were saved to BrowserStorage. Estimated object size: 37.90 kB
index.js:1 Remote address is bruteforce throttled: 200ms (Request ID: e6UNsJQ0SoMeIoJX4PWv)
(anonymous) @ index.js:1
index.js:1 Joined
index.js:1 Join room t4aqt9x2
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:1 setVisualLastReadMessageId token=t4aqt9x2 id=19902
index.js:1 Joined Object t4aqt9x2
index.js:1 Users joined Array(1)
index.js:1 Conversations were saved to BrowserStorage. Estimated object size: 37.90 kB
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:1 Leave room t4aqt9x2
index.js:1 Scrolling to a focused message programmatically
index.js:1 TypeError: OC.registerXHRForErrorProcessing is not a function
    at k.xhrProvider (index.js:1:309308)
    at k.request (index.js:2:1776983)
    at k.propFind (index.js:2:1776629)
    at st._discoverPrincipalUri (index.js:2:1810645)
    at st.connect (index.js:2:1806764)
    at Qa (index.js:1:309378)
    at Object.getDefaultCalendarUri (index.js:1:310418)
    at Object.n (index.js:2:2579731)
    at U (index.js:1:1202149)
    at o.<anonymous> (index.js:1:1202236)
getDefaultCalendarUri @ index.js:1
index.js:1 TypeError: OC.registerXHRForErrorProcessing is not a function
    at k.xhrProvider (index.js:1:309308)
    at k.request (index.js:2:1776983)
    at k.propFind (index.js:2:1776629)
    at st._discoverPrincipalUri (index.js:2:1810645)
    at st.connect (index.js:2:1806764)
    at Qa (index.js:1:309378)
    at Object.getPersonalCalendars (index.js:1:310583)
    at Object.n (index.js:2:2579731)
    at U (index.js:1:1202181)
getPersonalCalendars @ index.js:1
index.js:1 [DEBUG] spreed: t4aqt9x2 | long polling | 12 784.80 ms cancelled
index.js:1 The request has been canceled dA
index.js:1 Left Object
index.js:1 Remote address is bruteforce throttled: 200ms (Request ID: disJPKZ4cqyeCPHiYKq6)
(anonymous) @ index.js:1
index.js:1 Joined
index.js:1 Join room zj5ewtnv
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:1 Joined Object zj5ewtnv
index.js:1 Users joined Array(1)
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:1 [DEBUG] spreed: zj5ewtnv | long polling | 3 411.90 ms status 200
2index.js:1 Conversations were saved to BrowserStorage. Estimated object size: 38.16 kB
index.js:1 setVisualLastReadMessageId token=zj5ewtnv id=23775
index.js:1 Users joined Array(1)
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:1 Leave room zj5ewtnv
index.js:1 Scrolling to a focused message programmatically
index.js:1 [DEBUG] spreed: zj5ewtnv | long polling | 3 097.70 ms cancelled
index.js:1 The request has been canceled dA
index.js:1 Left Object
index.js:1 Remote address is bruteforce throttled: 200ms (Request ID: I0F4g5QucCfdIwrJ2lFG)
(anonymous) @ index.js:1
 Joined
 Join room t4aqt9x2
 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
 Joined Object t4aqt9x2
 Users joined Array(1)
 Conversations were saved to BrowserStorage. Estimated object size: 37.90 kB
 Deferring notification refresh from browser storage are notify_push event to give the last tab the chance to do it
 Refetching data in null (prev: null age: 105)
 Got notification data
 Polling interval updated to 900000
 Deferring notification refresh from browser storage are notify_push event to give the last tab the chance to do it
 Conversations were saved to BrowserStorage. Estimated object size: 37.89 kB
 [DEBUG] spreed: t4aqt9x2 | long polling | 30 676.60 ms status 304
 Reusing data in null (prev: null age: 19)
 Got notification data
 Polling interval updated to 900000
 Conversations were saved to BrowserStorage. Estimated object size: 37.89 kB
 [DEBUG] spreed: t4aqt9x2 | long polling | 30 304.70 ms status 304
 Deferring notification refresh from browser storage are notify_push event to give the last tab the chance to do it
 Conversations were saved to BrowserStorage. Estimated object size: 37.89 kB
 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
 Refetching data in null (prev: null age: 78)
 Got notification data
 Polling interval updated to 900000
 [DEBUG] spreed: t4aqt9x2 | long polling | 30 325.80 ms status 304
 setVisualLastReadMessageId token=t4aqt9x2 id=19902
 Conversations were saved to BrowserStorage. Estimated object size: 37.89 kB
 setVisualLastReadMessageId token=t4aqt9x2 id=19902
index.js:1 [DEBUG] spreed: t4aqt9x2 | long polling | 30 950.00 ms status 304
index.js:1 Deferring notification refresh from browser storage are notify_push event to give the last tab the chance to do it
index.js:1 Session has been marked as inactive
index.js:1 Conversations were saved to BrowserStorage. Estimated object size: 37.89 kB
index.js:1 Refetching data in null (prev: null age: 58)
index.js:1 Got notification data
index.js:1 Polling interval updated to 900000
index.js:1 [DEBUG] spreed: t4aqt9x2 | long polling | 30 421.70 ms status 304
index.js:1 Deferring notification refresh from browser storage are notify_push event to give the last tab the chance to do it
index.js:1 Reusing data in null (prev: null age: 20)
index.js:1 Got notification data
index.js:1 Polling interval updated to 900000
index.js:1 Conversations were saved to BrowserStorage. Estimated object size: 37.89 kB
index.js:1 [DEBUG] spreed: t4aqt9x2 | long polling | 42 615.50 ms status 304
index.js:1 Deferring notification refresh from browser storage are notify_push event to give the last tab the chance to do it
index.js:1 Refetching data in null (prev: null age: 55)
index.js:1 Got notification data
index.js:1 Polling interval updated to 900000
_user1@talk-desktop:1 
Failed to load resource: the server responded with a status of 404 ()
index.js:1 Conversations were saved to BrowserStorage. Estimated object size: 37.89 kB
index.js:1 Deferring notification refresh from browser storage are notify_push event to give the last tab the chance to do it
index.js:1 [DEBUG] spreed: t4aqt9x2 | long polling | 30 525.10 ms status 304
index.js:1 Reusing data in null (prev: null age: 26)
index.js:1 Got notification data
index.js:1 Polling interval updated to 900000
index.js:1 Conversations were saved to BrowserStorage. Estimated object size: 37.89 kB
index.js:1 Deferring notification refresh from browser storage are notify_push event to give the last tab the chance to do it
index.js:1 Refetching data in null (prev: null age: 54)
index.js:1 Got notification data
index.js:1 Polling interval updated to 900000
index.js:1 [DEBUG] spreed: t4aqt9x2 | long polling | 30 425.20 ms status 304
index.js:1 Conversations were saved to BrowserStorage. Estimated object size: 37.89 kB
index.js:1 [DEBUG] spreed: t4aqt9x2 | long polling | 30 421.20 ms status 304
index.js:1 Deferring notification refresh from browser storage are notify_push event to give the last tab the chance to do it
index.js:1 Conversations were saved to BrowserStorage. Estimated object size: 37.89 kB
index.js:1 Refetching data in null (prev: null age: 45)
index.js:1 Got notification data
index.js:1 Polling interval updated to 900000
index.js:1 [DEBUG] spreed: t4aqt9x2 | long polling | 30 428.90 ms status 304
index.js:1 Deferring notification refresh from browser storage are notify_push event to give the last tab the chance to do it
index.js:1 Conversations were saved to BrowserStorage. Estimated object size: 37.89 kB
index.js:1 Reusing data in null (prev: null age: 26)
index.js:1 Got notification data
index.js:1 Polling interval updated to 900000
index.js:1 [DEBUG] spreed: t4aqt9x2 | long polling | 30 522.60 ms status 304
index.js:1 Conversations were saved to BrowserStorage. Estimated object size: 37.89 kB
index.js:1 Deferring notification refresh from browser storage are notify_push event to give the last tab the chance to do it
index.js:1 Refetching data in null (prev: null age: 66)
index.js:1 Got notification data
index.js:1 Polling interval updated to 900000
index.js:1 setVisualLastReadMessageId token=t4aqt9x2 id=19902
index.js:1 Session has been marked as active
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:1 Leave room t4aqt9x2
index.js:1 Scrolling to a focused message programmatically
index.js:1 TypeError: OC.registerXHRForErrorProcessing is not a function
    at k.xhrProvider (index.js:1:309308)
    at k.request (index.js:2:1776983)
    at k.propFind (index.js:2:1776629)
    at st._discoverPrincipalUri (index.js:2:1810645)
    at st.connect (index.js:2:1806764)
    at Qa (index.js:1:309378)
    at Object.getDefaultCalendarUri (index.js:1:310418)
    at Object.n (index.js:2:2579731)
    at U (index.js:1:1202149)
    at o.<anonymous> (index.js:1:1202236)
getDefaultCalendarUri @ index.js:1
index.js:1 TypeError: OC.registerXHRForErrorProcessing is not a function
    at k.xhrProvider (index.js:1:309308)
    at k.request (index.js:2:1776983)
    at k.propFind (index.js:2:1776629)
    at st._discoverPrincipalUri (index.js:2:1810645)
    at st.connect (index.js:2:1806764)
    at Qa (index.js:1:309378)
    at Object.getPersonalCalendars (index.js:1:310583)
    at Object.n (index.js:2:2579731)
    at U (index.js:1:1202181)
getPersonalCalendars @ index.js:1
index.js:1 [DEBUG] spreed: t4aqt9x2 | long polling | 23 355.00 ms cancelled
index.js:1 The request has been canceled dA
index.js:1 Left Object
_user1@talk-desktop:1 
Failed to load resource: the server responded with a status of 404 ()
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:1 [DEBUG] spreed: zj5ewtnv | long polling | 514.20 ms status 200
index.js:1 Remote address is bruteforce throttled: 200ms (Request ID: VSNQEEx3Y2ZmkhJdiR4L)
(anonymous) @ index.js:1
index.js:1 Joined
index.js:1 Join room zj5ewtnv
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:1 Joined Object zj5ewtnv
index.js:1 Users joined Array(1)
index.js:1 Users joined Array(1)
index.js:1 clearLastReadMessage because of isSticky token=zj5ewtnv
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:1 Deferring notification refresh from browser storage are notify_push event to give the last tab the chance to do it
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:1 Leave room zj5ewtnv
index.js:1 Scrolling to a focused message programmatically
index.js:1 [DEBUG] spreed: zj5ewtnv | long polling | 3 451.70 ms cancelled
index.js:1 The request has been canceled dA
index.js:1 Left Object
index.js:1 Conversations were saved to BrowserStorage. Estimated object size: 38.15 kB
index.js:1 Remote address is bruteforce throttled: 200ms (Request ID: 0ifnpazjeZ1VDljAl0Ep)
(anonymous) @ index.js:1
index.js:1 Joined
index.js:1 Join room t4aqt9x2
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:1 Joined Object t4aqt9x2
index.js:1 Users joined Array(1)
index.js:1 Reusing data in null (prev: null age: 17)
index.js:1 Got notification data
index.js:1 Polling interval updated to 900000
index.js:1 Conversations were saved to BrowserStorage. Estimated object size: 37.89 kB
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:1 Conversations were saved to BrowserStorage. Estimated object size: 37.89 kB
index.js:1 setVisualLastReadMessageId token=t4aqt9x2 id=19902
index.js:1 Deferring notification refresh from browser storage are notify_push event to give the last tab the chance to do it
index.js:1 [DEBUG] spreed: t4aqt9x2 | long polling | 30 478.00 ms status 304
index.js:1 Refetching data in null (prev: null age: 45)
index.js:1 Got notification data
index.js:1 Polling interval updated to 900000
index.js:1 Conversations were saved to BrowserStorage. Estimated object size: 37.89 kB
index.js:1 Deferring notification refresh from browser storage are notify_push event to give the last tab the chance to do it
index.js:1 Reusing data in null (prev: null age: 18)
index.js:1 Got notification data
index.js:1 Polling interval updated to 900000
index.js:1 [DEBUG] spreed: t4aqt9x2 | long polling | 30 877.60 ms status 304
index.js:1 Conversations were saved to BrowserStorage. Estimated object size: 37.89 kB
index.js:1 [DEBUG] spreed: t4aqt9x2 | long polling | 30 369.50 ms status 304
index.js:1 Conversations were saved to BrowserStorage. Estimated object size: 37.89 kB
index.js:1 Deferring notification refresh from browser storage are notify_push event to give the last tab the chance to do it
index.js:1 Refetching data in null (prev: null age: 86)
index.js:1 Got notification data
index.js:1 Polling interval updated to 900000
index.js:1 [DEBUG] spreed: t4aqt9x2 | long polling | 30 341.10 ms status 304
index.js:1 Conversations were saved to BrowserStorage. Estimated object size: 37.89 kB
index.js:1 [DEBUG] spreed: t4aqt9x2 | long polling | 30 343.30 ms status 304
index.js:1 Conversations were saved to BrowserStorage. Estimated object size: 37.89 kB
index.js:1 [DEBUG] spreed: t4aqt9x2 | long polling | 30 654.50 ms status 304
index.js:1 Conversations were saved to BrowserStorage. Estimated object size: 37.89 kB
index.js:1 Session has been marked as inactive
index.js:1 [DEBUG] spreed: t4aqt9x2 | long polling | 30 377.70 ms status 304
index.js:1 Conversations were saved to BrowserStorage. Estimated object size: 37.89 kB
index.js:1 setVisualLastReadMessageId token=t4aqt9x2 id=19902
_user1@talk-desktop:1 
Failed to load resource: the server responded with a status of 404 ()
 Session has been marked as active
3 setVisualLastReadMessageId token=t4aqt9x2 id=19902
 [DEBUG] spreed: t4aqt9x2 | long polling | 30 366.70 ms status 304
 Conversations were saved to BrowserStorage. Estimated object size: 37.89 kB
2 setVisualLastReadMessageId token=t4aqt9x2 id=19902
 Conversations were saved to BrowserStorage. Estimated object size: 37.89 kB
 [DEBUG] spreed: t4aqt9x2 | long polling | 30 425.80 ms status 304
 Conversations were saved to BrowserStorage. Estimated object size: 37.89 kB
 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
 [DEBUG] spreed: t4aqt9x2 | long polling | 30 424.40 ms status 304
 Conversations were saved to BrowserStorage. Estimated object size: 37.89 kB
 [DEBUG] spreed: t4aqt9x2 | long polling | 30 423.90 ms status 304
 Conversations were saved to BrowserStorage. Estimated object size: 37.89 kB
 [DEBUG] spreed: t4aqt9x2 | long polling | 30 425.10 ms status 304
 Conversations were saved to BrowserStorage. Estimated object size: 37.89 kB
 [DEBUG] spreed: t4aqt9x2 | long polling | 30 678.20 ms status 304
 Session has been marked as inactive
 Refetching data in null (prev: null age: 308)
 No new notification data received
 Polling interval updated to 900000
 Conversations were saved to BrowserStorage. Estimated object size: 37.89 kB
 [DEBUG] spreed: t4aqt9x2 | long polling | 30 567.60 ms status 304
 Conversations were saved to BrowserStorage. Estimated object size: 37.89 kB
 [DEBUG] spreed: t4aqt9x2 | long polling | 30 743.50 ms status 304
 Conversations were saved to BrowserStorage. Estimated object size: 37.89 kB
 setVisualLastReadMessageId token=t4aqt9x2 id=19902
 Session has been marked as active
_user1@talk-desktop:1  Failed to load resource: the server responded with a status of 404 ()
 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
 Leave room t4aqt9x2
 Scrolling to a focused message programmatically
getDefaultCalendarUri @ index.js:1
getPersonalCalendars @ index.js:1
 [DEBUG] spreed: t4aqt9x2 | long polling | 26 768.80 ms cancelled
 The request has been canceled dA
 Left Object
 Remote address is bruteforce throttled: 200ms (Request ID: jjletbp3ocxY6vFbzAV7)
(anonymous) @ index.js:1
 Joined
 Join room zj5ewtnv
 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
 Joined Object zj5ewtnv
 Users joined Array(1)
 Users joined Array(1)
 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
 [DEBUG] spreed: zj5ewtnv | long polling | 1 500.00 ms status 200
 clearLastReadMessage because of isSticky token=zj5ewtnv
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:1 Leave room zj5ewtnv
index.js:1 Scrolling to a focused message programmatically
index.js:1 [DEBUG] spreed: zj5ewtnv | long polling | 1 798.70 ms cancelled
index.js:1 The request has been canceled dA
index.js:1 Deferring notification refresh from browser storage are notify_push event to give the last tab the chance to do it
index.js:1 Left Object
index.js:1 Remote address is bruteforce throttled: 200ms (Request ID: 289goPvZqsNlVsuQfGed)
(anonymous) @ index.js:1
index.js:1 Joined
index.js:1 Join room t4aqt9x2
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:1 Joined Object t4aqt9x2
index.js:1 Users joined Array(1)
index.js:1 Conversations were saved to BrowserStorage. Estimated object size: 37.89 kB
index.js:1 Refetching data in null (prev: null age: 74)
index.js:1 Got notification data
index.js:1 Polling interval updated to 900000
index.js:1 setVisualLastReadMessageId token=t4aqt9x2 id=19902
index.js:1 Deferring notification refresh from browser storage are notify_push event to give the last tab the chance to do it
index.js:1 Conversations were saved to BrowserStorage. Estimated object size: 37.89 kB
index.js:1 Reusing data in null (prev: null age: 18)
index.js:1 Got notification data
index.js:1 Polling interval updated to 900000
index.js:1 [DEBUG] spreed: t4aqt9x2 | long polling | 30 362.00 ms status 304
index.js:1 setVisualLastReadMessageId token=t4aqt9x2 id=19902
index.js:1 Conversations were saved to BrowserStorage. Estimated object size: 37.89 kB
index.js:1 setVisualLastReadMessageId token=t4aqt9x2 id=19902
index.js:1 Deferring notification refresh from browser storage are notify_push event to give the last tab the chance to do it
index.js:1 [DEBUG] spreed: t4aqt9x2 | long polling | 30 561.70 ms status 304
index.js:1 Refetching data in null (prev: null age: 59)
index.js:1 Got notification data
index.js:1 Polling interval updated to 900000
index.js:1 Deferring notification refresh from browser storage are notify_push event to give the last tab the chance to do it
index.js:1 Reusing data in null (prev: null age: 17)
index.js:1 Got notification data
index.js:1 Polling interval updated to 900000
index.js:1 Conversations were saved to BrowserStorage. Estimated object size: 37.89 kB
index.js:1 [DEBUG] spreed: t4aqt9x2 | long polling | 30 340.70 ms status 304
index.js:1 Deferring notification refresh from browser storage are notify_push event to give the last tab the chance to do it
index.js:1 Reusing data in null (prev: null age: 33)
index.js:1 Got notification data
index.js:1 Polling interval updated to 900000
index.js:1 Deferring notification refresh from browser storage are notify_push event to give the last tab the chance to do it
index.js:1 Refetching data in null (prev: null age: 47)
index.js:1 Got notification data
index.js:1 Polling interval updated to 900000
index.js:1 Conversations were saved to BrowserStorage. Estimated object size: 37.89 kB
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:1 [DEBUG] spreed: t4aqt9x2 | long polling | 30 366.80 ms status 304
index.js:1 Conversations were saved to BrowserStorage. Estimated object size: 37.89 kB
index.js:1 [DEBUG] spreed: t4aqt9x2 | long polling | 30 950.70 ms status 304
2index.js:1 setVisualLastReadMessageId token=t4aqt9x2 id=19902
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:1 Leave room t4aqt9x2
index.js:1 Scrolling to a focused message programmatically
index.js:1 TypeError: OC.registerXHRForErrorProcessing is not a function
    at k.xhrProvider (index.js:1:309308)
    at k.request (index.js:2:1776983)
    at k.propFind (index.js:2:1776629)
    at st._discoverPrincipalUri (index.js:2:1810645)
    at st.connect (index.js:2:1806764)
    at Qa (index.js:1:309378)
    at Object.getDefaultCalendarUri (index.js:1:310418)
    at Object.n (index.js:2:2579731)
    at U (index.js:1:1202149)
    at o.<anonymous> (index.js:1:1202236)
getDefaultCalendarUri @ index.js:1
index.js:1 TypeError: OC.registerXHRForErrorProcessing is not a function
    at k.xhrProvider (index.js:1:309308)
    at k.request (index.js:2:1776983)
    at k.propFind (index.js:2:1776629)
    at st._discoverPrincipalUri (index.js:2:1810645)
    at st.connect (index.js:2:1806764)
    at Qa (index.js:1:309378)
    at Object.getPersonalCalendars (index.js:1:310583)
    at Object.n (index.js:2:2579731)
    at U (index.js:1:1202181)
getPersonalCalendars @ index.js:1
index.js:1 [DEBUG] spreed: t4aqt9x2 | long polling | 14 988.50 ms cancelled
index.js:1 The request has been canceled dA
index.js:1 Left Object
index.js:1 Remote address is bruteforce throttled: 200ms (Request ID: 2zgbKqRSQ2GBu6e0Mkza)
(anonymous) @ index.js:1
index.js:1 Joined
index.js:1 Join room zj5ewtnv
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:1 Joined Object zj5ewtnv
index.js:1 Users joined Array(1)
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:1 [DEBUG] spreed: zj5ewtnv | long polling | 1 557.80 ms status 200
index.js:1 Conversations were saved to BrowserStorage. Estimated object size: 38.15 kB
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:1 Conversations were saved to BrowserStorage. Estimated object size: 38.15 kB
index.js:1 clearLastReadMessage because of isSticky token=zj5ewtnv
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:1 Deferring notification refresh from browser storage are notify_push event to give the last tab the chance to do it
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:1 [DEBUG] spreed: zj5ewtnv | long polling | 8 313.50 ms status 200
index.js:1 Refetching data in null (prev: null age: 73)
index.js:1 Got notification data
index.js:1 Polling interval updated to 900000
index.js:1 Conversations were saved to BrowserStorage. Estimated object size: 38.15 kB
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:1 [DEBUG] spreed: zj5ewtnv | long polling | 30 326.90 ms status 304
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:1 [DEBUG] spreed: zj5ewtnv | long polling | 1 295.70 ms status 200
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:1 Conversations were saved to BrowserStorage. Estimated object size: 38.15 kB
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:1 [DEBUG] spreed: zj5ewtnv | long polling | 30 428.60 ms status 200
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:1 Conversations were saved to BrowserStorage. Estimated object size: 38.15 kB
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:1 [DEBUG] spreed: zj5ewtnv | long polling | 30 332.70 ms status 304
index.js:1 Conversations were saved to BrowserStorage. Estimated object size: 38.15 kB
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
nextcloud.example.com/ocs/v2.php/apps/user_status/api/v1/statuses/_user1@talk-desktop:1 
Failed to load resource: the server responded with a status of 404 ()
index.js:1 [DEBUG] spreed: zj5ewtnv | long polling | 30 315.70 ms status 304
index.js:1 Conversations were saved to BrowserStorage. Estimated object size: 38.15 kB
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:1 setVisualLastReadMessageId token=zj5ewtnv id=23841
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:1 Leave room zj5ewtnv
index.js:1 Scrolling to a focused message programmatically
index.js:1 [DEBUG] spreed: zj5ewtnv | long polling | 22 788.00 ms cancelled
index.js:1 The request has been canceled dA
index.js:1 Left Object
index.js:1 Remote address is bruteforce throttled: 200ms (Request ID: 2KJ4ktsHRAxlCZVRNVYv)
(anonymous) @ index.js:1
index.js:1 Joined
index.js:1 Join room t4aqt9x2
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:1 Joined Object t4aqt9x2
index.js:1 Users joined Array(1)
2index.js:1 Conversations were saved to BrowserStorage. Estimated object size: 37.89 kB
2index.js:1 setVisualLastReadMessageId token=t4aqt9x2 id=19902
index.js:1 [DEBUG] spreed: t4aqt9x2 | long polling | 30 320.80 ms status 304
index.js:1 Conversations were saved to BrowserStorage. Estimated object size: 37.89 kB
index.js:2 You need to fill either the text or the ariaLabel props in the button component. {text: undefined, ariaLabel: null} o {_uid: 438, _isVue: true, __v_skip: true, _scope: e, $options: {…}, …}
index.js:1 Deferring notification refresh from browser storage are notify_push event to give the last tab the chance to do it
index.js:1 Refetching data in null (prev: null age: 204)
index.js:1 Got notification data
index.js:1 Polling interval updated to 900000
index.js:1 [DEBUG] spreed: t4aqt9x2 | long polling | 30 441.90 ms status 304
index.js:1 Deferring notification refresh from browser storage are notify_push event to give the last tab the chance to do it
index.js:1 Reusing data in null (prev: null age: 20)
index.js:1 Got notification data
index.js:1 Polling interval updated to 900000
index.js:1 Conversations were saved to BrowserStorage. Estimated object size: 37.89 kB
index.js:1 [DEBUG] spreed: t4aqt9x2 | long polling | 30 632.60 ms status 304
index.js:1 Conversations were saved to BrowserStorage. Estimated object size: 37.89 kB
index.js:1 [DEBUG] spreed: t4aqt9x2 | long polling | 30 941.40 ms status 304
index.js:1 Conversations were saved to BrowserStorage. Estimated object size: 37.89 kB
index.js:1 [DEBUG] spreed: t4aqt9x2 | long polling | 30 418.40 ms status 304
index.js:1 Conversations were saved to BrowserStorage. Estimated object size: 37.89 kB
index.js:1 [DEBUG] spreed: t4aqt9x2 | long polling | 30 533.20 ms status 304
index.js:1 Conversations were saved to BrowserStorage. Estimated object size: 37.89 kB
index.js:1 Session has been marked as inactive
index.js:1 [DEBUG] spreed: t4aqt9x2 | long polling | 30 529.80 ms status 304
index.js:1 Deferring notification refresh from browser storage are notify_push event to give the last tab the chance to do it
index.js:1 Refetching data in null (prev: null age: 168)
index.js:1 Got notification data
index.js:1 Polling interval updated to 900000
index.js:1 Conversations were saved to BrowserStorage. Estimated object size: 37.89 kB
index.js:1 [DEBUG] spreed: t4aqt9x2 | long polling | 31 138.40 ms status 304
index.js:1 setVisualLastReadMessageId token=t4aqt9x2 id=19902
index.js:1 Session has been marked as active

@nickvergessen
Copy link
Member

Maybe it may be useful to add a notification:test-spreed command?

occ notification:test-push --talk <user-id> works.
But it only makes a difference for mobile apps, not web and desktop.

@nickvergessen
Copy link
Member

It's not always the 2nd notification that is missing. But according to my testing one out of three notifications is always missing.

It seems the notify_push is grouping the pushes by 1s
But after receiving a push, the desktop and browser simply grab the "get all notifications" endpoint so they should all exist after that.

Only messages from user2@browser to user1@talk-desktop cause missing notifications. (When user1@talk-desktop sends messages to user2@browser not a single notification gets missing.)
If both user1 and user2 use Talk in a browser, then notifications are 100% reliable (according to my testing).

The sending part makes no difference.
It's of course possible that there is something different in the Talk Desktop client

@nickvergessen
Copy link
Member

nickvergessen commented Feb 7, 2025

I think I tracked something down.

https://github.com/nextcloud/talk-desktop/blob/bb01c82efd85a8aa22ef8439d824f8a2db26d09f/src/talk/renderer/notifications/notifications.store.js#L124-L129

On my prod desktop client tabId is null and lastTabId is not existing so undefined?
This means all notifications will be fetched with the 5s delay?
cc @ShGKme

The same is also visible in your logs of user1@talk-desktop:

 Deferring notification refresh from browser storage are notify_push event to give the last tab the chance to do it
 Refetching data in null (prev: null age: 105)
 Got notification data
 Polling interval updated to 900000
 Deferring notification refresh from browser storage are notify_push event to give the last tab the chance to do it
 Conversations were saved to BrowserStorage. Estimated object size: 37.89 kB
 [DEBUG] spreed: t4aqt9x2 | long polling | 30 676.60 ms status 304
 Reusing data in null (prev: null age: 19)
 Got notification data
 Polling interval updated to 900000
 Conversations were saved to BrowserStorage. Estimated object size: 37.89 kB
 [DEBUG] spreed: t4aqt9x2 | long polling | 30 304.70 ms status 304
 Deferring notification refresh from browser storage are notify_push event to give the last tab the chance to do it
 Conversations were saved to BrowserStorage. Estimated object size: 37.89 kB
 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2

@ShGKme
Copy link
Contributor

ShGKme commented Feb 7, 2025

On my prod desktop client tabId is null and lastTabId is not existing so undefined?
This means all notifications will be fetched with the 5s delay?

tabId is null indeed. And lastTabId is null but from the storage, it is a string.

@fraenki
Copy link
Author

fraenki commented Feb 7, 2025

occ notification:test-push
occ notification:test-push --talk

Neither of them shows a notificaton in Talk Desktop. Is this expected?

@nickvergessen
Copy link
Member

At the moment: yes

@nickvergessen
Copy link
Member

But you will already see the info in the console of the desktop client

@ShGKme
Copy link
Contributor

ShGKme commented Feb 7, 2025

At the moment: yes

Shall we show the test notification in Talk Desktop?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants