Summary
864440db ("excluded page's dangling action references no longer block exec") lets an excluded page keep action references to documents the project doesn't have. The same allowance doesn't extend to data sources, so an excluded page whose data source names a missing document still can't be written back — by check or by the builder.
Verified on main at 2a723ec7, Mendix 11.13.0.
The check output states the rule, then contradicts it
FeedbackModule.ShareFeedback_Logo ships excluded — it's the Examples/WithCompanyLogo variant of the Feedback marketplace module, and the nanoflows it names are genuinely absent from the project.
$ mxcli -p App.mpr -c "DESCRIBE PAGE FeedbackModule.ShareFeedback_Logo" > sfl.mdl
$ mxcli check sfl.mdl -p App.mpr --references
page 'FeedbackModule.ShareFeedback_Logo' is excluded, so its unresolved
references do not block (Mendix does not validate excluded documents):
- nanoflow not found: FeedbackModule.ACT_TriggerScreenshotMode
- nanoflow not found: FeedbackModule.ACT_UploadImage
- nanoflow not found: FeedbackModule.ACT_ClearImage
- nanoflow not found: FeedbackModule.ACT_ClearForm
Reference errors:
statement 1: page 'FeedbackModule.ShareFeedback_Logo' is excluded, but a
data source or entity it names does not exist:
- nanoflow not found: FeedbackModule.DS_FeedbackForm (data source)
✗ 1 reference error(s) found
Four actions tolerated with the reason spelled out — "Mendix does not validate excluded documents" — and then one data source blocks, on the same excluded page, two lines later. The four missing nanoflows and the one missing nanoflow are equally missing; only the slot they sit in differs.
It's the builder too, not only the checker
--no-check doesn't get past it:
$ mxcli exec sfl.mdl -p App.mpr --no-check
Error: failed to build page: failed to build widget: failed to build datasource:
failed to resolve nanoflow: nanoflow not found: FeedbackModule.DS_FeedbackForm
So the writer insists on resolving a data source that the page, being excluded, will never run.
The build is the arbiter and it doesn't care
The pristine project — this page present and excluded, those nanoflows absent — is clean:
$ mx check App.mpr
The app contains: 0 errors.
mxbuild doesn't compile excluded documents, which is the whole point of the exclusion. check's own message says this.
Impact
Small but exact: it's the only one of 20 pages in my test project that won't round-trip on this build, and it's the last thing between DESCRIBE PAGE → exec over a whole project and a clean sweep. With #662, #663 and the 54A fixes in, replaying the other 19 pages leaves the project at mx check 0 errors.
Suggested fix
Apply 864440db's allowance to data sources and entities on an excluded document, in the builder as well as the reference checker — leave the reference as stored, or write a placeholder, rather than hard-resolving it.
Suggested guard: round-trip every page of a fixture project that contains an excluded page with a dangling data source. The action case is presumably already covered by 864440db's test; this is the same test with the reference moved to the other slot.
Summary
864440db("excluded page's dangling action references no longer block exec") lets an excluded page keep action references to documents the project doesn't have. The same allowance doesn't extend to data sources, so an excluded page whose data source names a missing document still can't be written back — bycheckor by the builder.Verified on
mainat2a723ec7, Mendix 11.13.0.The check output states the rule, then contradicts it
FeedbackModule.ShareFeedback_Logoships excluded — it's theExamples/WithCompanyLogovariant of the Feedback marketplace module, and the nanoflows it names are genuinely absent from the project.Four actions tolerated with the reason spelled out — "Mendix does not validate excluded documents" — and then one data source blocks, on the same excluded page, two lines later. The four missing nanoflows and the one missing nanoflow are equally missing; only the slot they sit in differs.
It's the builder too, not only the checker
--no-checkdoesn't get past it:So the writer insists on resolving a data source that the page, being excluded, will never run.
The build is the arbiter and it doesn't care
The pristine project — this page present and excluded, those nanoflows absent — is clean:
mxbuild doesn't compile excluded documents, which is the whole point of the exclusion.
check's own message says this.Impact
Small but exact: it's the only one of 20 pages in my test project that won't round-trip on this build, and it's the last thing between
DESCRIBE PAGE→execover a whole project and a clean sweep. With #662, #663 and the 54A fixes in, replaying the other 19 pages leaves the project atmx check0 errors.Suggested fix
Apply
864440db's allowance to data sources and entities on an excluded document, in the builder as well as the reference checker — leave the reference as stored, or write a placeholder, rather than hard-resolving it.Suggested guard: round-trip every page of a fixture project that contains an excluded page with a dangling data source. The action case is presumably already covered by
864440db's test; this is the same test with the reference moved to the other slot.