Summary
describe microflow drops the OffsetExpression/LimitExpression of a Range list operation (range($List, $offset, $amount)). It prints the bare form range($List) instead, with no warning and exit code 0. mxcli check passes on the truncated output. Re-executing that output would silently turn a paged range into a whole-list range — a behaviour change, not just a formatting loss.
This is a separate serialization defect from the annotated-loop-body issue (a different microflow node type, ListOperationsAction vs. LoopedActivity), found on the same flow during the same session — see that issue for context on why this flow ended up needing both checks.
mxcli version
mxcli version v0.18.0 (2026-08-14T20:29:13Z)
Mendix version
10.24.24.119653
Severity
High for the same reason as the loop-body issue: it's a silent, gate-invisible loss on the documented describe → exec round-trip, and it changes runtime behaviour (paging → no paging) rather than just losing cosmetic detail.
What was measured
On a microflow with a ListOperationsAction storing:
Microflows$ListRange → Microflows$CustomRange
OffsetExpression: "$offset"
LimitExpression: "$amount"
(verified via mxcli bson dump --type microflow), mxcli describe prints:
range($RawMessageList_ForSensor)
— both expressions gone. mxcli check reports no error on the resulting script.
Authoring side is fine
Writing range($L, $offset, $amount) via create or modify microflow parses correctly and stores both OffsetExpression and LimitExpression as expected (confirmed by exec followed by bson dump). The defect is purely in the describe serializer reading it back.
Expected behaviour
describe should emit range($List, $offset, $amount) when both expressions are present on the stored Microflows$CustomRange.
Actual behaviour
describe emits the bare range($List) form, silently dropping both expressions.
Secondary issue: undiscoverable syntax
mxcli syntax microflow.list-operations does not document the 3-argument range($L, $offset, $amount) form at all, so even though it works, there is no way to discover the working syntax from the CLI's own help output.
Why this matters together with the loop-body issue
A flow that has both an annotated loop body and a paged Range operation (as ours did) is not round-trippable through describe/exec by any route — every serialization path loses something. In our case this meant the fix had to be delivered as a new sub-microflow plus one manual Studio Pro activity swap, instead of a scripted MDL change.
Suggested fix
Serialize OffsetExpression/LimitExpression from Microflows$CustomRange when emitting a Range list operation, and document the 3-argument form in mxcli syntax microflow.list-operations.
Summary
describe microflowdrops theOffsetExpression/LimitExpressionof a Range list operation (range($List, $offset, $amount)). It prints the bare formrange($List)instead, with no warning and exit code 0.mxcli checkpasses on the truncated output. Re-executing that output would silently turn a paged range into a whole-list range — a behaviour change, not just a formatting loss.This is a separate serialization defect from the annotated-loop-body issue (a different microflow node type,
ListOperationsActionvs.LoopedActivity), found on the same flow during the same session — see that issue for context on why this flow ended up needing both checks.mxcli version
Mendix version
10.24.24.119653Severity
High for the same reason as the loop-body issue: it's a silent, gate-invisible loss on the documented describe → exec round-trip, and it changes runtime behaviour (paging → no paging) rather than just losing cosmetic detail.
What was measured
On a microflow with a
ListOperationsActionstoring:(verified via
mxcli bson dump --type microflow),mxcli describeprints:— both expressions gone.
mxcli checkreports no error on the resulting script.Authoring side is fine
Writing
range($L, $offset, $amount)viacreate or modify microflowparses correctly and stores bothOffsetExpressionandLimitExpressionas expected (confirmed byexecfollowed bybson dump). The defect is purely in thedescribeserializer reading it back.Expected behaviour
describeshould emitrange($List, $offset, $amount)when both expressions are present on the storedMicroflows$CustomRange.Actual behaviour
describeemits the barerange($List)form, silently dropping both expressions.Secondary issue: undiscoverable syntax
mxcli syntax microflow.list-operationsdoes not document the 3-argumentrange($L, $offset, $amount)form at all, so even though it works, there is no way to discover the working syntax from the CLI's own help output.Why this matters together with the loop-body issue
A flow that has both an annotated loop body and a paged Range operation (as ours did) is not round-trippable through
describe/execby any route — every serialization path loses something. In our case this meant the fix had to be delivered as a new sub-microflow plus one manual Studio Pro activity swap, instead of a scripted MDL change.Suggested fix
Serialize
OffsetExpression/LimitExpressionfromMicroflows$CustomRangewhen emitting a Range list operation, and document the 3-argument form inmxcli syntax microflow.list-operations.