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 roadmap32-feedbackbug

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions