11.9

Last modified: March 25, 2026

11.9.0

Release date: March _____, 2026

Go to Marketplace

For more guidance, see the official 11.9 Mendix release blog.

New Features

New Maia Features

  • Maia can now generate custom pages from scratch or modify existing ones.
  • Maia can now generate cross-module references.
  • Maia now supports local variables, additional data sources, client actions, XPath constraints, and expressions.
  • Maia can now read the System module and marketplace modules. Documents from these modules are also supported for the Maia explain feature and they can be added to Maia's context.
  • Maia can now remove elements from documents, allowing it to perform complex refactoring.
  • Maia can now rename documents and various document elements such as entities, attributes, microflow parameters, and many others.
  • You can now undo changes generated by Maia on a per-document basis.
  • Maia can now set annotation texts in the logic editors.
  • We added Maia support for the following document types: workflows, enumerations, Java actions, JavaScript actions, and constants.
  • We added Maia support for view entities. Ask Maia to create or refine an view entity using plain language, and Maia generates the OQL and applies it to a view entity in your domain model.

Other New Features

  • We have implemented new functions in OQL. At the moment, they are not available in Studio Pro, but they can be used using the Java API or the OQL module. For more details, see OQL Expression Syntax. The following functions were added:
    • DATEADD
    • DATETRUNC
    • LOCATE
    • SUBSTRING
  • We added support for strict mode in offline apps (PWA and Native Mobile). Though be aware that switching strict mode on for existing offline apps, it may cause problems for existing apps that still call the old API (retrieve_by_xpath) in full synchronization as the retrieve_by_xpath is not available in strict mode.
  • We added Find Usages support for Wait for notification activities and Event sub-process start events. It is now possible to identify which Notify Workflow microflow activities are targeting them.
  • We introduced the AI agent task element for workflows. The task is now available in the toolbox of the workflow editor, allowing it to be easily added to workflows.
  • Workflow event sub-processes are now generally available.
  • We introduced a new API for accessing runtime functionality from web extensions, which allows you to execute preview actions and monitor the runtime connection status. It is available under studioPro.runtime.controller in the web extensibility API.
  • We introduced a new API for accessing constants from the active runtime configuration from web extensions, which allows you to view the value of the shared runtime constants. It is available under studioPro.runtime.configuration in the web extensibility API.
  • We introduced permissions to access the private constants from the active runtime configuration from web extensions. The user can access them through the extension overview pane and grant access to the api to see the private constants.
  • You can now compare a historical revision to the current state from the history pane and history dialog. This enables you to see the detailed changes in modified documents, similar to the changes pane.
  • When Studio Pro is uninstalled, residual files created by Studio Pro are now also removed during the uninstall process. For this feature to work on macOS, we recommend using Mendix Version Selector (version 58 or higher) to uninstall Studio Pro. On Windows, regular uninstallation either through the OS itself or via Version Selector is sufficient.
  • Portable App Distribution (Beta) Portable App Distribution revolutionizes server deployments and simplifies local testing by packaging applications as self-contained zip files that include all dependencies, scripts, and configurations for instant deployment across any environment. This approach eliminates complex installation procedures while providing flexible HOCON-based configuration management for seamless operations across development, testing, and production environments. More insights or information, please see documentation
  • Executing a live preview action from Studio Pro now calls servlets registered using Core.addDevelopmentServlet.
  • Added Core.addDevelopmentServlet method that allows registering a HttpServlet instance that is accessible through admin port when the application is run locally using StudioPro.
  • We added a nanoflow setting to align list parameter behavior with microflows, so list changes made in a called nanoflow reflect in the caller. Existing nanoflows keep isolated list parameters but now show a deprecation warning; switch to the new behavior to align with microflows.
  • We added the option to use primitive page parameters in page URLs. The syntax for this is the same as in microflow URLs.
  • We released a modernized JavaScript Action Editor into public Beta. You can enable the new editor in Studio Pro under Preferences > New features. For more information, see JavaScript Actions.
  • We added support for XPath constraints in nanoflow database retrieves to follow associations from a variable, so comparisons like $var/Association = $var now work.
  • We added a client API to activate a waiting service worker. You can now use skipWaiting from mx-api/pwa, which resolves once the new service worker takes control. This is useful when you want to update to a new application version without waiting for all tabs to close. To fully apply the update, the page should be reloaded so all resources are loaded from the new service worker.

Rspack (beta)

  • We now support Rspack as a new bundler for React client applications, delivering faster bundling and lower memory usage. Rspack is currently in public beta and aims to be the future replacement for Rollup. While Rollup remains fully supported as the default bundler, we recommend trying Rspack by selecting it via the new App bundler setting under Project → Settings → Runtime.
  • We added an option to the right-click context menu which enables an easy way to extract a row of a layout grid to a new one.

Improvements

  • We removed some unnecessary transaction savepoints created by the runtime when executing microflow commit and delete actions with default error handling.
  • We upgraded the JDBC driver for Microsoft SQL Server to version 13.4.0.
    • If you connect to SQL Server using integrated security in a module such as Database Connector, you may need to update the JDBC driver in userlib as well.
  • We now prevent committing objects while those objects are synchronized to prevent losing the committed changes in offline apps.
  • We've improved performance for repeatable container widgets that contain an input widget, when not running the React client. This improvement is particularly noticeable in scenarios where a Data grid 2 has multiple columns configured with custom content containing input widgets. (Ticket 251521)
  • We improved the resizing behavior of object list grids when editing pluggable widget properties in Studio Pro. These grids now resize when their dialog is resized. This enhancement, for example, improves the resizing of the "Columns" grids in Data Grid 2.
  • We improved the visual feedback for the user when the modernized app explorer loses focus.
  • We have improved the log level styling for the modernized console panel to better distinguish between error and critical log levels.
  • We improved performance of opening the Entity selector dialog. (Ticket #270854)
  • Update the .NET runtime version installed with Studio Pro to .NET 10.0.3.
  • We made the following improvements for Maia:
    • We improved Maia's general stability with fewer bugs and better overall performance.
    • We improved the quality and reliability of Maia-generated workflows.
    • Decision outcome generation from Enumerations is now more robust and reliable.
    • We added the Maia Explain context menu option for workflows, which allows you to ask Maia to describe what the current workflow does.
    • We improved the user interface of the task list for the Maia generation cycle.
  • We removed the reconnect and re-login buttons from the MCP Settings.
  • We enabled a message log at debug-level under 'Rest Consume' lognode when the user-specified Content-Length header in Call REST Service Activity is ignored.
  • We no longer create ProcessedTask entries for the MendixRuntime-UpdateScheduledEvent and MendixRuntime-DeleteScheduledEvent system tasks.
  • We now cleanup pending MendixRuntime-UpdateScheduledEvent and MendixRuntime-DeleteScheduledEvent system tasks before synchronizing scheduled events. (Tickets 261783, 268157, 268325, 268970, 269591, 270061, 270125, 271453, 272736, 273833, 273982)
  • We have changed the level of log messages on the SystemTask log node to debug. For non-development deployments this log node was set to info, which was causing too many messages.
  • We've changed how popups are initially rendered in the React client. They will now not be available to UI testing frameworks until they are actually ready to be used.
  • We've improved performance when Studio Pro exports pages and layouts for the React client during deployment. Apps with many pages, layouts, or snippet calls can now deploy significantly faster.

Fixes

  • We fixed an issue where an OQL with a UNION of more than two NULL and non-NULL expressions could fail. For example, a UNION query of three SELECTs with two NULLs and a numeric value or object ID no longer fails in PostgreSQL. (Ticket 273187)
  • We now ensure all columns in all branches of the top level UNION in an OQL query have a name or alias to avoid issues with databases that require them, like SQL Server.
  • We fixed an error in Offline Retrieve Action when the entity is not accessible to the current user. (Ticket #266127)
  • We fixed an issue in database retrievals with constraints in offline apps that caused empty result sets when the constraint referred to an association defined on a generalization of the entity of the database retrieval (fixes #267432).
  • We fixed an issue where images were not rendered when an offline application was opened in the browser for the first time.
  • We fixed an issue in offline apps where database retrievals using reverse associations returned empty or incorrect results. (Ticket 273198)
  • We fixed an issue that prevented the Security Overview export from opening.
  • We fixed an issue when first and subsequent activity records for the same activity were created with different activity keys. Now, the original activity key is used in all subsequent activity records for the same activity. This issue was appearing when suspended activities were getting updated.
  • We have removed the WorkflowActivityRecord_PreviousActivity association after identifying a bug that caused it to consistently return empty values. Developers should continue using the PreviousActivityKey attribute, which serves as the functional alternative for linking activity records to their predecessors.
  • The Workflow Commons module URL now correctly respects the MarketplaceUrlP configuration variable.
  • Resolved an issue where the modeler failed to trigger a consistency error when a workflow contained multiple start events within a single process or sub-process.
  • We fixed an issue where the select all for Data grid 2 over multiple pages did not work correctly when configured with a view entity. (Ticket 263928)
  • We fixed an issue where a snippet variable was not available in expressions for conditional visibility and editability. (Ticket 270419)
  • We fixed an issue where snippet variables were not working properly in conditional settings in snippets. (Ticket 273971)
  • We fixed an issue where the automatic update of conditional settings was not triggered correctly when using invalid local variables.
  • We added a consistency error for invalid conditional settings at top-level widgets.
  • We fixed an issue in Start from Spreadsheet where columns with 'long' type were incorrectly converted to 'boolean' on import.
  • We fixed an issue where the Modernized Console was not being displayed automatically after starting a Mendix app.
  • We fixed an issue in the modernized Runtime Console where scrolling was not happening automatically at the bottom of the table.
  • We fixed an issue in the modernized App Explorer where pressing [CTRL+ALT+h] on Windows or [Command+Option+h] on Mac would not open Call Hierarchy panel.
  • We fixed an issue in the modernized app explorer where in certain cases multi select with SHIFT would not work correctly.
  • We fixed an issue where commit notes and metadata were empty after a rebase when there were no MPR changes and no conflicts detected by git.
  • We fixed an issue where using the 'tab' key in the multiline text area would insert a '\t' character into text inputs on macOS.
  • We fixed the issue that an error message would be shown when copying and pasting a folder in the App Explorer in Studio Pro.
  • We made the following fixes for Maia:
    • In the logic editors, we fixed an issue where Maia sometimes created sequence flows to parameters or annotations.
    • We fixed an issue when Maia could not generate mandatory empty outcome value for Decision and Object Type Decision.
    • We fixed an issue where Maia could not generate a microflow with a parameter of type "Enumeration".
    • We fixed an issue where Maia could generate a microflow with incompatible parameter data types.
    • We fixed an issue where using the Maia-related context menu options in the App Explorer while Maia Learn is open did not navigate back to the Maia chat interface.
    • We fixed an issue where the Maia toolbar button did not follow the Maia preference toggle. The button now stays visible and is enabled only when Maia is enabled.
    • We fixed an issue where clicking the the Maia toolbar button did not open the Maia panel.
    • We fixed an issue where the right-click context menu did not show in the Maia panel.
    • We fixed an issue where Maia could generate documents of the same name or with invalid names.
    • We fixed an issue where Maia context menu was not disabled after disabling Maia.
  • We fixed an issue with bundling of protected modules when used in App Modules, where it would not include JS Actions and other dependencies.
  • We've fixed an issue with the Dropdown widget not respecting the SafeArea on Android devices OS 13+.
  • We updated babel-generator to fix a known @babel/generator regression.
  • We fixed an issue in Call REST Service Activity in Studio Pro where modeling a Content-Length header would cause an error. Content-Length can now be specified but it is supressed if the payload already has a computable known size or it has Transfer-Encoding: chunked.
  • We fixed an issue in consumed OData service where retrieving data containing a nextLink would result in an error.
  • We fixed an issue in consumed OData services in Studio Pro. Specifying a non-integer value for the timeout now results in a consistency error.
  • We fixed an issue where tasks scheduled from a microflow would execute before the microflow ends. Activities that are meant to be executed in a taskqueue should always be picked up and executed after the microflow has fully completed. (Ticket 222845)
  • We fixed an issue where a queued task that had become incompatible was not removed from the queue and would remain stuck with status "Running".
  • We fixed an issue where synchronization would cause a scheduled event to be executed multiple times.
  • We've fixed an issue where changing the queue parallelism through a microflow constant was not working correctly for cluster-wide queues. (Ticket 267097)
  • We fixed an issue where studio pro was throwing an oops dialog in case of incorrect data in mx_metadata. It is now possible to still work in Studio Pro and manage branch lines despite of incorrect data.(Ticket 236610)
  • We fixed conversion of Partial clone to Full clone. Now Mendix Version is displayed in new history panel after converting Partial clone to Full.
  • Fixed issues with MCP authentication.
  • We fixed an issue in the Modernized Runtime console where the table sometimes exceeds the number of row limit and clears itself.
  • We fixed URL encoding issues within client-side navigation that occurred when page parameter values containing special characters were included in the URL.
  • We've fixed an issue with strict mode when using the rollback/commit action on a page while also using an entity on a layout. (Tickets 265794, 269314, 270867)
  • We have resolved an issue where a Mendix app would crash if hoisted inside of a directory with node_modules that contain conflicting versions of packages (Ticket 268413)
  • We fixed an issue where an incorrect runtime warning was thrown for missing parameters during database retrieval with an XPath constraint, even though those parameters were omitted from the client request because they were empty. (Ticket 269590, Ticket 269780)
  • We fixed an issue in the React client where popups would sometimes appear at the bottom of the screen instead of being centered.
  • We fixed a race condition in the React client where focus could be unexpectedly removed from an element when a page finished loading. This issue occurred when a user had already focused an element before the page load completed. Additionally, autofocus now waits until all widgets on the page have fully loaded, ensuring the correct element receives focus.
  • We fixed an issue where deleting a duplicate navigation profile would sometimes delete the wrong duplicate profile.
  • We fixed an issue where mxbuild incorrectly reported that the modern web client bundler stopped unexpectedly, while the React client bundler completed normally without errors.
  • We fixed an issue where an Oops pop-up window appeared when copying button widgets with parameter arguments to page templates or building blocks, and when creating page templates or building blocks from pages or widgets containing such buttons.
  • We fixed an issue with data sources where non-committed specialization objects with associations would cause a system administrator error popup in the client. (Ticket 262690)

Deprecations

  • We deprecated DynamicValue types for web file and web image properties and will be removed at Mendix 12. Use allowUpload="true" to migrate to the new editable types instead.

Breaking Changes

  • We removed the deprecated 'tcpjson' log subscriber. Note that the 'tcpjsonlines' log subscriber still exists.