Skip to content

mxcli docker run fails on Apple Silicon: Studio Pro 11.10.0 Beta launches x86_64 Deno, panics under Rosetta #557

@dimenus

Description

@dimenus
Field Status Value
mxcli version v0.10.0-dirty (2026-05-13T20:04:50Z)
Mendix version 11.10.0 (Studio Pro 11.10.0 Beta)
Host macOS 24.6.0 (Sequoia), Apple Silicon (arm64)
Scenario mxcli docker run -p Foresight.mpr
Expected MxBuild completes, runtime starts in Docker
Experienced MxBuild aborts when the web-extensions runner crashes the bundled Deno

Summary

On Apple Silicon Macs, mxcli docker run (and any other path that
invokes Studio Pro 11.10.0 Beta's bundled mxbuild) fails because
MxBuild's web-extensions runner launches the x86_64 Deno binary
under Rosetta 2 instead of the native arm64 Deno that ships in the
same Studio Pro bundle. Deno 2.7.5 then panics with
Check failed: 12 == (*__error()) (errno 12 = ENOMEM, a known
Rosetta-2 / V8 init issue), MxBuild times out waiting for the
component host, and the build never produces a PAD package.

The bug is in Studio Pro, not mxcli — mxcli is doing the right
thing by delegating to Studio Pro's bundled MxBuild. We're filing this
here for visibility because every mxcli user on an Apple Silicon Mac
with Studio Pro 11.10.0 Beta installed will hit it, and mxcli is
positioned to detect / warn / auto-patch.

Output

Using Studio Pro installation: /Applications/Mendix Studio Pro 11.10.0 Beta.app/Contents
…
Checking project for errors...
  Project check passed.       ← project itself is fine (0 errors)
Running MxBuild (target=portable-app-package)...
…
Preparing the web extensibility environment...
[WebExtensionsRunner] > Deno has panicked. This is a bug in Deno.
[WebExtensionsRunner] > Platform: macos x86_64
[WebExtensionsRunner] > Version: 2.7.5
[WebExtensionsRunner] > Args: [".../modeler/tools/deno/osx-x64/deno", "run", …]
[WebExtensionsRunner] > thread 'main' (8496192) panicked at cli/lib.rs:565:5:
[WebExtensionsRunner] > Fatal error in :0: Check failed: 12 == (*__error()).
ERROR: System.Exception: Component Host failed to start within the expected time.
Error: docker build: mxbuild failed: exit status 1

Studio Pro bundle layout

$ file "/Applications/Mendix Studio Pro 11.10.0 Beta.app/Contents/MacOS/studiopro"
… Mach-O 64-bit executable x86_64
$ file ".../modeler/mxbuild"
… Mach-O 64-bit executable x86_64

$ ls   ".../modeler/tools/deno/"
osx-arm64
osx-x64

$ file ".../modeler/tools/deno/osx-arm64/deno"
… Mach-O 64-bit executable arm64        ← native, unused
$ file ".../modeler/tools/deno/osx-x64/deno"
… Mach-O 64-bit executable x86_64       ← gets selected, panics under Rosetta

The native arm64 Deno is right there. The web-extensions runner just
picks the x86_64 path based on the calling process's architecture
(which is x86_64 under Rosetta) instead of the hardware architecture
(arm64).

Confirmed root cause via workaround

Pointing mxcli docker run at a patched copy of MxBuild — same
binary, except the arm64 Deno is copied over the x86_64 path —
succeeds:

DEST="$HOME/.mxbuild-patched-11.10.0"
cp -R "/Applications/Mendix Studio Pro 11.10.0 Beta.app/Contents/modeler/" "$DEST/"
cp -a "$DEST/tools/deno/osx-arm64/deno" "$DEST/tools/deno/osx-x64/deno"

mxcli docker run --mxbuild-path "$DEST/mxbuild" -p Foresight.mpr

After the swap, MxBuild completes and the Docker stack comes up
cleanly. So the panic is not a real Deno bug, not a project bug, not
an mxcli bug — it's Studio Pro pointing at the wrong Deno on ARM.

Modifying the Studio Pro bundle in-place fails on Sequoia 15+ even
under sudo because of macOS App Management protection — the
out-of-tree mxbuild copy + --mxbuild-path was the only viable fix.

Filed upstream with Mendix

  • Mendix support ticket: 278610
  • Ticket is the canonical bug report; we attached the full failing
    output, the bundle architecture audit, and the workaround.

Suggestions for mxcli

This is upstream, but mxcli is closest to the user pain. A few options
ranked from cheapest to most invasive:

  1. Detect & warn: when running on arch == arm64 and the auto-
    selected mxbuild has an osx-x64/deno that is x86_64 alongside an
    osx-arm64/deno, log a clear warning with a one-liner workaround
    and a link to this issue / Mendix ticket 278610. Saves users the
    half-hour bisect.
  2. Document in the docker workflow skill / README: a short
    "Apple Silicon + Studio Pro 11.10.0 Beta" callout pointing at
    --mxbuild-path and the swap commands.
  3. Auto-stage a patched mxbuild: mxcli setup mxbuild already
    caches mxbuild at ~/.mxcli/mxbuild/{version}/. When the detected
    Studio Pro mxbuild has this defect, mxcli could clone it into the
    cache and apply the Deno swap automatically, then prefer the cached
    copy over the in-bundle one. Most invasive; most useful.

(1) on its own already prevents the wasted half hour. (3) makes the
experience zero-friction once the detection in (1) exists.

Repro

  1. Apple Silicon Mac, macOS 15+.
  2. Studio Pro 11.10.0 Beta installed at the default /Applications/
    path.
  3. Any Mendix 11.10.0 project that builds clean — we used a
    fresh-from-MyApps project plus a 10-commit demo
    (Foresight-main). mxcli docker check -p <proj>.mpr returns
    0 errors so the project is not the cause.
  4. mxcli docker run -p <proj>.mpr → crash as above.

Happy to attach the full log or run extra diagnostics if useful.

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