Last update: Edit


Release date: October 29th, 2019


New Features

  • You can now return Nothing from Java and JavaScript actions (which works in a way similar to returning Nothing from microflows). This is convenient for actions that do not return any values, like logging or fire-and-forget calls to external services.
  • You can now add a click action in the container widget for both web and native mobile pages.
  • It is now possible to dissolve a container and inline its content in one click. To make this even easier, you can now also wrap a selected widget in a container.
  • We have added support for building blocks with native mobile widgets.
  • Pluggable widget developers can now set their own help URL in the widget definition XML file. This can link to a Mendix App Store component or a GitHub Markdown page.
  • The width of layout grid columns can now be configured separately for phone, tablet, and responsive browsers (rather than just responsive). You can now easily tweak your layout grid to show a sensible number of columns side by side for different devices, rather than having to rely on the Mendix defaults.
  • Atlas UI can now detect an operating system’s dark mode in native mobile apps. This allows an end-user to use the dark mode automatically when available for their app’s theming.
  • The Show source file in Explorer context menu item has been added for Java actions in Project Explorer.
  • We updated the View > Full Screen option so that Studio Pro hides the title bar and makes the window fill the entire screen. We also added View > Distraction Free Mode, which is the same as Full Screen but also closes all dockable window panes.
  • You can now give a description of REST parameters, which will be included in the OpenApi 2.0 (Swagger) documentation.


Productivity Improvements

  • We changed the properties order of tab container so that the focus is set to the caption.
  • When exporting a module package, the list of dependent files can now easily be deselected in a single click with the new Select / deselect all check box.
  • You can now specify a fallback text for text templates, which will be displayed if there is no available data to fill in the template.
  • After removing languages in the Language Settings, you will now be asked if you also want to delete all the translations for those languages.
  • It is now possible to drop a compatible microflow or nanoflow onto a data view, list view, or grid to set it as that widget’s data source.

Version Control Improvements

We improved the Changes pane to make reviewing changes more efficient. This pane now has two levels instead of three. That means when you zoom into a changed document, you can review all the changes within that document without going back and forth. The zoomed-in level of the pane is split into two grids, with elements on the left and properties on the right. Selecting an element on the left presents the changed properties on the right. To go back to the list of changed documents, click Back. By getting rid of the breadcrumbs bar, there is some extra space to show changes, too. Please note that this is a complete rewrite of the Changes pane, and if you find issues, you can temporarily revert to the old pane through Edit > Preferences.

Dragging activities in microflows results in fewer changes than before. This makes interpreting those changes to the microflow simpler.

Also, purely visual changes (for example, moving microflow and domain model elements) and changing how associations and flows are connected do not lead to conflicts anymore! Thank you Chris de Gelder for your great idea here!

Finally, when it comes to collaborating with users in Mendix Studio, the History of dialog box now shows which documents were changed in Studio.

Data Grid with Microflow Search Support

In Studio Pro 8.2, we made it possible to do server-side sorting and paging when using a microflow as the data source in a data grid. With this release, we also added a search feature, which will make showing data from external systems a breeze!

Here’s how it works: Studio Pro generates the model for you, so it works out of the box with a single click, but you also have the flexibility to fully customize if needed. When selecting a microflow, you are asked to generate the controls, which now includes input fields for search values and a search and reset button. When you click Search, the entered values are passed in the Paging system entity, and you can then use them in your microflow.

Pluggable Widget Capability Improvements

Have you ever dreamed of creating your own group box or tab container fully customized to the specific needs of your app project? Well, this is now possible with the help of the new widgets pluggable widget property type. Thank you James Ramm for dreaming together with us!

Other Improvements

  • When starting an application with a native profile, the deployment process now takes less time, and the native packager starts in parallel to the runtime. This should mean slightly faster deploy times when building native applications!
  • We added new properties for styling the top, bottom, and status bars of native mobile apps. For details on these properties, see the Navigation Widget section of Native Styling.
  • Your web and native mobile application will now automatically reload, even when you are making changes that require the server to be restarted.
  • We have optimized how a data view with a microflow data source fetches its data. From now on, if the data view contains a widget that gets its data over an association, that associated data is fetched together with the data view’s data within one network request. That should make pages using many inputs and texts showing attributes over associations much faster!
  • We upgraded jackson-core.jar from 2.9.9 to 2.9.10 and jackson-databind.jar from to 2.9.10.
  • We added documentation links to page errors CE1573, CE1574, and CE0552 as well as to navigation error CE0548 and the “No image selected” error CE0436. For more information, see Consistency Errors.
  • We split some error codes in pages, microflows, and nanoflows according to whether there are arguments available. More specifically, we split CE0568 to (CE1568, CE1569) and CE0573 to (CE1573, CE1574). For more information on these errors, see Page Editor Consistency Errors.


  • We reintroduced improvements to the handling of one-to-one associations with Owner type Both. Now, more objects are marked as committed, and member states are set correctly. Earlier problems related to autocommit are now fixed. (Tickets 69877, 83548, 83911, 83548, 89712)
  • We fixed a bug where the contents of a microflow or nanoflow got lost when it was created with the Extract sub-microflow or Extract sub-nanofow functionality. (Tickets 89101, 88764)
  • We fixed an issue where, in native mobile apps, text box values were not stored until the keyboard was hidden or another input field was focused. As such, any logic that was fired directly after changing a text box value (for example, by clicking a button) did not receive the updated value. (Tickets 85339, 88408)
  • When you had a conditional visible widget and you deleted the object used by the conditional visibility expression, this resulted in an error. This has been fixed. (Tickets 88646, 88783, 89114, 89756, 90495, 90680)
  • We fixed a problem where after dropping a microflow, Java action, or JavaScript action from the Toolbox or Project Explorer into a flow editor, you needed to double click the action and then click OK to finally see the return variable appear. Now, the variable name is assigned straightaway.
  • We fixed the duplicated Cut, Copy, and Paste menu items appearing in the list operation action context menu. (Ticket 68345)
  • Mendix now clears up the return values of end events if your flow’s return type is set to Nothing. (Ticket 88651)
  • We fixed an issue with overlapping activities. When you click on the overlap, the top activity is no longer selected instead of the first created activity.
  • We fixed sequential hot reloads, which means you no longer have to navigate back to the screen you were working on when designing native mobile apps.
  • We fixed an issue where the result of some microflow actions (for example, exporting to JSON or a generating a document) did not include non-persistable objects reachable over association, even though these objects were available and/or visible in the client. (Ticket 88658)
  • We fixed a bug where files on disk (for example, Java code) was not deleted when a folder was deleted that contained the corresponding document. (Ticket 86911)
  • We fixed an issue where the canvas of the domain model did not move around when you held the middle mouse button. (Ticket 89033)
  • We fixed an issue where the loading icon of list views was not displayed correctly. (Ticket 88578)
  • If a consistency error was reported in Studio Pro about a design property that was not supported by the then-current theme, the right-click option to remove that property from the widget did not work unless the page was open for editing. This has been fixed. (Ticket 86873)
  • We fixed a bug in offline and native mobile apps where retrieving a non-persistable object using the Retrieve activity of the association retrieval type in nanoflows failed. (Tickets 87611, 88610, 88917, 89105)
  • We fixed an issue where the allowed roles for nanoflows were not taken into account for Navigation. (Ticket 87695)
  • We fixed an issue where using the createdDate or changedDate for a visibility expression in a page incorrectly resulted in a consistency error. (Tickets 76682, 84999)
  • We fixed a NullPointerException issue that occurred during database synchronization where the same name attribute was recreated. (Tickets 88584, 88663, 89063, 89138)
  • We fixed an issue where the generated SQL from an access rule and a combination with not() was invalid. (Ticket 88793)
  • Activating the menu bar (either by clicking it or pressing the Alt key) while editing a widget inline now confirms and closes the text editing mode. (Ticket 88705)
  • We fixed an issue where creating a new page while selecting a page for the create object action did not correctly generate a form page for the entity.
  • We fixed a bug that caused an inconsistency in session time zone configuration in clustered environments where no default user time zone was selected. (Ticket 69401)
  • We lowered the amount of database round trips during user session management. (Ticket 87626)
  • We changed the way scheduled events are handled during startup. The start DateTime of events will no longer influence the startup time of apps. (Tickets 87323, 87530)
  • We fixed the initial text for output variable, object, and list for the following microflow actions: list operation, create object, and retrieve.
  • A native dynamic image widget can now show a default image as a fallback when there is no dynamic image available. Please note that for consistency, all images (static and dynamic) are now contained in a View. This might break your styling. This can be fixed by setting the styling in the widget’s container property.

Known Issues

  • Not all one-to-one association values are communicated correctly from the Mendix Runtime to the Mendix Client. This could lead to values that seem to be missing in views, but which are present after a reload.
    • Workaround: Explicitly commit autocommitted objects in a microflow to ensure the results are correctly sent and shown.
  • Dragging and dropping a microflow from Project Explorer into a microflow to create a microflow call activity is not possible.
    • Workaround: Create a microflow activity, set the type to Microflow call, and select the required microflow.
  • MySQL 8.0 cannot be used with the default authentication plugin as of this moment. Mendix uses the open-source MariaDB driver to connect, which has not yet added support. We will include the updated driver as soon as it is released. To resolve this issue, you may consider using the previous default plugin until the driver has been updated.
  • The first deployment of an app project with a native mobile profile takes approximately one minute longer than usual, as the first deployment needs to build up a cache. On consecutive deployments, this time is reduced.