Skip to content

On macOS mxcli setup mxbuild prints "Using Studio Pro mxbuild for X" and returns without touching ~/.mxcli/mxbuild/X/, so the remedy that run --local's own messages recommend leaves the cache exactly as broken as before #1124

Description

@MendixMau

Summary

Three places in the local run path tell the user to run mxcli setup mxbuild:

  • javadeps.go: Run 'mxcli setup mxbuild --version <ver>' if this misbehaves.
  • mxserve.go verifyMxBuildCache: mxbuild cache incomplete: missing runtime directory ... re-run 'mxcli setup mxbuild -p <app.mpr>'
  • mxserve.go StartServe: mxbuild not found; run 'mxcli setup mxbuild -p <app.mpr>' or pass ServeOptions.MxBuildPath

On macOS the command detects the version, finds the Studio Pro bundle, prints its path, and exits.
It creates no ~/.mxcli/mxbuild/<ver>/modeler link and does not replace a Linux CDN download that
is already there. Because StartServe reads only the cache (see b2a), the next run --local
fails in the same way as before the "remedy".

Environment

  • mxcli v0.21.0 (binary built 2026-09-06T15:33:18Z); cmd/mxcli/setup.go read at v0.21.0.
  • macOS (Darwin 25.6.0, Apple Silicon), Studio Pro 11.12.0 Beta and 11.12.2 Beta installed.
  • Mendix 11.12.2 project and a Mendix 11.12.0 blank app.

Steps to reproduce

Case A, entry absent:

$ ls -la ~/.mxcli/mxbuild/11.12.2/
runtime -> /Users/<me>/.mxcli/runtime/11.12.2/runtime

$ mxcli setup mxbuild -p <project>.mpr --version 11.12.2
Using Studio Pro mxbuild for 11.12.2: /Applications/Mendix Studio Pro 11.12.2 Beta.app/Contents/modeler/mxbuild
(No download needed. Re-run with --force to download the Linux CDN binary instead.)

$ mxcli setup mxbuild -p <project>.mpr
Detected Mendix version: 11.12.2
Using Studio Pro mxbuild for 11.12.2: /Applications/Mendix Studio Pro 11.12.2 Beta.app/Contents/modeler/mxbuild
(No download needed. Re-run with --force to download the Linux CDN binary instead.)

$ ls -la ~/.mxcli/mxbuild/11.12.2/
runtime -> /Users/<me>/.mxcli/runtime/11.12.2/runtime

Case B, wrong entry present:

$ file -b ~/.mxcli/mxbuild/11.12.0/modeler/mxbuild
ELF 64-bit LSB pie executable, ARM aarch64 ...
$ mxcli setup mxbuild -p <blankapp>.mpr
Detected Mendix version: 11.12.0
Using Studio Pro mxbuild for 11.12.0: /Applications/Mendix Studio Pro 11.12.0 Beta.app/Contents/modeler/mxbuild
(No download needed. Re-run with --force to download the Linux CDN binary instead.)
$ file -b ~/.mxcli/mxbuild/11.12.0/modeler/mxbuild
ELF 64-bit LSB pie executable, ARM aarch64 ...

In both cases the following mxcli run --local fails exactly as it did before (b2a shapes 1 and
2). The only thing that helps is a hand made symlink:
ln -s "/Applications/Mendix Studio Pro 11.12.2 Beta.app/Contents/modeler" ~/.mxcli/mxbuild/11.12.2/modeler.

Expected

Either setup mxbuild records its finding where the run path looks (a modeler symlink to the
Studio Pro bundle plus the runtime sibling, the layout verifyMxBuildCache already expects), or
the three messages stop recommending it on macOS and instead print the symlink, or say "install
Studio Pro ".

Actual

The command is a no op on the cache; the messages send the user in a circle.

Root cause

cmd/mxcli/setup.go (v0.21.0), macOS branch of setup mxbuild: after NativeMxBuildForSetup
returns a Studio Pro path it prints "Using Studio Pro mxbuild for %s: %s" and returns. The only
symlink writers in the tree are build.go:710, download.go:456, runlocal.go:395
(ensureMxBuildRuntimeSibling, runtime side only) and marketplace/refcache.go:341; none is on
this path.

Severity

Medium on mxcli v0.21.0 macOS: on its own it is a misleading remedy. Combined with b2a it is the
reason a macOS user must hand edit ~/.mxcli/mxbuild/ to run any project whose version was not
already cached, which is a blocker until b2a lands. Not applicable on Linux (the CDN download
populates the cache).

Trigger boundary

Cache state before setup mxbuild output Cache state after Next run --local
<ver>/ has runtime only Using Studio Pro mxbuild for 11.12.2 unchanged version mismatch (b2a shape 1)
<ver>/modeler is the Linux download Using Studio Pro mxbuild for 11.12.0 unchanged linux binary error (b2a shape 2)
<ver>/modeler symlink made by hand Using Studio Pro mxbuild for 11.12.2 unchanged build proceeds

Follow-up to #1122

This is the setup-side remedy for the resolver defect in #1122, split out per one-issue-one-file.
If #1122 is fixed by passing the resolved path through to StartServe, this one shrinks to "three
messages recommend a command that changes nothing on macOS".

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

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions