Skip to content

Error changing the order of actions in a Quick Action #13308

Description

@madbob

Steps to reproduce

  • create a new Quick Action
  • add an action of type "Move Thread" selecting any folder as destination
  • save the Quick Action
  • go to edit the previously created Quick Action
  • add an action of type "Tag" selecting any tag
  • save again the Quick Action

Expected behavior

The Quick Action is saved, and configured to perform the addition of a tag and the move to a different folder.

Actual behavior

At the second save, nothing happens in frontend.

Server returns the following payload:

{
    "status": "error",
    "message": "Cant perform actions after moveThread",
    "data": {
        "debug": true,
        "type": "OCA\\Mail\\Exception\\ServiceException",
        "message": "Cant perform actions after moveThread",
        "code": 0,
        "trace": [
            {
                "file": "\/path\/of\/nextcloud\/apps\/mail\/lib\/Service\/QuickActionsService.php",
                "line": 102,
                "function": "validateActionStep",
                "class": "OCA\\Mail\\Service\\QuickActionsService"
            },
            {
                "file": "\/path\/of\/nextcloud\/apps\/mail\/lib\/Controller\/ActionStepController.php",
                "line": 57,
                "function": "createActionStep",
                "class": "OCA\\Mail\\Service\\QuickActionsService"
            },
            {
                "file": "\/path\/of\/nextcloud\/lib\/private\/AppFramework\/Http\/Dispatcher.php",
                "line": 165,
                "function": "create",
                "class": "OCA\\Mail\\Controller\\ActionStepController"
            },
            {
                "file": "\/path\/of\/nextcloud\/lib\/private\/AppFramework\/Http\/Dispatcher.php",
                "line": 78,
                "function": "executeController",
                "class": "OC\\AppFramework\\Http\\Dispatcher"
            },
            {
                "file": "\/path\/of\/nextcloud\/lib\/private\/AppFramework\/App.php",
                "line": 137,
                "function": "dispatch",
                "class": "OC\\AppFramework\\Http\\Dispatcher"
            },
            {
                "file": "\/path\/of\/nextcloud\/lib\/private\/Route\/Router.php",
                "line": 324,
                "function": "main",
                "class": "OC\\AppFramework\\App"
            },
            {
                "file": "\/path\/of\/nextcloud\/lib\/base.php",
                "line": 1159,
                "function": "match",
                "class": "OC\\Route\\Router"
            },
            {
                "file": "\/path\/of\/nextcloud\/index.php",
                "line": 25,
                "function": "handleRequest",
                "class": "OC"
            }
        ],
        "previous": null
    },
    "code": 0
}

Reloading the web page and opening again the edited Quick Action, actions list is empty: previously configured actions are lost.

Mail app version

5.10

Nextcloud version

No response

Mailserver or service

No response

Operating system

No response

PHP engine version

No response

Nextcloud memory caching

No response

Web server

No response

Database

No response

Additional info

My guess is that Quick Action contents should be saved in a single step, as calling "/apps/mail/api/action-step" individually for all single actions do not provide context and do not permits proper server-side validation.

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