Repository navigation
No MDL form binds the Image widget to an image object; dynamicimage fails CE0582 in React apps #1476
Description
Summary
A React-client app cannot show an image that a user uploaded (a System.Image object) through MDL:
- The pluggable Image widget (
com.mendix.widget.web.image, v1.5.0) shows an image object through itsimageObjectproperty. MDL can only point that property at an image-collection entry (Image: 'Module.Collection.Name'), so there is no way to bind it to the object in context. - The legacy
dynamicimagewrites a valid model since Selectionhelper with renderStyle: 'custom' — slot children containing StaticImageViewer are not re-executable; workaround requires placeholder dynamictext #1057, but a React-client app refuses it with CE0582.
So MDL has no form that shows an uploaded photo on a page in a Mendix 11 React-client app.
Reproduction
Measured with mxcli v0.26.0, Mendix 11.12.1, on a new app (React client, the default):
mdl 1;
create persistent entity MyFirstModule.Photo extends System.Image (
Caption: String(200)
);
create or modify page MyFirstModule.Photo_View (Title: 'Photo', Layout: Atlas_Core.PopupLayout,
Params: ($Photo: MyFirstModule.Photo)) {
dataview Photo_View_Form (DataSource: $Photo) {
image Photo_View_Image () -- variant A, B or C below
}
};| Variant | mxcli check |
mx check |
|---|---|---|
A. image Photo_View_Image () |
MDL-WIDGET22: names no image | [error] "No image selected." at Image 'Photo_View_Image' |
B. image Photo_View_Image (ImageType: dynamicImage) |
passes | 0 errors |
C. dynamicimage Photo_View_Image (DataSource: database from MyFirstModule.Photo) |
passes | [error] [CE0582] "Widget dynamic image is not supported in React client." |
Notes:
- Variant B is not a dynamic image.
dynamicImageis not one of the widget'sdatasourcevalues, which areimage,imageUrlandiconinImage.xml. mxcli accepts and stores the unknown value without a warning, and the build passes. I did not check what it renders, but it cannot be bound to the object either. Rejecting an unknown enumeration value at check time would have saved an agent several attempts. - The widget's own definition says the dynamic case exists.
imageObjectis of typeimage, which Studio Pro lets you set to a static image or to the image object in context, anddefaultImageDynamicis described as "the image that is displayed if no image is uploaded". mxcli syntax page widgetsnames the three sources MDL supports: a collection image,imageUrlandicon.
What an agent does instead
An agent building a product catalogue with uploaded photos spent about six minutes on variants A to C, then worked around it:
- a JavaScript action computes the image's URL with
mx.data.getDocumentUrlandmx.data.getImageUrl; - the URL is stored in a new String attribute on the entity;
- an
image (ImageType: imageUrl, ImageUrl: '{1}', ...)shows it.
That works, but it adds an attribute to the domain model only to carry a URL that depends on the object's change date, and every agent has to rediscover it.
Expected
An MDL form that binds the Image widget's imageObject to the image object in context, for example the data view's object or an association path to a System.Image specialisation. It would also need describe page to print it back, and defaultImageDynamic as the fallback image.
A Studio Pro-authored sample of the dynamic imageObject binding would pin the BSON shape. The legacy dynamicimage fix noted that a blank 11.12.1 app has none, so the sample has to come from a page made in Studio Pro.
Activity
github-actions commentedon Oct 13, 2026
Issue Triage
Summary:
The user reports that MDL cannot bind the Mendix Image widget to an uploaded
System.Imageobject in a React‑client app, and the legacydynamicimagewidget is rejected with error CE0582.Checklist of required bug‑report information
mxcli v0.26.0mentionedMendix 11.12.1(React client)imageObjectto the image in context, plusdescribe pageoutput anddefaultImageDynamicfallbackmxcli diag --bundle)Missing information
Please provide the session log or the output of
mxcli diag --bundle(or at least the relevant log excerpt) so we can reproduce the environment and see any additional diagnostics.Thank you for the detailed report! Once we have the log, we’ll be able to investigate further.
Automated triage via OpenRouter — workflow source
Merge pull request #1201 from ako/claude/determined-faraday-czgewr
fix(pages): bind the Image widget to an uploaded image with `Image: $…