Capability

Development and Tooling

Liferay offers a comprehensive toolkit to extend or customize your digital experience. Build applications quickly with low-code/no-code features like Objects, or leverage developer tools like Liferay Workspace and Blade CLI for further customizations.

For users on PaaS or running Self-Hosted, Liferay also offers tools deploying customizations.

Feature
Deployment Approach
Migrating Your Database to PostgreSQL
Introduction Liferay adopted PostgreSQL as the default database for PaaS and SaaS projects in October 2024. Since then, all new Liferay PaaS and SaaS deployments use PostgreSQL. To maintain compatibility and ensure...
Liferay DXP Agent Fails to Start on Jakarta (Tomcat 10) Images with javax.annotation Error
Issue When using a Liferay DXP instance deployed on a Jakarta-based image (e.g., Tomcat 10), the liferay-dxp-agent bundle may fail to start. The logs will show an org.osgi.framework.BundleException error related to an unresolved package import. A key part of the error message will look...
How to modify the web.server.display.node and company.security.strangers.verify properties in a Liferay PaaS environment
Issue After updating our Liferay PaaS service version to v4.1.0+, our team noticed that the -uat environment now has the instance's node information displayed in the footer of Liferay pages. We tried to set...
Displaying Missing Navigation Widget Templates - 7.2 SP1
Issue Prior to SP1, it was possible to edit the Navigation ADTs using the following steps: Navigate to Control Panel > Sites > Sites For the "Global" site use the 3 dot menu to go to "Site Settings" Navigate to Site...
Configuring Liferay to display CAPTCHA's with numbers only - 7.2
Issue Configuring Liferay to display CAPTCHA's with numbers only instead of alphanumeric characters. Environment This issue affects Liferay 7.2 Resolution While the default CAPTCHAs in Liferay generated by...
Unable to Publish Content if there are Missing Page Links - DXP 7.0+
Issue When I disable "Validate Layout References" I receive an error. Environment Liferay DXP 7.0 + Resolution If you would like to maintain relative links or allow the validator to ignore the missing file entries,...
Publication of a scheduled web content is delayed by 15 minutes - DXP 7.1+
Issue When I schedule web content to be published a few minutes in the future, the publication does not occur and is delayed for up to 15 minutes. Environment Liferay DXP 7.1+ Resolution The web content scheduled for a...
Site Administrator cannot add a Basic Web Content - DXP 7.0
Issue As a Site Administrator when I go to Content and click on the "+" button to add a basic web content, the basic web content option does not appear. Environment Liferay DXP 7.0 Resolution As an Administrator, if...
Published web contents are not visible to users - DXP 7.1 - 7.4
Issue I cannot see web contents as a guest user, they are not visible in the Web Content Display or Asset Publisher Environment Liferay DXP 7.1 Liferay DXP 7.2 Liferay DXP 7.3 Liferay DXP 7.4 Resolution The web...
Regular users with specific roles cannot access the configuration of the widget Search Insights
Issue Given a user with a custom role with permissions to access the configuration of Search Insights, she cannot access this configuration. Environment Quarterly Releases: 2024.Q3, 2024.Q2, 2024.Q1, 2023.Q4, 2023.Q3...
Scheduled web content is not published on time - DXP 7.0
Issue I try to schedule web content for future publication but it is not displayed on time. Environment Liferay DXP 7.0 Resolution Check interval should be set correctly. In 7.0 instance there are two Check...
CKEditor Customizations Not Applying to Translations or Forms
Issue Customizations made to CKEditor using an `EditorConfigContributor` are only applying to the editor when editing Web Content, but not in the editor for translations (accessed through Control Panel...
Freemarker templates escape HTML content in Text fields after migrating from Liferay DXP 7.3 to 2025.Q1
Issue After migrating from Liferay DXP 7.3 to 2025.Q1, HTML content within web content "Text" fields is no longer interpreted by Freemarker templates using ${field.getData()}. It is displayed as...
"Inconsistent patch level detected" error occured in the logs
Issue The following error occurs in the logs due to an inconsistency in patch levels: Example 1: ERROR [server.startup : 2][PatcherImpl:204] Inconsistent patch level detected WARN [server.startup :...
Sorting Structures by Name in Liferay DXP
Issue The order of Structures when creating Web Content seems to be random. The structures are not sorted alphabetically or by modification date. Environment Liferay DXP 2024.Q2 Resolution Web Content Display widget...
Sending Individual Emails for Workflow Notifications
Background In a workflow, email notifications are sent to all users in a role as a single email with all recipients in the "To:" field. Objective The goal is to send individual emails to each of the...
Password syntax checking error does not appear when configuring with Minimum Lowercase 1 when creating a new account
Issue I have an issue with checking the password syntax. When they configure the password syntax with Minimum Lowercase 1, Minimum Symbols 1, and Minimum Uppercase 1, try to create an account for a guest user, type a...
Data Sets are not working after upgrading to 2025.q1.4-lts where the feature is released
Issue I upgraded from 2024.q4.7 to 2025.q1.4-lts. After the upgrade, we encountered issues with Data Sets. In 2024.q4.7 I was using datasets as beta but as in 2025.q1.4 its released. I have enabled Root Objects and...
Liferay IDE: Resolving 'Unable to make field private' errors with JDK 21
Issue I'm encountering java.lang.reflect.InaccessibleObjectException: Unable to make field private ... accessible errors when starting Liferay from the Liferay IDE plugin within the Eclipse IDE with JDK 21....
Can Layouts Be Dynamically Assigned to Object Entries Based on Experience (e.g., User Role)?
Issue I’ve created an Object named TestObject and added two layouts: Test Layout 1 and Test Layout 2 in the Site Builder → Pages section. Behavior observed: If no layout is marked as default, the system uses the...
User did not provide a valid CSRF token Error
Issue Portlet Action requests intermittently returning a 403 error code. In the logs the following error message regarding invalid CSRF token gets printed whenever the 403 error is thrown. "User [user_id] did not provide...
Changes to Content Page Template Not Propagated to Pages
Issue After creating a Content Page Template and then creating pages based on that template, any subsequent changes and publishing of the template do not reflect on the pages using the template.   Environment...
Unable to Create Liferay Module Project Fragments and Start DXP 2025.Q1.0 Quarterly Release (LTS) in Liferay Developer Studio 3.10.2
Issue In Liferay Developer Studio (version 3.10.2), when navigating to File > New > Liferay Module Project Fragment, nothing happens. The popup window for creating the fragment does not appear....
Restricting the Guest Role's Access to the Home Page
Issue When trying to change the view permission of a page it's not possible to do it for the Guest role in the first page: it shows as non-interactive. Environment QR 2024.Q3, 2024.Q4, 2025.Q1 Resolution This is...
Content lost when changing language during creation
Issue When creating content, such as a calendar event or filling a form, changing the language during the process can cause the loss of all entered information. This can happen if another browser window or tab is open...
Translatable fields display empty after deleting field translation instead default translation
Issue When adding content to a translatable field in a structure and subsequently deleting the content in a secondary language, the field displays as empty in that specific language instead of falling...
How to deploy a custom JAR to the shielded-container-lib directory in my PaaS Environment
Issue I would like to know how to deploy a custom JAR to the shielded-container-lib directory of Tomcat in my PaaS environment. Environment Liferay PaaS Resolution Follow these steps: In your Liferay Workspace,...
Email Address Validation for Forgot Password
Issue The Forgot Password option does not validate if the user enters a correct email address. You can enter anything and the field will accept it. Two types of validation are expected: Email format validation (to...
Limit the languages displayed in the translation selector for object fields
Issue We want to limit the languages displayed in the translation selector for object fields to only those defined in the site, similar to how it works for Journal Articles. Currently, the selector shows all...
Monotype Font Licensing
Issue Usage of Monotype fonts require a license If a user does not have the Monotype font license, is it necessary to remove references to Monotype font throughout the portal?   Environment Liferay DXP 7.4   Resolution...
Setting a Site-Specific Display Page Template for a Web Content created from a Global Structure
Issue You are using a Web Content Structure that was created in the Global site so it can be shared across multiple sites. You need to set a default Display Page Template (DPT) for this structure, but you want the...
Designing and Displaying Reusable Navigation Menus
Introduction This recipe guides you through the basic steps to build a multi-step form. Prerequisites Liferay DXP environment An object definition with fields A user who has access and control to create and manage objects,...
Integrate Okta with Liferay DXP using OpenID Connect
Introduction This recipe guides you through the steps to integrate Okta, your Identity Provider (IdP), with your Liferay environment using OpenID Connect. Prerequisites Okta Dev account Liferay DXP environment Administrative...
Finding your Liferay Cloud location via egress IP address
Issue The ingress IP address of our Liferay Cloud instance shows a different location than expected.   Environment Liferay PaaS   Resolution The ingress IP address does not reflect the actual location of the specific...
The "Menu Display" text appears in the Navigation Menu widget
Issue After a failed login attempt, the navigation menu's display text appears above the menu itself. Steps to reproduce: Create a site. Create a login page and deploy the sign-in widget. Create a navigation...
How to Configure PaaS to Push Metrics to Dynatrace Account
Issue What is the correct way to configure our new PaaS environment to push metrics to a Dynatrace account? Environment DXP 7.4 Resolution Set the following environment variables in LCP.json ...
How can I disable the Commerce Wish List creation
Issue I have an issue with the commerce wish list table in the database. The table has lots of entries and it is growing more, even though we do not use the wish list feature. I would like to remove these entries and...
"Could not resolve value from secret references" error deploying build in PaaS
Issue When deploying a build in my Liferay Cloud PaaS environment, the build process fails and returns the following error message: Some error has happened during the build. Try again. [{"message":"Could not...
Uncaught TypeError: Liferay.Notification is not a constructor
Issue Adding the below script to any page through any Web content display can reproduce the issue in vanilla. <a href="#" onClick="showWltNotification('Your Request failed to process', 'danger');"> Link here </a>...
How to modify the Cache-Control header to prevent browser caching issues
Issue After deploying a new version of my theme, users are experiencing issues due to old Javascript files being loaded from the browser cache. Thus, we would like to modify the Cache-Control header of those...
How can we translate the Custom Heading of a Custom Facet?
Issue We have a search page with several facets. One of them is the "Custom Facet" widget. How can we translate the Custom Heading of a Custom Facet, to display in multiple languages on our site? The configuration page...
After upgrading to Quarterly we can see a "could not resolve property: DDMStructureKey" error in the log
Issue After upgrading to Quarterly we can see the following error in the server log: ERROR [BasePersistenceImpl:629] Caught unexpected exception org.hibernate.QueryException: could not resolve property:...
Limiting the Number of Search Results and Mitigating "Result window is too large." Errors when Using Elasticsearch via index.search.limit and index.max_result_window
Every functionality that relies on search engine queries in Liferay can return a maximum of 10,000 results by default. This applies to Search Bar widget searches, search toolbar searches, search REST API usages, and...
After upgrading from DXP 7.0 to DXP 7.4 the document friendly URLs are missing
Issue I have upgraded from DXP 7.0 to DXP 7.4. After the successful upgrade, we noticed that the document-friendly URLs are missing on DXP 7.4 Reproduction Steps: 1. Set up DXP 7.0 with fp de-102 2. Go to Control Panel...
Typing delay when editing fields in articles with too many fields
Issue I have a web content structure with multiple fields. When I create a web content from the structure, and add several fields (more than 100 entries), I experience delay while typing on the field and JS errors...
I would like to audit the download of documents from the Documents and Media Library
Issue I would like to ask about the possibility of auditing the download of documents from the Documents and Media Library. Environment Liferay DXP 7.4 Quarterly Release Resolution Currently, Liferay does not offer an...
HTML Parsing issues when reindexing journal articles after upgrading to Quarterly Release (Jericho)
Issue I upgraded my instance to Quarterly Release. I performed a full reindex and received several errors in the log: ERROR [default-26][jericho:211] StartTag a at (r17,c4,p1100) contains attribute name with invalid...
How to handle "Connection Closed" Error with BLOB Type in Oracle DB?
Issue A "Connection closed" error occurs when handling BLOB type columns in Oracle databases using the getBinaryStream() method in Java, a known issue when attempting to read BLOB data in chunks after the...
When I try to export a Site, the export fails with an error: XXXX could not be exported because its workflow status is not exportable.
Issue I am trying to export a Site. However, I receive the following error: An unexpected error occurred with the publish process. Please check your portal and publishing configuration. The...
Blank Objects page after enabling Object Model Builder
Issue We enabled Object Model Builder in the Beta Feature Flags, and when we open the Object menu, we get a blank page We also get an error in the browser console: TypeError: Cannot read properties of...
Order is being placed irrespective of the quantity of product
Issue Steps to reproduce: 1. Create a site by using the minium site template. 2. Navigate to Products under Product Management. 3. Create a simple product. 4. Navigate to the SKU tab and provide the details >...
How to find the "Look and Feel" and "Advanced" tabs when creating a content page
Issue When I create a content page, I am not able to find the "Look and Feel" and "Advanced" tabs. Environment Liferay DXP 7.1 Liferay DXP 7.2 Liferay DXP 7.3 Liferay DXP 7.4 Resolution On DXP 7.1 and 7.2 when you...
HTTP ERROR 414 when attempting to move web contents/folders
Issue When I try to select all web contents and/or folders and try to move them to another folder I receive an "HTTP ERROR 414". Reproduction Steps: Go to Content & Data --> Web Content Create several web contents...
What are the folders to clean in a Jboss bundle? - DXP 7.0+
Issue After applying a new patch, I am not able to find the cache folders that should be removed in the Jboss bundle after e.g. installing a patch Environment Liferay DXP 7.0+ Jboss Resolution How to clean Jboss?...
How to unpublish a published content page or set it to draft
Issue I published a content page, and I cannot unpublish it or set it to draft. Environment Liferay DXP 7.2 Liferay DXP 7.3 Liferay DXP 7.4 Resolution Once we publish a content page, we will not be able to set it back...
When I try to create a new page and use the page name of a previously deleted page I receive the error: DuplicateFriendlyURLEntryException - DXP 7.3
Issue When I create a new page and name it by using a previously deleted page's name, I receive the following error like this one: ERROR [ajp-nio-0.0.0.0-8009-exec-7][PortletServlet:119] javax.portlet.PortletException:...
When I change the page name and its friendly URL, the new page can still be accessed when using the old page URL - DXP 7.3
Issue I have a page with a friendly URL. I changed the page name and friendly URL. However, when I try to access the page with the new name using the old page friendly URL, I get redirected to the new page instead of...
Sharing web content on web content display portlet between sites other than the Global Site - DXP 7.1 - 7.3
Issue We can configure the site scope on Web Content Display Portlet to share web content between the global site and other sites. However, we would like to share content between sites other than global site, but this...
How-To Generate a HAR file for Liferay Support
HTTP Archive (HAR) files are a format used to track information between a user's browser and site. It can be used to identify performance issues such as slow load times, page renders, or other bottlenecks. This is...
How can I enable the view count increments for web contents in Asset Publisher Portlet - DXP 7.1 - 7.3
Issue When I add the view count in Asset Publisher to the available box, and refresh the page. The view count is not incremented and displays a value of "0" Reproduction Steps: Set up DXP and start it. Go to Content &...