Skip to content

[bug] Webhook events do not serialize labels in mongo filters #8245

Description

@benniekiss

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.

Describe the bug
When a webhook is registered and filters on a dot-notation query for a label attribute, the query fails because the labels are not serialized properly.

To Reproduce

  1. Register the following webhook:
{
    "httpMethod": "POST",
    "uri": "https://<INSERT TRUSTED WEBHOOK LOCATION>",
    "event": "OCA\\Deck\\Event\\CardUpdatedEvent",
    "eventFilter": {
        "event.card.labels.title": "foo"
    },
    "authMethod": null,
    "authData": null,
    "tokenNeeded": null
}
  1. Create a card and assign it a label.

  2. Monitor logs for the following error:

OCA\WebhookListeners\Service\PHPMongoQuery::_executeOperatorOnElement(): Argument #4 ($document) must be of type array, OCA\Deck\Db\Label given, called in /config/www/nextcloud/apps/webhook_listeners/lib/Service/PHPMongoQuery.php on line 220 in file '/config/www/nextcloud/apps/webhook_listeners/lib/Service/PHPMongoQuery.php' line 198

Expected behavior
The webhook should be able to filter on the label attributes.

Screenshots
N/A

Client details:

  • OS: macOS 26
  • Browser: Firefox
  • Version: 153.0.3
  • Device: macbook pro m2
Server details

Operating system:
container

Web server:
nginx

Database:
postgres 18

PHP version:
8.4.16

Nextcloud version: (see Nextcloud admin page)
34.0.2

Where did you install Nextcloud from:
container

Signing status:

Login as admin user into your Nextcloud and access
http://example.com/index.php/settings/integrity/failed
paste the results here.

List of activated apps:

If you have access to your command line run e.g.:
sudo -u www-data php occ app:list
from within your Nextcloud installation folder

Nextcloud configuration:

If you have access to your command line run e.g.:
sudo -u www-data php occ config:list system
from within your Nextcloud installation folder

or

Insert your config.php content here
Make sure to remove all sensitive content such as passwords. (e.g. database password, passwordsalt, secret, smtp password, …)

Are you using an external user-backend, if yes which one: LDAP/ActiveDirectory/Webdav/...

Logs

Nextcloud log (data/nextcloud.log)

Insert your Nextcloud log here

Browser log

Insert your browser log here, this could for example include:

a) The javascript console log
b) The network log
c) ...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions