10.0

Last modified: March 6, 2024

10.0.0 General Availability

Release date: June 27, 2023

Go to Marketplace

New Features

  • Mendix Solutions Kit is now released for general availability (GA). This release provides capabilities for protected add-on and solution modules that allow you to have more control over what can be changed in the modules you distribute. In addition, this release includes solution lifecycle management, which enables creating and distributing adaptable solutions to customers so that the consumed solutions can easily be upgraded when you release the next version.
  • The Machine Learning Kit is now released for GA.
  • A Mendix Event Broker license is now available for all customers.
  • We renamed MxAssist Performance Bot to Best Practice Bot. Previously, MxAssist Performance Bot functioned as a virtual co-developer bot, assisting developers in enhancing their app’s performance by evaluating the app model against Mendix’s performance best practices in Mendix Studio Pro. Throughout releases of Mendix 10, MxAssist Best Practice Bot will be expanded to give additional types of Mendix best practices, such as security or naming conventions. This bot will identify development anti-patterns during the app development cycle, locate these anti-patterns, and provide suggestions on how to refactor the app model based on the Mendix best practice.
  • Page URLs got a major overhaul to support new functionality. Studio Pro now supports multiple page parameters, using attributes other than Id in the URL, and placing the variable segment (or segments) at any location in the URL.
  • We added new options to the Aggregate list activity. All and Any are new aggregation functions you can use to check if an expression is true for all or any of the items in a list, respectively. In addition, we addded the Reduce aggregation to enable turning a list of values into a single value using an expression. In this expression, both $currentObject and $currentResult are available to create a new $currentResult. Finally, all aggregations that could be used with a specified attribute can now also be used with an expression instead. In this expression, $currentObject is available to access the item of the list currently being processed.
  • We introduced a new nanoflow activity called Clear from device that can be used to clear the objects of an entity from the device database. Objects cleared using this activity are not synchronized with the server database, and references to such objects are not cleared.
  • We added a new workflow activity and a related microflow activity. You can use the Wait for notification workflow activity to suspend a workflow’s execution, and you can use the Notify workflow microflow activity to send a notification to resume the workflow that has been suspended.
  • We added support for workflow multi-user tasks. It is now possible to configure a user task where the same task is executed by a number of users in parallel. A multi-user task is completed by consolidating and evaluating the outcomes of each individual task. Decision methods can be Consensus, Veto, Majority, or Threshold. We also added support for the Auto-assign and Who Can Open options for multi-user tasks.

Improvements

Performance Improvements

  • We improved the performance of editing published web service operations. Operations that expose large data structures no longer cause Studio Pro to become unresponsive upon opening the editing dialog box. (Tickets 179950, 183039)

Other Improvements

  • You can now set input parameters as return variables via the context menu.

  • We reduced the number of cases in the client where a data source is reloaded, even if its container is hidden by conditional visibility at the same time. (Ticket 126149)

  • We improved the export size of the model. It should now be about half the size in a lot of cases. (Ticket 174121)

  • We improved data encryption in mobile apps. (Ticket 181442)

  • We added support for signing in using a macOS external browser. This requires configuration. For details, see the Configuring Your Windows Virtual Machine for Mendix Studio Pro section of Configuring Parallels.

  • We added a column to the Open App dialog box that displays the Mendix Studio Pro application Version (including for local apps that are stored on disk).

  • We added a Preferences link to the Open App dialog box.

  • We added tooltips to the Branch Line, Message, and On Disk columns in the Branch Lines dialog box that is accessible via Open App.

  • We updated the Revert All Changes menu item to show the Open App dialog box if the app is closed after the operation (for example, when the changes include a version change).

  • We extended the Work Environment tab in Preferences with Studio Pro Theme. When it is set to Auto (System theme), we automatically detect the color preferences set in an operating system and use the appropriate theme for Studio Pro. You can now also find the Rendering settings in the Work Environment tab in Preferences.

  • New merge algorithm with fine-grained conflict resolution is now the default and only option for conflict resolution in Studio Pro. Therefore, it was removed from the New Features tab of the Preferences dialog box.

  • We made Design mode the default editor for pages for new users. This does not affect existing installations. The setting can be changed in Preferences > Work Environment > Default Page Editor.

  • The new Properties pane that was introduced in 9.23 is now the default and only option in Studio Pro. It gives you a good overview of what is going on while making it significantly easier to make changes.

  • We renamed the Data Hub pane to the Integration pane. You can still use this pane to view available data sources and use them in your app.

  • We added F1 help support to the Machine Learning Kit document and fixed an issue with its Properties pane.

  • We changed the default location for a published OData service to use lower-case.

  • We removed the None button that appeared when selecting an insert, update, or delete microflow for a published OData resource, because clicking it resulted in a validation error.

  • We now set the variable name of an Aggregate list activity to Count by default.

  • We changed the caption of an empty enumeration value from (empty) to Empty in the decision outcomes grid for workflows.

  • We enhanced the Lock workflow and Unlock workflow microflow activities by enabling the selection of the workflow definition (which is a Mendix Runtime workflow object), thus making the activity more reusable.

  • When creating a new workflow, it is now possible to select a context entity through the creation dialog box instead of adding it afterwards.

  • We added a button to the toolbar of the workflow editor that enables the export of a workflow to an image.

  • We added a new way to convert between microflows and nanoflows by right-clicking the microflow or nanoflow in the App Explorer. For more information, see the alternative options specified in the Converting a Microflow to a Nanoflow section of Microflows and the Converting a Nanoflow to a Microflow section of Nanoflows.

  • We improved the discoverability of exposing microflows as microflow or workflow actions by adding the Expose as action option to the context menu of the microflow editor.

  • We added support for enumerations as an attribute type for business events.

  • For pluggable widgets with a system property Label, Show label is now set to Yes by default.

  • Pluggable widgets with a database, XPath, or association data source can now select an entity path from any surrounding data widget. This also enables using them in snippets with multiple parameters.

  • Configuring pluggable widgets with association properties is now easier. When selecting an association, the selectable object data source is configured with a default database source. Switching from a database to an XPath data source keeps constraints and the selected entity path.

  • We extended the MxAssist Best Practice Bot recommendation MXP003 for a non-indexed attribute used in sorting to the same attribute types as for a non-indexed attribute used in XPath.

  • We added a new recommendation MXP016 to MxAssist Best Practice bot to find the key of an OData source that is missing an index.

  • We updated the MxAssist Best Practice Bot recommendation MXP011 to group recommendations together. There is one group for each stack of deeply nested views.

  • We added a Category column to the MxAssit Best Practice Bot pane.

  • We added a button to filter MxAssist Best Practice Bot recommendations for documents that are not yet committed to version control.

  • We updated MxAssist Logic Bot for when a Boolean decision is chosen (at the top level or in a loop) and both the true and false flows are created.

  • Cloning another branch of a Git app in which you already have a branch on disk now first makes a local copy and then downloads the latest version from the server (instead of completely downloading the branch from the server). As Git always downloads the entire history (whereas SVN only downloads the latest revision), making this local copy significantly speeds up working with branches for Git apps.

  • We made adding attributes even easier. When adding a new attribute, Studio Pro previously suggested types based on the most common patterns seen in applications. We are now going one step further and also take into consideration the attributes and types already in your app. Studio Pro now also automatically tries to set the enumeration document if the enumeration type is suggested.

  • We added a new log node called IDResolution, which provides more details about certain actions being executed on the Mendix Runtime.

  • We removed the limitation that stopped you from automatically creating import and export mappings from message definitions with more than 100 attributes.

  • Data sources for the list view, data grid, and template grid can now select an entity path from any surrounding data widget. This also enables using them in snippets with multiple parameters.

  • We improved the message that is shown if no suitable argument is available for a parameter mapping (for example, in the Page settings of a Show a page action). This now includes the expected type of the parameter.

  • Previously, a single XPath query could result in multiple SQL queries to the database, and if an XPath query was run outside of a transaction (for example, not in a microflow but in a data grid), these SQL queries were run concurrently. This is no longer the case. This simplifies debugging, logging, and tracing.

  • We added an option to the mx check command in the mx command-line tool to output results to a JSON file.

  • We improved the naming generation in the JSON structure.

  • In OQL, Attribute = $Parameter where the parameter is a collection containing only a null now checks that the attribute is empty. This now also works with the parameter on the left side.

  • We added a private market option to the list of available target markets for Studio Pro.

  • We updated the sign-in response pages to include the new Mendix logo.

  • We updated the login image shown on startup.

  • We included dark-mode support for the login dialog box shown on startup.

  • We updated the style for the Open App dialog box, the tab control, the alert control (which displays alerts about merge conflicts), and the selection in text fields.

  • We modernized the New Document dialog box and the message definitions editor to support dark mode.

  • We updated the style for context menus, controls residing in a toolbar, and button controls.

  • We updated the style for the following UI components: breadcrumb, button, checkbox, checkbox list, date and time selector, drop-down menu, group box, link, loading bar, radio button, scrollbar, splitter, stepper, label, text editor, text field, and tooltip.

  • We updated the colors used in the microflow editor, dialog boxes, and tree and grid controls.

  • We made the drop-shadow style of various UI components more consistent.

  • We updated the icons of message dialog boxes.

  • Tree and grid control rows are now highlighted when you hover over them.

  • We added the ability to select the text in read-only drop-down controls.

  • We reduced the number of default panes in the default layout of Studio Pro.

  • We aligned the horizontal indentation of the text in the column headers and cells in the data grid and tree controls.

  • We made it possible to use the scrollbars in disabled grids.

  • We added the IMxRuntimeRequest.getRootUrl method to the Mendix Runtime API. This method can be used to retrieve the root URL of the application.

  • We added getSslContext to the IHttpConfiguration interface in the Mendix Runtime API. This gives the Java code access to the SslContext that should be used to call a service based on the Mendix Runtime settings.

  • We added default values for the ProcessedTasksCleanupAge and ScheduledEventsCleanupAge Mendix Runtime settings. The default value is now 365 days for existing apps with data and 7 days for new apps or apps with an empty database. Previously, the default values were empty and required an explicit Mendix Runtime setting configuration in order to perform cleanup.

  • We introduced the new Mendix Runtime setting StrictChangeBehaviour. This setting is enabled by default. When this setting is enabled, trying to set an invalid value for an enum or a value for a calculated attribute will throw an InvalidEnumerationValueException or ReadOnlyAttributeException response, respectively.

Deprecations

  • We dropped support for MariaDB 10.3, as it is no longer supported by the vendor.
  • All SVN support has been removed. For more information, see How to Migrate to Git.
  • We removed deprecated methods from the Mendix Runtime API and the M2EE API.
  • We removed the deprecated com.mendix.core.UseMimeDecoderForBase64 Mendix Runtime setting. Base64 decoding is now always strict, as specified by RFC 4648.
  • We removed the deprecated rollbackTransAction() method from the public IContext interface. Use rollbackTransaction instead.
  • We are deprecating the Import Web Service or XML Schema wizard that is accessible in the domain model editor when you click Import web service/XML file. This functionality will be removed in Mendix 10.6.
  • We deprecated deploying directly to Cloud Foundry from Studio Pro. The functionality will be removed in Mendix 11.
  • We deprecated the Counters, Gauges, Sets, and Timers interfaces from the Mendix Runtime API. These will be removed in Mendix 11.
  • We increased the default BCrypt cost factor from 10 to 12. A BCrypt cost factor below 12 is deprecated and will be forbidden in a future release. Use a BCrypt cost factor of at least 12.
  • For published OData services, publishing OData v3 is deprecated and will be removed in a future release. Use OData v4 instead.

Breaking Changes

Various Breaking Changes

  • The parseDateTime\[UTC\] microflow functions now use strict parsing by default. To revert to lenient parsing, set the com.mendix.core.LenientDateTimeParsing custom Mendix Runtime setting to true. (Ticket 169612)
  • When committing multiple objects, the order that Before Commit and After Commit events are executed may have changed. This order was already documented in Event Handlers to be unspecified, and it should not be relied on.
  • We have made changes to the DOM structure of the web client to ensure compatibility with future versions of React. A div[data-widget-wrapper] element will be placed around a React widget if its container is rendered as a Dojo widget, while the extra script element for such widgets has been removed. This added div element should not affect the page layout directly (as it uses display: contents), but it may affect CSS styling that relies on direct child (>), sibling (+), or nth-child selectors.
  • We updated the icons in Atlas and widgets to use the new set of Atlas icons that we released with Atlas Core 3.11.0. This means that new class names are used in the DOM. Therefore, if custom styling relies on the glyph icon class names, this may need to be updated.
  • We removed the deprecated reporting category widgets. Any reporting category widget in an existing app now triggers a consistency error.
  • We removed the deprecated direct function calls from the Pluggable Widget API for linked property values.
  • To make it possible for a multi-user task to have multiple assignees, we renamed the WorkflowUserTask_Assignee association to WorkflowUserTask_Assignees, and this is a reference set from now on.
  • For published OData Services, Studio Pro now gives a consistency error when the exposed name of an attribute or association is the same as the exposed name of its entity, because that is not valid according to the OData standard.
  • The validation of exposed names in published OData services now follows the OData standard more closely, with 128 characters being the maximum length for OData v4 services.
  • We no longer support using DB2 as the database for applications.
  • We upgraded the SQL Server JDBC driver to version 12.2.0. Since version 10, the driver uses TLS encryption by default. You can turn off encryption by setting DatabaseUseSsl to false or by setting encrypt=false in DatabaseJdbcUrl.
  • An XPath constraint of the form [$objectVariable/BooleanAttribute] (where the microflow variable is not set) used to be ignored. Now, it is treated as [false()].
  • In OQL, using a path with an association in the ON clause of an OUTER JOIN is no longer allowed. See XPath Query Engine Updates in Upgrading from Mendix Studio Pro 9 to 10 for more information.
  • In OQL, comparing an attribute to a collection parameter can only be done with the IN or = operators (as in, Attribute IN $param).
  • In OQL, clauses like Attribute = $RangeParameter, Attribute > RANGEBEGIN($RangeParameter), and Attribute < RANGEEND($RangeParameter) with an infinite range (from null to null) used to be ignored. Now, they are treated as true. This makes a difference when the clause has OR with another clause. Similarly, Attribute < RANGEBEGIN($RangeParameter) with a range starting with null or Attribute > RANGEEND($RangeParameter) with a range ending with null are no longer ignored, but treated as false.
  • Duplicate column names in an OQL query are no longer allowed.
  • Mendix no longer supports responding with custom reason phrases. This has the following effects:
    • We removed com.mendix.m2ee.api.IMxRuntimeResponse.setStatus(int, String) from the Runtime API.
    • Published REST services no longer allow for returning a custom reason phrase. When an operation microflow sets the ReasonPhrase attribute of the System.HttpResponse parameter, that value is now ignored.
  • Legacy scheduled events (meaning, those that are non-repeating or have a start time) are no longer supported. Mendix Runtime will fail to start if legacy scheduled events exist.
  • In Mendix 9.0, we removed support for Mendix Runtime uniqueness validation in preference of database uniqueness validation. There was still a custom setting to use the old behavior. This setting has now been removed.
  • We are more strict in the URL formats we accept at the Mendix Runtime Server. We no longer allow empty path segments (meaning, //, as in http://your.app//), ambiguous path segments (http://your.app/%2e%2e/path), or UTF-16 encoding (http://your.app/path%u2192).
  • We upgraded com.sun.xml.ws.jaxws-ri from 2.3.6 to 4.0.1. As a result, the SOAPFaultException that may be thrown by consumed web services is now in the jakarta.xml.ws namespace.
  • We removed the deprecated metric types statsd and logger. Mendix now only supports Micrometer metrics. Correspondingly, the only valid value for the com.mendix.metrics.Type Mendix Runtime setting is micrometer. We also removed the following legacy StatsD Runtime settings: com.mendix.metrics.Host, com.mendix.metrics.Port, com.mendix.metrics.Items, and com.mendix.metrics.FlushTime. You can use the Metrics.Registries Mendix Runtime setting to configure a StatsD registry instead.
  • We removed the request metric mx.runtime.stats.handler.requests.[name], where name is the request handler name. This metric was replaced with the metric mx.runtime.stats.handler_requests, with the request handler name added as a tag.
  • It is no longer possible to call clear() on the list returned by the IDataTable.getRows() API function. The list returned by subList() is no longer modifiable.
  • Instances of IDataTable, IDataTableSchema, and IDataColumnSchame no longer provide equality. As of now, equals() and hashCode() are based on object identity.
  • We changed the MIME type returned for .js files from the legacy application/javascript to text/javascript.
  • We removed the deprecated error constants from AdminException and IMxRuntime.
  • We removed the deprecated IActionRegistrator#bundleComponentLoaded method.

Generated Code Changes

  • The public constructors of generated constant and microflow proxy classes are now private, and the classes are marked final to prevent instantiation and derivation.
  • Entity and list of entity parameters in Java actions are now initialized in the constructor, and the accompanying __[FieldName] field is generated as deprecated. To get access to the IMendixObject variant, call the getMendixObject() method on the field (or items in the list in case of a list).
  • The initialize(IContext, IMendixIdentifier) and getGUID()methods on generated entity proxies are no longer generated.
  • We introduced the Mendix Runtime setting ObjectManagement.StrictChangeBehavior (formerly known as StrictChangeBehaviour), which is enabled by default. When enabled, trying to set an invalid value for an enumeration or a value for a calculated attribute throws an InvalidEnumerationValueException or ReadOnlyAttributeException response, respectively. We plan to remove this setting in Mendix 11, after which, an exception will be raised when setting an invalid value.
  • We changed the exception type from CoreRuntimeException to ReadOnlyAttributeException that occurs when trying to change a virtual method through setValue.
  • The public constructors of the generated Constant and Microflow proxy classes are now private, and the classes are marked final to prevent instantiation and derivation.
  • The fields in Java actions are now generated as final fields.
  • The Entity and List of Entity parameters in Java actions are now initialized in the constructor, and the accompanying __[FieldName] field will be generated as deprecated. To get access to the IMendixObject variant, call the getMendixObject() method on the field (or items in the list, in case of a list).
  • We changed the exception type from CoreRuntimeException to ReadOnlyAttributeException that occurs when trying to change a virtual method through setValue.

Known Issues

  • The algorithm for detecting conflicts during the migration of workflows with running multi-user tasks is currently too rigid and will not allow a conflicted user task to be continued in certain cases. In a future release, we will provide better migration scenarios where workflows with conflicted multi-user tasks can be continued. These are the situations in which a multi-user task is marked as Incompatible without continue: the type of decision method (as in, Consensus, Majority, Threshold, or Veto) is changed; a Majority decision method is changed from More than half to Most chosen; a Threshold decision method is changed from Percentage to Absolute number or vice versa; or the Percentage or Amount value for the Threshold decision method is lowered.
  • The Visible for property under the Navigation section in the Properties pane for pages is visible, but it does not function. This means you cannot choose module roles from that section.
  • When merging a branch into a second branch which already contained all the commits from the first branch, additional commits are automatically created unnecessarily.
  • Line endings in CSS files are not being handled properly, so when using Revert All Changes or performing other version-control operations, CSS files appear in the Changes on Disk dialog box.
    • Workaround: For details, see this section in Troubleshooting Version Control.

10.0.0 Betas

  • We mitigated CVE-2022-34716 by updating third-party dependencies. This CVE does not pose any apparent risk for Mendix customers.
  • We mitigated CVE-2023-29017, CVE-2023-30547, and CVE-2023-32314 by upgrading the vm2 library. These CVEs do not pose any apparent risk for Mendix customers.
  • We fixed an issue where a pluggable widget with a widgets property linked to a data source and an image property configured as a dynamic image was rendering incorrect data. (Ticket 117735)
  • The weekday-from-dateTime XPath function and the DATEPART(WEEKDAY, ...) OQL function now return the documented values of (1 = Sunday, 7 = Saturday) for all supported databases. (Ticket 130641)
  • We fixed an issue where the debugger caused an error and disconnected after 30 seconds of inactivity. (Tickets 151937, 169696, 175161, 175542, 178553, 180332)
  • We fixed an issue where it was possible to add a path after a non-object variable, which led to issues in a running app. (Tickets 171893, 172495)
  • We fixed a memory leak that occurred when opening pages. This caused issues after opening thousands of pages. (Ticket 172126)
  • When a database transaction for a microflow does not perform any database operation for 10 minutes, it is automatically aborted. When the same microflow then does another database operation, this previously silently started a new database transaction, losing the earlier updates. Now, the microflow results in an error. (Ticket 174408)
  • We fixed an issue where non-localized date/time attributes in XPath constraints were not handled correctly, producing incorrect queries. (Ticket 176850)
  • We adjusted consumed OData services to use query options in the request body when the given service is configured to do so and pagination with @nextLink takes place. (Ticket 176976)
  • We fixed an issue in the domain model editor where an element outside the boundaries of the current view was not scrolled to when there was navigation via Go to options. (Ticket 178829)
  • We fixed an issue where an object validation was removed incorrectly. (Ticket 180011)
  • We fixed an issue where the language-sensitive parts of pages were not fully updated when you changed the language via the Language Selector widget. (Tickets 180130, 180670, 180824, 181274, 181713, 181974)
  • We fixed an issue that occurred when opening multiple modal pop-up windows at the same time and it was not possible to focus widgets in the pop-up widget that was on top. (Ticket 180137)
  • We fixed an issue where a domain-level validation message could not be translated. You can now use the mendix.lib.Validations.field_issue system text to translate and change this message. (Tickets 180448, 181175)
  • We fixed an issue where objects were garbage-collected for pages with multiple page parameters. (Ticket 180470)
  • The results of Find Usages now include enumeration values used for conditional visibility. (Ticket 180727)
  • We fixed an issue where the originURI cookie could not be read when using the default index.html. (Ticket 181106).
  • We fixed an issue where an inherited association could not be published in a published OData service that used links as object IDs. (Ticket 181474)
  • We fixed an issue in XPath constraint suggestions that gave incorrect suggestions when there were whitespace characters after comparison operators (=,<,>,<=,=>,!=). (Tickets 181673, 181908)
  • We fixed a crash that occurred during login that blocked some users from logging in. (Tickets 181864, 183014)
  • We fixed an issue where an application with excluded .jar files failed to deploy. (Ticket 181931)
  • We fixed an issue that caused the attribute of conditional visibility settings or the text template parameters of a button inside a reference set selector to not be selectable, which resulted in a consistency error. (Ticket 182203)
  • We fixed an issue where published REST and OData services created a session for a web service user when the custom authentication microflow returned such a user. This is unsupported (web service users should only be used for published web [SOAP] services), so it led to these sessions not being cleaned up properly. This scenario now results in a “500 Internal Server Error.” (Tickets 182579, 187479)
  • We fixed an issue in the OpenAPI contract of published REST services where operations that used an import mapping had a schema defined for the other parameters but not the type. (Ticket 182615)
  • We fixed an issue in the OpenAPI contract of published OData services where GET operations no longer specified the $expand parameter when there were no associations to expand. (Ticket 182627)
  • We fixed an issue where importing a file from a version below 9.24 caused many errors to appear. (Ticket 182860)
  • We fixed an issue where attribute widgets (for example, a text box) did not trigger a consistency error if the selected attribute had an invalid source, causing an error when deploying the app. (Ticket 183379)
  • We fixed an issue with getting the device name as the phone’s factory name in mobile apps. (Ticket 183392)
  • We fixed an issue where deployment failed on the Linux operating system when module names contained upper-case letters. (Tickets 183841, 183872)
  • We fixed the colors of the term empty and the symbol - in the XPath constraint editor. (Ticket 183998).
  • We fixed an issue where no error message was shown when an update of a Mendix Marketplace module failed. (Ticket 183507)
  • We fixed an issue that occurred when a nanoflow retrieved a non-persistable entity over an association and the entity had an event handler. (Ticket 183879)
  • We fixed an issue with dojo widgets that caused custom icon collections not to work. (Ticket 183996)
  • We fixed an issue in published REST services where publishing two REST services on the same location caused a consistency error. (This was not a problem where services did not publish resources and operations that resulted in the same operation URL.) (Tickets 185087, 185423)
  • We fixed an issue in published REST services and published OData services that use a combination of custom authentication and another authentication type. When the custom authentication does not authenticate the user but a subsequent authentication type does, the operation was previously unable to read the body of the request. (Ticket 185790)
  • We fixed the issue where the Documentation pane did not show the documentation corresponding to the selected element in certain conditions. (Ticket 185876)
  • We fixed an issue where the compilation of Java actions failed when annotation processors were used. (Ticket 186516)
  • We fixed an issue where clicking Load more on a list view triggered the on-click event on a surrounding widget. (Ticket 365439)
  • We fixed the documentation links in Studio Pro so that they point to the correct version 10 sections.
  • We fixed the Create object activity so that it now produces a consistency error when committing an external object.
  • We fixed the possible race conditions between microflow actions on the same workflow instance.
  • We fixed an issue where a nanoflow could not be debugged if it was created while the app was already running.
  • We fixed an issue where the nanoflow debugger did not stay paused after 30 seconds.
  • We fixed an issue where the workflow user task on-state-change microflow did not run again when the state changed to failed due to a prior execution error in the same event-handling microflow.
  • We fixed an issue where the outcome selector dialog box for a completed workflow user task activity showed duplicate outcomes.
  • We fixed an issue that occurred with the Machine Learning Kit when the app is deployed on Mendix Cloud. If you still experience issues deploying to Mendix Cloud, please ensure the Machine Learning model has been re-imported.
  • We fixed an issue that occurred when the Machine Learning Kit mapping document was moved and the underlying ONNX file was not copied to the new location.
  • We fixed an issue where the ONNX file for an app using the Machine Learning Kit disappeared after deployment.
  • We fixed an issue where MxAssist Best Practice Bot did not skip disabled microflow actions. This did not cause any false positives, but it caused some best practices to output no results for some apps.
  • We fixed an issue where exporting recommendations from MxAssist Best Practice Bot included suppressed recommendations.
  • We fixed an issue in the OpenAPI contract of published OData services where the server URL contained a double slash.
  • We fixed an error that occurred in OData services when the user had no access to an entity’s association and there was an attempt to change its value. Mendix Runtime used to produce a response with the status 500, and now this is an error response with the status 422.
  • We fixed the missing line breaks in the Metadata property of the consumed OData services properties pane.
  • We fixed an issue that occurred when adding external entities to an app where the generation of enumerations caused an error.
  • We fixed an issue in published web services where editing an operation that had a parameter and/or a return type that had been removed caused an error.
  • We fixed an issue that triggered a consistency error on a text template of a pluggable widget inside a snippet with multiple parameters if the template had parameters based on an attribute.
  • We fixed an issue where expressions in pluggable widgets were not updated correctly when renaming an element (like a module or an entity), which caused consistency errors.
  • We fixed the functionality of the Collapse All button in the tree control. It now collapses all the nodes in the tree, even when there is only a single root node in the tree.
  • We fixed an issue that caused the warning pop-up window for the inline snippet action to mention the same affected widget multiple times.
  • We fixed an issue that caused the inline snippet action to crash if the surrounding data widget was not configured.
  • We fixed a styling issue in disabled checkbox controls.
  • We fixed an issue with text controls where the text was sometimes undesirably reverted.
  • We fixed an issue where the text editor control did not have a border in dark mode.
  • We fixed the icon styling in the auto-complete pop-up window of the text editor control in the dark mode.
  • We fixed an issue in the grid control where selecting multiple cells using Shift was inconsistent when clicking the interactable control itself in the cell (meaning, the checkbox).
  • We fixed an issue with the border color of selected cells in the grid control.
  • We updated the building block image requirements to a PNG image that has the dimensions of 432 x 192 pixels. When the image is too large to fit into the Toolbox, it is downscaled.
  • We aligned the behavior of aggregates in grids with attribute columns.
  • We fixed the tooltips that were not displayed for disabled toolbar buttons.
  • We fixed an issue where the navigation editor’s width changed upon performing UI updates (for example, toggling a checkbox).
  • We fixed an issue with the search field where multiselection did not work correctly with numeric attributes.
  • We fixed an issue with the rendering of custom app icons in the Open App dialog box.
  • We fixed an issue where the Commit Message field was not focused upon opening the Commit dialog box.
  • We fixed an issue where a page parameter triggered a warning that it was unused if the only reference to that parameter was inside an XPath constraint.
  • We fixed an issue where a page parameter did not trigger a warning that it was unused if the parameter mapping of an action or data source pointed to an object of the same entity as the parameter.
  • We fixed an issue where creating a non-persistable entity led to errors when attributes were read-only.
  • We fixed a Mendix Runtime error that occurred when a microflow was no longer being used in an app after doing a hot reload in Studio Pro.
  • We fixed an issue where the status of ScheduledEventInformation was Completed when the associated scheduled event failed.
  • We fixed an exception in the XPath constraint editor that was thrown when the list of autocomplete suggestions was open and an erroneous character was being typed.
  • We fixed an issue in XPath constraint suggestions that gave incorrect suggestions when there were multiple predicates (meaning, expressions between the square brackets [[, ]]).
  • We fixed an issue that occurred with PostgreSQL and Oracle databases where the DATEDIFF function in OQL calculated the difference in calendar weeks, which was inconsistent with other databases that calculate the difference in full weeks.
  • We fixed the issue where the DATEDIFF OQL function in Oracle threw an exception when calculating a difference in seconds.
  • The return type of the round() function with the second parameter now always returns a Decimal, even if the precision is 0.
  • The ceil(), floor(), and round() functions with a single argument now throw an exception if the result cannot be represented as an Integer/Long (for example, due to overflow).