Skip to content

[Bug]: notify_file_id push notifications are discarded for any folder other than the account root ("no matching file ids, ignoring") #10361

Description

@amferreiro

⚠️ Before submitting, please verify the following: ⚠️

Bug description

Which client version and operating system are you using?

Nextcloud Desktop Client 33.0.7, VFS mode.

Which server version and operating system?

Reproduced against two independent Nextcloud servers, ruling out a server-side cause:

Server A: Nextcloud 32.0.5.0
Server B: Nextcloud 33.0.5.1

Both have notify_push (Client Push) enabled and working — confirmed by the client successfully connecting to the websocket, authenticating, and receiving push notifications with correct file IDs (see logs below).

Bug description

Since the notify_file_id push notification model was introduced (replacing the older, more expensive notify_file model that triggers a full sync from the root on any change), the desktop client discards every notify_file_id push notification whose file IDs do not include the ID of the account's root folder.

In FolderMan::slotProcessFileIdsPushNotification (src/gui/folderman.cpp), the client receives the correct file IDs from the server, but then rejects them with:

no matching file ids, ignoring folder="" account=""

As a result, any change made to a file or folder that is not the account root — i.e. essentially every real-world change — is silently ignored by the push mechanism. The client falls back to the periodic Etag poll (remotePollInterval, 30–60s depending on server config) to eventually pick up the change, or to a manual/triggered sync.

This defeats the purpose of notify_file_id (near-instant, targeted sync) and reintroduces the exact polling delay it was meant to eliminate — but in a way that's easy to miss, because the periodic poll usually masks the problem. The consequence becomes very visible when a local edit happens to overlap with an un-propagated remote change: the client has no idea the remote file changed, syncs its own local edit, and only then discovers the mismatch — producing an unnecessary sync conflict and a (conflicted copy ...) file, even though the push notification with the correct file ID had already arrived (and been discarded) well before the local edit was made.

Steps to reproduce

  1. Set up a Nextcloud account with notify_push (Client Push) enabled on the server.
  2. Sync a folder structure with at least one subfolder below the account root (e.g. Root/Subfolder/file.txt).
  3. Run the desktop client with --logdebug --logfile --logflush.
  4. Leave the client fully idle (do not touch anything locally).
  5. From a different client, or from the web UI, modify Root/Subfolder/file.txt.
  6. Observe the debug log.

Expected behavior

The client receives the notify_file_id push notification containing the file ID(s) of the changed file/folder, recognizes that a synced folder is affected (independently of whether the account root's own ID is included), and schedules a sync — ideally a partial/targeted one — promptly.

Which files are affected by this bug

Nueva carpeta/test.txt

Operating system

Windows

Which version of the operating system you are running.

Windows 11

Installation method

Official Windows MSI

Nextcloud Server version

33.0.5.1 && 32.0.5.0

Nextcloud Desktop Client version

33.0.7

Did this occur after an update or on a clean installation?

Major version update (i.e. 4.0.0 → 33.0.0)

Are you using the Nextcloud Server Encryption module?

No

Are you using an external user-backend?

  • Default internal user-backend
  • LDAP or Active Directory
  • SSO - SAML
  • Other

Nextcloud Server logs

Actual behavior:
The notification is received correctly but discarded outright because it doesn't include the root folder's ID:

Received push notification: "notify_file_id [<fileId>]"
[handleNotifyFileId] File-ID push notification arrived
[slotProcessFileIdsPushNotification] received notify_file_id push notification account="<account>" fileIds=QList(<fileId>)
[slotProcessFileIdsPushNotification] no matching file ids, ignoring folder="<N>" account="<account>"

No sync is scheduled as a result of this notification. The change is only picked up later via the Etag poll timer or a manual sync.

Server A (Nextcloud 32.0.5.0), account root folder="1"

2026-07-13 12:34:47:223 [info] Received push notification: "notify_file_id [603493314,615938570]"
2026-07-13 12:34:47:223 [debug] [handleNotifyFileId] File-ID push notification arrived
2026-07-13 12:34:47:223 [info] Received push notification for file id changes, file count: 2
2026-07-13 12:34:47:223 [debug] [slotProcessFileIdsPushNotification] received notify_file_id push notification account="<account>@<serverA>" fileIds=QList(603493314, 615938570)
2026-07-13 12:34:47:223 [debug] [slotProcessFileIdsPushNotification] no matching file ids, ignoring folder="1" account="<account>@<serverA>"



Server B (Nextcloud 33.0.5.1), account root folder="2" — same client instance, different account

2026-07-13 13:12:23:801 [debug] [slotProcessFileIdsPushNotification] received notify_file_id push notification account="<account>@<serverB>" fileIds=QList(8990247)
2026-07-13 13:12:23:801 [debug] [slotProcessFileIdsPushNotification] no matching file ids, ignoring folder="2" account="<account>@<serverB>"

Additional info

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    Fields

    No fields configured for Bug.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions