Skip to content

[Bug]: Web UI does not refresh file list despite receiving notify_file via WebSocket (Nextcloud 32) #57314

@StBamberger

Description

@StBamberger

⚠️ This issue respects the following points: ⚠️

Bug description

On Nextcloud 32 (Hub 9), the Web Interface (Files App) does not automatically refresh the file list when changes occur, even though the notify_push backend correctly signals the changes via WebSockets. Manual polling continues to return 304 Not Modified for a period of time, and the expected PROPFIND request is never triggered by the browser after a push notification.

Steps to reproduce

    • Open Nextcloud 32 Files App in a browser (e.g., Chrome/Firefox).
    • Create or upload a file in the same folder using a different session/client.
    • Observe the Network Tab (WebSockets) and the File List.
    • The WebSocket receives a notify_file frame, but the UI remains static.

Expected behavior

The Files App should trigger a refresh (PROPFIND) of the current directory upon receiving the notify_file signal.

Nextcloud Server version

32

Operating system

Debian/Ubuntu

PHP engine version

PHP 8.3

Web server

Apache (supported)

Database engine version

MariaDB

Is this bug present after an update or on a fresh install?

Fresh Nextcloud Server install

Are you using the Nextcloud Server Encryption module?

Encryption is Disabled

What user-backends are you using?

  • Default user-backend (database)
  • LDAP/ Active Directory
  • SSO - SAML
  • Other

Configuration report

{
    "system": {
        "instanceid": "***REMOVED SENSITIVE VALUE***",
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "trusted_domains": [
            "***private***"
        ],
        "datadirectory": "***REMOVED SENSITIVE VALUE***",
        "dbtype": "mysql",
        "version": "32.0.3.2",
        "overwrite.cli.url": "https:\/\/***private***",
        "overwritehost": "***private***",
        "overwriteprotocol": "https",
        "trusted_proxies": "***REMOVED SENSITIVE VALUE***",
        "dbname": "***REMOVED SENSITIVE VALUE***",
        "dbhost": "***REMOVED SENSITIVE VALUE***",
        "dbtableprefix": "oc_",
        "mysql.utf8mb4": true,
        "dbuser": "***REMOVED SENSITIVE VALUE***",
        "dbpassword": "***REMOVED SENSITIVE VALUE***",
        "installed": true,
        "memcache.local": "\\OC\\Memcache\\APCu",
        "memcache.distributed": "\\OC\\Memcache\\Redis",
        "memcache.locking": "\\OC\\Memcache\\Redis",
        "redis": {
            "host": "***REMOVED SENSITIVE VALUE***",
            "port": 6379,
            "timeout": 0
        },
        "maintenance": false,
        "default_locale": "de_DE",
        "default_language": "de",
        "default_phone_region": "DE",
        "lost_password_link": "disabled",
        "htaccess.RewriteBase": "\/",
        "skeletondirectory": "",
        "templatedirectory": "",
        "filesystem_check_changes": 1,
        "maintenance_window_start": 2,
        "mail_smtpmode": "smtp",
        "mail_sendmailmode": "smtp",
        "mail_from_address": "***REMOVED SENSITIVE VALUE***",
        "mail_domain": "***REMOVED SENSITIVE VALUE***",
        "mail_smtphost": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpport": "587",
        "mail_smtpauth": true,
        "mail_smtpname": "***REMOVED SENSITIVE VALUE***",
        "mail_smtppassword": "***REMOVED SENSITIVE VALUE***",
        "defaultapp": "files",
        "app_install_overwrite": []
    }
}

List of activated Apps

Enabled:
  - activity: 5.0.0-dev.0
  - bruteforcesettings: 5.0.0-dev.0
  - circles: 32.0.0
  - cloud_federation_api: 1.16.0
  - comments: 1.22.0
  - contactsinteraction: 1.13.1
  - dashboard: 7.12.0
  - dav: 1.34.2
  - federatedfilesharing: 1.22.0
  - federation: 1.22.0
  - files: 2.4.0
  - files_downloadlimit: 5.0.0-dev.0
  - files_external: 1.24.0
  - files_pdfviewer: 5.0.0-dev.0
  - files_reminders: 1.5.0
  - files_sharing: 1.24.1
  - files_trashbin: 1.22.0
  - files_versions: 1.25.0
  - firstrunwizard: 5.0.0-dev.0
  - logreader: 5.0.0-dev.0
  - lookup_server_connector: 1.20.0
  - nextcloud_announcements: 4.0.0-dev.0
  - notifications: 5.0.0-dev.0
  - notify_push: 1.2.1
  - oauth2: 1.20.0
  - password_policy: 4.0.0-dev.0
  - photos: 5.0.0-dev.1
  - privacy: 4.0.0-dev.0
  - profile: 1.1.0
  - provisioning_api: 1.22.0
  - recommendations: 5.0.0-dev.0
  - related_resources: 3.0.0-dev.0
  - serverinfo: 4.0.0-dev.0
  - settings: 1.15.1
  - sharebymail: 1.22.0
  - support: 4.0.0-dev.0
  - survey_client: 4.0.0-dev.0
  - systemtags: 1.22.0
  - text: 6.0.1
  - theming: 2.7.0
  - twofactor_backupcodes: 1.21.0
  - twofactor_totp: 14.0.0
  - updatenotification: 1.22.0
  - user_status: 1.12.0
  - viewer: 5.0.0-dev.0
  - weather_status: 1.12.0
  - webhook_listeners: 1.3.0
  - workflowengine: 2.14.0
Disabled:
  - admin_audit: 1.22.0
  - app_api: 32.0.0 (installed 32.0.0)
  - encryption: 2.20.0
  - suspicious_login: 10.0.0-dev.0
  - twofactor_nextcloud_notification: 6.0.0-dev.0

Nextcloud Signing status

No errors have been found.

Nextcloud Logs

empty

Additional info

Technical Details & Logs

  • Nextcloud Version: 32.0.3 (Hub 25)
  • Notify Push Version: 1.2.1
  • Server Setup: LAMP (Apache/PHP-FPM/MariaDB) with native notify_push binary (from app directory)

Browser Console: window.OC.WebSocket is undefined. It seems the legacy JS bindings are missing or not compatible with the new Vue-based Files App in NC 32.

Backend Logs (journalctl -u notify_push): The backend correctly identifies the change and sends the signal:

DEBUG [notify_push] Received storage update notification for storage 1 and path files/Test.md
DEBUG [notify_push::connection] Sending debounced notify_file to [User]

Network Tab (WebSocket Frames): The browser receives the frame:
notify_file

Additional context
The notify_push:setup command reports "All checks passed".

Polling (/ocs/v2.php/apps/notifications/api/v2/notifications) returns 304 Not Modified even after the file has been created, suggesting an ETag/Cache lag in the new VFS layer of NC 32.

The issue persists on both native and Docker-based installations.

Metadata

Metadata

Assignees

No one assigned

    Labels

    0. Needs triagePending check for reproducibility or if it fits our roadmapbug

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions