Re-confirmed unchanged on 0.21.0 (2026-09-07).
- Repro.
CREATE OR REPLACE LAYOUT ProbeSecond.App_Other (layouttype: 'Responsive', class: 'layout-atlas') {
scrollcontainer layoutContainer { region center (Class: 'region-content') { placeholder Content } }
}
- Measured.
mxcli check -p --references → Check passed!; exec → Created layout;
mx check → CE0848 "No placeholder with the name 'Main' found. There should be exactly one."
at Layout 'ProbeSecond.App_Other'.
- This contradicts the release notes' own rationale. 0.20.0 argues that which placeholder is
"main" is a naming convention (22 of 22 Atlas layouts name one Main, and a page binds by
qualified name anyway), and on that basis declines to expose MainPlaceholderName as a header
property. mxbuild enforces it as a rule. Since mxcli now writes layouts, it should enforce
the same rule the builder does — a one-line check at the point the layout is built.
- ⛔ Compounding: there is no
DROP LAYOUT verb. DROP LAYOUT Mod.Name is a parse error
(no viable alternative at input 'DROPLAYOUT'), and no drop form appears anywhere under
mxcli syntax layout / layout.alter / layout.show. A layout is creatable and alterable but
not removable — unique among the doctypes mxcli writes (pages, microflows, entities, queues,
rules and folders all have one). So a layout authored with the wrong placeholder name cannot be
deleted headlessly; it must be repaired with CREATE OR REPLACE LAYOUT.
- ⚠ Related, same area:
placeholder Name { } — the page spelling, with braces — passes
mxcli check inside a layout and is then refused by exec with
"layout X declares no placeholder: a page's content has nowhere to go. Add placeholder Main…".
In a layout the placeholder is bare. The exec message is excellent; the check that preceded
it validated the wrong grammar.
mxcli 0.21.0 (mxcli-windows-amd64.exe, 2026-09-06 build), Mendix 11.11.0 / 11.12.x, Windows 11. Each item was re-measured on a fresh app with a control of the same construct type, and every mx check verdict is the literal The app contains: N errors. line. We keep the full register with repros in our repo; happy to share more detail.
Re-confirmed unchanged on 0.21.0 (2026-09-07).
mxcli check -p --references→Check passed!;exec→Created layout;mx check→ CE0848 "No placeholder with the name 'Main' found. There should be exactly one."at
Layout 'ProbeSecond.App_Other'."main" is a naming convention (22 of 22 Atlas layouts name one
Main, and a page binds byqualified name anyway), and on that basis declines to expose
MainPlaceholderNameas a headerproperty. mxbuild enforces it as a rule. Since mxcli now writes layouts, it should enforce
the same rule the builder does — a one-line check at the point the layout is built.
DROP LAYOUTverb.DROP LAYOUT Mod.Nameis a parse error(
no viable alternative at input 'DROPLAYOUT'), and no drop form appears anywhere undermxcli syntax layout/layout.alter/layout.show. A layout is creatable and alterable butnot removable — unique among the doctypes mxcli writes (pages, microflows, entities, queues,
rules and folders all have one). So a layout authored with the wrong placeholder name cannot be
deleted headlessly; it must be repaired with
CREATE OR REPLACE LAYOUT.placeholder Name { }— the page spelling, with braces — passesmxcli checkinside a layout and is then refused byexecwith"layout X declares no placeholder: a page's content has nowhere to go. Add
placeholder Main…".In a layout the placeholder is bare. The exec message is excellent; the check that preceded
it validated the wrong grammar.
mxcli 0.21.0 (
mxcli-windows-amd64.exe, 2026-09-06 build), Mendix 11.11.0 / 11.12.x, Windows 11. Each item was re-measured on a fresh app with a control of the same construct type, and everymx checkverdict is the literalThe app contains: N errors.line. We keep the full register with repros in our repo; happy to share more detail.