Solution introduces 2 breaking changes in the data model, because of a “limitation” in the root model assumptions
There were 2 relationships connecting
Data SetandData Set Actiondepending on the type of action. Now there is only onetypefield inData Set Actionobject definition has changed. Now it stores the type of action (item, creation, bulk). The oldtypenow goes totargetfield
As a result, previously saved data set actions will not be manageable by DSM, neither fragment will find them.
Release Notes
This section contains information about breaking changes in out-of-the-box DXP features and capabilities. For breaking changes or internal code, please check this link.
In order to simplify the system processing of JSPs and improve performance, 2025.Q1 removes the optional configuration previously enabled by the property work.dir.override.enabled=true. JSPs will now always remain within the OSGi bundles that deploys them. This feature was already disabled by default due to the performance cost.
Java 17 or 21 is already required for Portal runtime since 2024.Q2 release, but the source code was still able to be compiled on Java 8. With the 2025.Q1 release, Java 17 or 21 will also be required for compile.
When performing a GET on text fields using the headless API and results in empty contents, the output returns ”” instead of being skipped. This change gives more flexibility to the users to decide what each user will do with the information.
Users should review all GET requests on text fields to adapt to this change.
Currently, when a user make a call to Batch in order to import any entity, the error returned has a different structure than a regular call to the Rest API. Specifically, the structure that is different is the one related to "failedItems" information.
With this change, users will have the same structured information no matter the endpoint they are using so matching errors and show it in the UI will be more simple.
The main change is:
Current structure:
"failedItems": [
{ "item": "{\"properties\": {\"field1\": 4, \"field2\": 5}}",
"itemIndex": 1,
"message": "com.liferay.portal.kernel.exception.ModelListenerException: com.liferay.object.exception.ObjectValidationRuleEngineException: Field 1 must be greater than,Field 2 must be greater than 5" }
]
New structure:
"failedItems" : [ {
"item" : "{\"properties\": {\"field1\": 4, \"field2\": 5}}",
"itemIndex" : 1,
"message" : "[{\"objectFieldName\":\"field1\",\"errorMessage\":\"Field 1 must be greater than\"},{\"objectFieldName\":\"field2\",\"errorMessage\":\"Field 2 must be greater than 5\"}]"
}
]
The |
Granting “Update” Permissions: Granting “Update” permissions to a role enables the user to edit a folder's properties, like its name and description.
Granting “Advance Update” Permissions: Granting “Advance Update” permissions to a role enables the user to update the workflow associated with a folder. The folder's properties, such as name and description fields, remain disabled and cannot be edited.
Users subscribed to a web content or a folder will not receive notifications for assets in the pending state unless they are directly involved in the workflow review process
This change is meant to match the current behavior of Documents & Media
When a user is deleted in Analytics Cloud, they will first be suppressed before being permanently deleted. As a result, you will see two requests per user—one for suppression and another for deletion.
Previously, each user deletion generated two separate requests. Now, all users are grouped into a single suppression and deletion request, reducing the number of requests. For example, each request will now contain a list of all affected email addresses instead of generating individual requests per user.
Users can verify deletion logs in:
Analytics Cloud > Settings > Data Control & Privacy > Request Log.
What changed?
A new bulk operation feature allows users to select and manage multiple changes within a publication. Users can now move or discard changes in bulk via a management bar. This simplifies managing large publications.
Why was this change made?
Previously, users had to manage each change individually, which was time-consuming. This change enhances user efficiency and reduces the administrative burden, making the platform more scalable for large publications.
Is the new behavior better for users?
It significantly saves time and effort, making it easier to manage multiple changes quickly. This results in a smoother, faster user experience when handling large volumes of changes.
Who is affected?
Users who manage large publications or need to handle multiple changes will benefit from this update. It streamlines the process for users who frequently move or discard changes.
How should I update my features or implementation to better adopt the breaking change?
If needed, this feature can be enabled/disabled through the Feature Flag on Instance Settings > Feature Flag > feature.flag.LPS-171364=true or Bulk Actions for Publications (LPD-20183)
What changed?
The review change screen now includes a progress bar that provides real-time visual feedback during the publication process. Users will see the progress bar while waiting for their publication to go live, indicating how much time remains in the publishing process.
Why was this change made?
Previously, users had no visual indication of how long the publishing process would take. This change improves user experience by providing transparency and better manage their expectations.
Is the new behavior better for users?
The new progress bar enhances user satisfaction by offering clear, real-time feedback. It helps users understand the publishing timeline, reducing uncertainty during the process.
Who is affected?
All publication users are affected, but the focus is on those handling large or complex publications, where waiting times could previously be unclear.
How should I update my features or implementation to better adopt the breaking change?
No change is needed in the current process.
What changed?
A publication size classification is now displayed in the review changes screen, categorizing publications as Light, Medium, or Large based on their size. A popover explanation appears when users hover over the classification, providing insight into the potential impact of the publication size on the publishing process.
Why was this change made?
This change helps users understand the scale of their publications, allowing them to plan the publishing process better. It aims to prevent performance issues and reduce conflicts by encouraging users to allocate more time for larger publications.
Is the new behavior better for users?
The new classification provides clearer insight into the publication's complexity, helping users avoid unexpected delays. It also allows them to take proactive steps in managing their workflow, ensuring smoother publishing processes.
Who is affected?
All publication users are affected, but it is more focuesd on user who deal with multiple changes and users with deadlines to accomplish when publishing their website.
How should I update my features or implementation to better adopt the breaking change?
If needed, this feature require the Feature Flag on Instance Settings > Feature Flag > Additional Context in Publications Toolbar (LPD-20556) to work fully.
Fragments only can be dropped and mapped into the first item of a Collection Display
Collection Pages have been removed from page administrator.
Documentation: LRDOCS-14626: Documentation LPD-45659 - Remove Collection Pages from page administratorClosed
The SEO configuration of a page has been moved from DDM to standard forms
The property permissions.view.dynamic.inheritance on the layouts (pages) has been modified. The logic to align with how the property functions in all other models:
It now applies only to the VIEW action.
It is now restrictive: To have VIEW access to a page, a user must possess the VIEW permission on that specific page and on all of its ancestor pages.
Ehcache 2.x is no longer officially maintained by the Java community. Moved DXP internal caching to use Ehcache 3.10.8.
This means any existing ehcache configuration xml files won't be directly compatible and will likely cause errors or unexpected behavior in the new 3.x environment. Users will need to review and rewrite these configurations according to the new 3.x schema.
The AMD Loader has been removed. Liferay DXP officially supports ESM, which is the official standardized module system for JavaScript, while AMD was a third-party solution. By adopting ESM, products align with the language's native capabilities and future direction. Modern browsers now natively support ESM, allowing for direct use without transpilation or additional loaders. This can lead to reduced bundle sizes, faster initial page loads and simplified development workflows.
Users who are using amd-loader must migrate to the Liferay.loader. See link for more details.
The "Warehouse" field has been removed from the Shipping Option's details panel.
This field was previously available as a selection field within the shipping option configuration, but it is crucial to understand that it was purely informational and did not enforce any actual warehouse restrictions or logistics.
The "Warehouse" field was identified as a source of potential confusion for administrators. Its presence, despite being purely descriptive, could lead to the incorrect assumption that it played a role in applying warehouse restrictions to a shipping option. To ensure clarity and prevent any misleading interpretations, we have decided to remove this field entirely.
Important Note for Administrators: If you used this field for metadata, this information will no longer be visible. We strongly recommend transferring any critical metadata to an alternative location before upgrading to avoid loss. This change does not impact actual warehouse configurations or shipping logic.
This portal-ext property was to Instance/System settings so that the property could be controlled during runtime. Users will need to reconfigure portal if they are currently using this property.
See https://github.com/liferay/liferay-portal/commit/0b2ee06d7ee20972bc8ebd84e2c1c10fb9a41763
What changed?
With the introduction of customizable publication-level permissions, all permissions, including publishing to production, can be changed by an admin or a user with the appropriate "Manage Permissions" capability.
Why was this change made?
Previously, Owners were automatically given the ability to publish content to production, which led to unintentional production changes, especially in environments using Sandbox mode or implementing stricter governance policies. This behavior was inconsistent with customer expectations and Liferay’s broader permission model.
Who is affected?
How should I update my features or implementation?
No need for Updates. You may want to use the new "Permissions" on Publication Settings section to "Edit Permissions" if needed.
What changed?
A new warning message now appears when "Sandbox Only" mode is enabled but publication Owners retain permission to publish. This does not change the behavior of Sandbox mode but introduces a new UI-level validation to prevent unwanted changes.
Why was this change made?
This message prompts admins to review permission settings and avoid potential production changes made in error. The goal is to support secure sandbox and prevent publishing mistakes by making permissions more transparent.
Who is affected?
Publication users with enough access to configure Publications and enable Sandbox mode.
How should I update my features or implementation?
No need for Updates. When enabling Sandbox Only mode, look for the new warning message and use the "Edit Permissions" option to review Owner permissions.
What changed?
Admins can now fully customize the permissions for the "Owner" and other roles in Publications. This includes the ability to revoke critical actions such as "Publish on Production." Previously, users who created a publication were always granted full permissions by default, including publishing rights.
Why was this change made?
This change was introduced to address a gap in the permission model that could unintentionally allow users to publish content to production—even when Sandbox mode was enabled. By enabling permission customization, we close this loophole, giving administrators better governance over content workflows. The new behavior improves system security and reduces the risk of misconfigurations, especially in environments where publishing control is critical.
Who is affected?
All publication users are affected, but the changes are focused on Admins and Publication’ Owners
How should I update my features or implementation?
No need for updates. When reviewing the permissions assigned to the "Owner" role in each publication be sure to use the new "Edit Permissions" modal.
What changed?
Users can filter Navigation Menus by creation or modification date.
API’s now allow retrieving navigation menus by External Reference Code, rather than only by internal IDs.
Why was this change made?
This change improves the reliability and usability of cross-site migration tools, enhances content governance with complete permission handling, and introduces stable referencing via ERCs.
Who is affected?
Developers and Site administrators requesting Navigation Menu’s via Api’s.
How should I update my features or implementation?
No changes are needed. Users may want to use External Reference Code when referencing navigation menus.
The Java EE libraries are no longer in active development. DXP has moved to the modern and evolving enterprise Java platform, Jakarta EE 10. With the migration of the system to Jakarta EE, any Java EE libraries (javax.*) are no longer compatible and must be replaced with the Jakarta EE 10 (jakarta.*) updated versions. This also breaks any 3rd party libraries that rely on Java EE packages. Libraries must be updated to a Jakarta-compatible version.
This affects any users with custom code deployed to the Liferay DXP JVM. Client Extensions are not affected since they run in an external process.
With the migration of the system to Jakarta EE, the following deprecated application servers are no longer supported:
Apache Tomcat 9.0.x
JBoss EAP 7.4
Wildfly 26.1
Weblogic 14c
Users must migrate to a Jakarta EE compatible application server:
Apache Tomcat 10.1.x
JBoss EAP 8.0
Wildfly 30
(Weblogic 15 has not been released, but we are monitoring its availability and plan to add support in a future DXP release).
This change gives users access to actively maintained application servers that leverage the modern Java enterprise ecosystem.
PortletMVC4Spring has migrated to a new version based on Spring 6.0 and Jakarta EE. Users must migrated their existing PortletMVC4Spring projects to version 6.x
The previous versions of PortletMVC4Spring were deprecated due to dependency on Java EE and will no longer work with 2025.Q3 release.
The current version of Liferay Faces was deprecated due to dependency on Java EE and will no longer work with 2025.Q3 release.
However, Liferay is still preparing a new version of the Liferay Faces, based on Jakarta EE 10 and Portlet 4.0, scheduled for release later this year. Since the dependencies in DXP are already migrated, it is expected that the new Faces release will be compatible with 2025.Q3
What changed?
The Display tab in the Review Changes screen now renders Display Page Templates and content that uses those templates (e.g., Web Content Articles, Blog Entries). Previously, these were not previewable — the Display tab was either empty or disabled for such content.
Why was this change made?
This change allows content reviewers to see the real end-user layout before publication. It significantly improves quality assurance by reducing publishing errors and increases confidence that the final layout will match expectations — especially for structured content and enterprise use cases (e.g., FHLBNY). This change improves usability and eliminates a gap in the review process that could result in visual inconsistencies post-publication.
How should I update my features or implementation?
No changes are needed.
What changed?
The Data tab in the Review Changes screen for Web Content Articles now displays all editable fields, including those created via custom structures. It also shows field labels and values exactly as defined by content creators.
Why was this change made?
Previously, only a subset of fields was shown, which often led to missed content changes during the review process. This update makes it easier to catch all modifications, especially in highly customized structures — enhancing accuracy and trust in the publishing process.
How should I update my features or implementation?
No changes are needed.
The change was already done for text editable, since the button fragment have to allow text only, and it was forgotten for the link editable.
At the LPD-46627: Enhancing SAML to be able to Sync User GroupsClosed story we modified the SAML userGroups membership management according to the portal’s standard way. With that we introduced a namespace for the attribute which seems causing inconveniences to customers, described in the LPD-66611: userGroups Attribute Name Changed to membership:userGroups, Breaking Liferay IdP IntegrationsClosed bug ticket.
In Previous releases, legacy data and module cleanup actions were triggered from configurations in System Settings > Upgrades > Data Cleanup (or Data Removal). These actions are important to improve performance, and improve long term system stability, and lighten the load during a DXP upgrade. We have brought some additional clarity and visibility to these system maintenance actions by moving them to Server Administration.
|
Blade 8.0 was released to account for the new AI Rules Files. This version of Blade will generate Liferay Workspaces that are not compatible with running Gradle tasks using Java 8. If users need to use Java 8 to run Gradle tasks, they will need to downgrade their version of the Workspace Gradle plugin to version 14.0.1 or below in the generated Workspace's settings.gradle file.
At the end of January we have detected that Gemini rejected our requests. We found out that the way to solve it is by migrating SSE to StreamableHTTP transport because SSE is already deprecated. So SSE is no longer supported by the MCP Server.
As Liferay Developer Studio evolves, we periodically evaluate our tooling to ensure a stable and reliable platform. These specific features relied on legacy libraries that we can no longer sustainably maintain. Retiring them streamlines our underlying architecture, ensuring we can consistently deliver timely updates and improvements moving forward.
Removed Features:
Liferay Upgrade Planner: Feature to aid developers in migrating their code from older versions of Liferay to newer versions.
Liferay IDE AlloyUI : Development tooling for the AlloyUI framework.
Liferay IDE XML Search: The XPath-based search tab in the Search menu.
Several alternatives are available in order to ensure existing workflows aren't interrupted:
Liferay Upgrade Planner
The Deprecations and Breaking Changes Reference page is our source of truth for breaking changes with each Liferay release.
The upgradeSourceCode command in Blade is actively maintained and offers robust code upgrade automation to handle migrations to newer Liferay versions.
Liferay IDE AlloyUI
For AlloyUI development, the built-in features provided by the Web Tools Platform should provide similar functionality OOTB, though additional configurations may be needed to enable autocomplete and syntax highlighting for AlloyUI. Third-party plugins such as Eclipse Wild Web Developer are also available on the Eclipse Marketplace which offer robust JavaScript support.
The taglib metadata can be found here.
Liferay IDE XML Search
If users need XPath-based searching functionality for XML files, Eclipse Marketplace has additional plugins available such as Eclipse XPath Evaluation Plugin.
Developers still requiring these features can remain on their current version of LDS until they have completed their code migration or AlloyUI related tasks.
Behavioral Change / UI Removal
Versions Affected: 2026.q1.1, 2026.q1.2, 2026.q1.3
A development-stage feature related to Page Management Rules was inadvertently exposed in the UI without its corresponding Feature Flag. This may have led users to configure settings that are not yet fully supported or functional.
Starting from version 2026.q1.4, this entry point has been correctly hidden behind a Release Feature Flag. Any configurations made or errors encountered in previous subversions will no longer be accessible or supported.
Customers experiencing issues with this experimental interface must upgrade to version 2026.q1.4 or later.
When a page's Friendly URL is a numeric value matching an existing Layout ID (e.g. /12345), the import process now enforces stricter validation to prevent LayoutFriendlyURLException. Customers who relied on the previous import behavior should review their Friendly URL conventions for imported pages. Shipped in 7.4.13 DXP U146