Skip to content

No MDL form to CLEAR a widget action: SET Action = NOTHING parses but the executor rejects it #996

Description

@MohamedGamalEzzatAli

mxcli version: v0.20.0 (release 2026-08-28) · exec repro on a Mendix 11.12.1 bench project

Studio Pro's action pickers have a first-class value "Nothing" (no action). MDL has no way to write it: SET Action = NOTHING parses but the executor rejects it, and no other null/clear form exists. So an action can be set and retargeted via MDL, but never cleared.

Repro

c.mdl:

ALTER PAGE MyModule.UploadPage {
  SET Action = NOTHING ON btnCancel;
};

mxcli check c.mdl (no project):

✓ Syntax OK (1 statements)

mxcli exec c.mdl -p App.mpr (bench project, Mendix 11.12.1, btnCancel carries Action: cancel_changes close_page):

Connected to: App.mpr (Mendix 11.12.1)
Error: failed to set: Action value must be an action expression, for example `set Action = microflow Module.MF on btnSave`

describe page afterwards shows the widget unchanged — the refusal is clean, no corruption. But the grammar accepting what the executor always rejects means a check-clean script still fails at exec.

Expected

Either:

  1. Accept NOTHING at exec — write the same empty/no-action node the Model SDK writes when a user picks "Nothing" in Studio Pro (preferred; it completes the action-value domain), or
  2. Reject NOTHING at parse time with a clear "clearing an action is not supported" message, and say so in the alter-page docs.

Why it matters

Some pluggable widgets require a slot to be "Nothing" to behave correctly — e.g. FileUploader's onUploadFailureFile: leaving a stale microflow wired there breaks the widget's own failure handling ("No argument selected for 'UploadedFile'"-class errors at runtime). A fresh CREATE PAGE scaffold inherits a clean null, but an existing widget's action can only be cleared by hand in Studio Pro today.

(If/when named slots become SET-addressable — see #995NOTHING should be a legal value there too.)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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