Skip to content

mxcli docker run` fails on Mendix 10.x — no alternative path to run the app #211

@TOFBuck

Description

@TOFBuck

Bug: mxcli docker run fails on Mendix 10.x — no alternative path to run the app

Environment

  • mxcli version: v0.6.0-dirty (2026-04-09)
  • Mendix version: 10.24.x
  • Platform: Linux (devcontainer via WSL2)
  • Java: OpenJDK Temurin 21

Problem

mxcli docker run does not work with Mendix 10.x projects. The PAD (Portable App Distribution) build target requires Mendix >= 11.6.1, but there is no fallback or alternative for earlier versions.

Steps to reproduce

  1. Open any Mendix 10.x project in a devcontainer
  2. Run ./mxcli docker run -p app.mpr --wait

Actual result

Error: docker build: portable app distribution requires Mendix >= 11.6.1, found 10.24.x

Expected result

Either:

  • mxcli docker run should support Mendix 10.x using the --target=deploy MxBuild approach (MDA/deployment directory) instead of PAD
  • Or there should be a clear alternative command (e.g., mxcli run -p app.mpr) that works for Mendix 10.x

Additional issue: Runtime launcher start action fails silently

When trying to manually start the Mendix 10.24 runtime using the launcher JAR, the M2EE admin start action fails with no usable error output.

Steps to reproduce

# Build deployment directory (works fine)
mxbuild --target=deploy --java-home=$JAVA_HOME --java-exe-path=$(which java) app.mpr
# BUILD SUCCEEDED

# Start the runtime launcher (works — admin port responds)
MX_INSTALL_PATH=~/.mxcli/runtime/10.24.x \
M2EE_ADMIN_PASS=<password> \
M2EE_ADMIN_PORT=8090 \
java -jar ~/.mxcli/runtime/10.24.x/runtime/launcher/runtimelauncher.jar ./deployment

# Launcher starts successfully:
# [rtlauncher:container$] INFO Container start took 4831. Ready to accept admin requests.

# Check status (works):
curl -X POST http://localhost:8090/ \
  -H "X-M2EE-Authentication: <base64-encoded-password>" \
  -d '{"action":"runtime_status"}'
# {"feedback":{"status":"feut"},"result":0}

# Start the runtime (FAILS):
curl -X POST http://localhost:8090/ \
  -H "X-M2EE-Authentication: <base64-encoded-password>" \
  -d '{"action":"start","params":{"autocreatedb":true}}'

Actual result

{
  "result": 1,
  "stacktrace": "See logging output for stack trace.",
  "message": "class com.mendix.m2ee.api.internal.AdminException occurred while executing an admin action request. See logging output for details."
}

The logging output is EMPTY. Despite:

  • stdout/stderr being redirected to a file (verified via /proc/PID/fd/1)
  • MX_LOG_LEVEL=v (verbose) and MX_LOG_LEVEL=d (debug) being set
  • The start_logging admin action returning success
  • Trying to create log subscribers via the admin API

The Java process produces zero output after the initial container startup lines. The actual error from the start action is completely invisible.

Expected result

The error message from the start action should be:

  1. Written to stdout/stderr so it can be captured
  2. Or accessible via a log retrieval admin action
  3. Or included in the JSON response body (not just "See logging output")

Impact

This makes it impossible to run Mendix 10.x projects via mxcli in a devcontainer, which blocks:

  • Automated testing with playwright-cli
  • Screenshot generation
  • Any browser-based verification workflow

Suggestion

  1. Support Mendix 10.x in mxcli docker run using MxBuild --target=deploy + a runtime launcher container
  2. Ensure the runtime launcher writes startup errors to stdout
  3. Include the actual stack trace in the M2EE admin API error response

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions