Hi,
We’ve run into this exact behavior in offline apps before. What you’re seeing is not a configuration mistake — it’s how the offline runtime handles System.Image.
In offline (Phone_Offline), when you use Take Picture, the object gets committed immediately, but the file content (binary) is written and resolved separately. The UI often tries to render the image before that content is fully available locally. That’s why you see the object but not the image.
Your current flow is technically correct, but the problem is using the same in-memory object instance after capture.
The fix is simple, but important:
Do not display the same object instance after Take Picture. Always re-retrieve it.
Nanoflow:
UI:
This forces Mendix to load the object again from the local offline database, including the file reference, which allows the Image Viewer to render correctly.
In offline mode:
Re-retrieving ensures the UI binds to a fully persisted object, not a partially available in-memory one.
If it still doesn’t render consistently on some devices, adding a very small delay (200–300 ms) before navigation can help, but usually re-retrieving is enough.
Hi Gowtham Ramesh Thanks for your comment. I have tried retrieve object image after take picture but it not show. What happen about it?
If you already tried retrieve after take picture and the image still does not show, then the issue is probably not only the object instance.
In offline PWA, the object itself can be available, but the binary content of System.Image may still not be rendered correctly right after capture. So even if the record exists and retrieval works, the UI may still show an empty or broken image.
At that point, I would suggest checking these points:
If it still fails after that, then this starts to look more like an offline PWA limitation with image binary rendering rather than a logic issue in your nanoflow.
So the safe conclusion is: your flow is mostly correct, but offline PWA does not always render captured System.Image content reliably immediately after capture.
If this resolves your issue, please mark it as the accepted answer.
One additional detail is that when I use the Phone profile, I can display images. However, when I use the PhoneOffline profile, images cannot be displayed.
Both use the same page, logic, and widgets.
That additional detail actually makes the root cause quite clear. If everything works in the Phone profile but fails in Phone_Offline, then this is not related to your nanoflow or widget setup. Your flow (Take Picture → Commit → Refresh) is already correct. The difference comes from how offline PWA handles binary data. In Phone_Offline, the object itself is stored in the local database and its attributes are available, but the binary content of System.Image is not always immediately accessible or rendered right after capture, which is why you see an empty or broken image even though the record exists. This is expected behavior in some offline scenarios and not a mistake in your implementation. In contrast, the Phone profile works because it uses the online runtime and streams the image directly, so there is no local binary limitation. As workarounds, you can try forcing a fresh retrieve after commit and opening the image on a new page (to trigger re-rendering), adding a small delay before displaying the image, or syncing before showing it. If you need a more stable solution, loading images via URL (instead of relying on local binary immediately after capture) is generally more reliable in offline setups. So overall, your implementation is finse. This is mainly a limitation of offline PWA image rendering.
If this resolves your issue, please mark it as the accepted answer.