mxcli version: reproduced on v0.13.0 (2026-06-20T10:38:49Z) — latest and v0.11.0 (2026-05-21T18:04:46Z). The v0.13.0 default modelsdk codec engine does not fix it.
Mendix version: 10.x (project AssetManagement)
Severity: Medium — blocks documentation/extraction of complex microflows; silent (looks like a hang)
Diagnostic bundle: mxcli-diag-20260629-104537.tar.gz (fresh, on v0.13.0; available on request)
Related (closed) issues: #281 (DESCRIBE MICROFLOW completeness) and #651 (REFRESH CATALOG SOURCE 5m timeout, O(N²)) — this is a distinct path (the mdl/json serializer of a single describe microflow), still open.
Summary
describe microflow on a high-complexity microflow (McCabe 44, 98 activities) times out after exactly 300s when rendering to mdl (default) or json. The mermaid format renders the same microflow — including all conditions and validation-feedback metadata — in ~1.4s. This indicates the graph extraction is fast; the bottleneck is in the MDL/JSON serialization (likely path/branch enumeration that scales pathologically with cyclomatic complexity).
Steps to Reproduce
Target: AssetManagement.Asset_Validate (Boolean, 98 activities, McCabe 44).
# All three time out after 300s:
mxcli describe -p AssetManagement.mpr microflow AssetManagement.Asset_Validate # mdl (default)
mxcli describe -p AssetManagement.mpr --format json microflow AssetManagement.Asset_Validate # json
mxcli -p AssetManagement.mpr -c "DESCRIBE MICROFLOW AssetManagement.Asset_Validate" # sql path → "statement timed out after 5m0s"
# This returns in ~1.4s with the full flow graph + @nodeinfo (conditions, messages, targets):
mxcli describe -p AssetManagement.mpr --format mermaid microflow AssetManagement.Asset_Validate
Expected vs Actual
- Expected:
mdl/json render in time comparable to mermaid (seconds).
- Actual:
mdl/json/-c hang to the 300s timeout and return nothing (exit 1, Error: statement timed out after 5m0s); mermaid succeeds instantly.
Re-test on v0.13.0 (latest), 2026-06-29
| command |
v0.11.0 |
v0.13.0 |
describe microflow … Asset_Validate (mdl, default) |
timeout 5m |
timeout 5m0s, exit 1 |
describe microflow … --format mermaid |
~1.4s |
0.34s, 332 lines |
v0.13.0 now suggests raising the limit via MXCLI_EXEC_TIMEOUT (e.g. MXCLI_EXEC_TIMEOUT=30m) in the error message — but since mermaid proves the extraction is sub-second, the serializer is the real bottleneck; raising the timeout treats the symptom, not the cause.
Hypothesis
Graph extraction is clearly fast (mermaid proves it). The MDL/JSON serializer likely enumerates execution paths/branches in a way that is exponential in cyclomatic complexity. McCabe 44 appears to cross the threshold where it no longer completes within 300s.
Impact
The analyze-for-docs / knowledge-extraction workflows default to DESCRIBE MICROFLOW (MDL). Every McCabe-heavy flow is silently skipped (timeout), leaving gaps in generated documentation and unit-test inputs.
Workaround
Use --format mermaid for complex flows; the @nodeinfo block at the bottom of the mermaid output contains each node's condition, validation-feedback target and message — enough to reconstruct the full logic.
mxcli version: reproduced on v0.13.0 (2026-06-20T10:38:49Z) — latest and v0.11.0 (2026-05-21T18:04:46Z). The v0.13.0 default
modelsdkcodec engine does not fix it.Mendix version: 10.x (project AssetManagement)
Severity: Medium — blocks documentation/extraction of complex microflows; silent (looks like a hang)
Diagnostic bundle:
mxcli-diag-20260629-104537.tar.gz(fresh, on v0.13.0; available on request)Related (closed) issues: #281 (DESCRIBE MICROFLOW completeness) and #651 (REFRESH CATALOG SOURCE 5m timeout, O(N²)) — this is a distinct path (the mdl/json serializer of a single
describe microflow), still open.Summary
describe microflowon a high-complexity microflow (McCabe 44, 98 activities) times out after exactly 300s when rendering tomdl(default) orjson. Themermaidformat renders the same microflow — including all conditions and validation-feedback metadata — in ~1.4s. This indicates the graph extraction is fast; the bottleneck is in the MDL/JSON serialization (likely path/branch enumeration that scales pathologically with cyclomatic complexity).Steps to Reproduce
Target:
AssetManagement.Asset_Validate(Boolean, 98 activities, McCabe 44).Expected vs Actual
mdl/jsonrender in time comparable tomermaid(seconds).mdl/json/-chang to the 300s timeout and return nothing (exit 1,Error: statement timed out after 5m0s);mermaidsucceeds instantly.Re-test on v0.13.0 (latest), 2026-06-29
describe microflow … Asset_Validate(mdl, default)describe microflow … --format mermaidv0.13.0 now suggests raising the limit via
MXCLI_EXEC_TIMEOUT(e.g.MXCLI_EXEC_TIMEOUT=30m) in the error message — but sincemermaidproves the extraction is sub-second, the serializer is the real bottleneck; raising the timeout treats the symptom, not the cause.Hypothesis
Graph extraction is clearly fast (mermaid proves it). The MDL/JSON serializer likely enumerates execution paths/branches in a way that is exponential in cyclomatic complexity. McCabe 44 appears to cross the threshold where it no longer completes within 300s.
Impact
The
analyze-for-docs/ knowledge-extraction workflows default toDESCRIBE MICROFLOW(MDL). Every McCabe-heavy flow is silently skipped (timeout), leaving gaps in generated documentation and unit-test inputs.Workaround
Use
--format mermaidfor complex flows; the@nodeinfoblock at the bottom of the mermaid output contains each node's condition, validation-feedback target and message — enough to reconstruct the full logic.