Skip to content

check -p and exec accept a navigation profile or menu whose home page or menu-item page/microflow does not exist #1569

Open

Description

@stagknee

Repro (v0.26.0, v0.27.0, current main, and #1564; Mendix 11.12.5)

create or replace navigation Responsive
  home page Shop.NoSuchHome
  menu (
    menu 'G' (
      menu item 'Bogus' page Shop.NoSuchPage;
      menu item 'Bogus2' microflow Shop.ACT_NoSuchFlow;
    );
    menu item 'Bogus3' page Shop.NoSuchPage3;
  );

The mdl 1 form behaves the same way:

create or modify navigation Responsive home page Shop.NoSuchHome {
  menu item 'Bogus' ( OnClick: show page Shop.NoSuchPage )
  menu 'G' { menu item 'Bogus2' ( OnClick: call microflow Shop.ACT_NoSuchFlow ) }
};
  1. mxcli check nav.mdl -p app.mpr reports "Check passed!", with only deprecation warnings for the old form.
  2. exec prints "Navigation profile 'Responsive' updated." and stores every item.
  3. mx check is the first to object, with 4 × CE1613: "The selected page 'Shop.NoSuchHome' no longer exists." at the Navigation profile, and the same for each menu item's page or microflow.

show page and call microflow actions on a page are refused when their target doesn't exist, and so is an unknown icon. Navigation targets weren't among the reference kinds added for #1472. That includes the home page, which the original report didn't mention.

Why it matters

create or replace navigation replaces the menu it states (and, since #1522, keeps any clause it omits), and it is usually the last script of an apply. A renamed page or a typo in a menu target therefore passes per-file checks and lands in the model, and it only surfaces at the consistency check after everything has been applied. A run without mx check leaves a project that won't build.

Proposal

check -p reports an unresolved navigation or menu target, and exec refuses before writing, using the same resolution and wording as the existing page and flow reference checks. Targets created earlier in the same script, and targets in System or Marketplace modules, still resolve. I have a PR ready and will link it.

Activity

  1. github-actions commented on Oct 17, 2026

    @github-actions

    Issue Triage

    Summary
    The issue reports that mxcli check -p and exec incorrectly allow navigation profiles or menu items that reference non‑existent pages or microflows, while the later mx check catches the problem.

    Checklist for bug report completeness

    Required info Present? Details
    mxcli version ✅ v0.26.0, v0.27.0, current main, and #1564 mentioned
    Mendix version ✅ Mendix 11.12.5
    Scenario (what was done) ✅ MDL script shown, commands mxcli check nav.mdl -p app.mpr, exec, mx check
    Expected output ✅ check -p should flag unresolved navigation/menu targets; exec should refuse before writing
    Experienced output ✅ check -p reports “Check passed!” (only deprecation warnings); exec updates navigation; mx check yields CE1613 errors
    AI bug report (session log or mxcli diag --bundle) ❌ Not included

    What’s missing
    Could you please provide the session log or the output of mxcli diag --bundle for a run that reproduces the problem? This will help us diagnose the issue more precisely.

    Thank you for the detailed report! Once we have the diagnostic information, we can move forward with investigating and fixing the behavior.


    Automated triage via OpenRouter — workflow source

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