Server error after migration from 7.4.3.132-ga132 to DXP 2025.q1.22-lts and then to DXP 2026.q1.2-lts.

Hello all. I migrated the database from a Liferay Portal 7.4.3.132-ga132 instance to Liferay DXP 2025.q1.22-lts and then to Liferay DXP 2026.q1.2-lts. Everything completed successfully and without errors.

I use a Free Tier license key.

The new Liferay DXP 2026.q1.2-lts instance starts without errors, but when I connect for the first time, I get the following error. After that, everything works normally.

Can anyone tell me which direction to look for to avoid the following error?

INFO [main][c:-1] DXP Production license validation passed
INFO [main][AutoDeployDir:152] Auto deploy scanner started for D:\dev\liferay\2026.q1.2-lts\liferay-dxp-nt103\deploy
INFO [SystemExecutorServiceUtil-5][Sidecar:210] Sidecar Elasticsearch 8.19.11 liferay_sidecar started at 127.0.0.1:9201
INFO [liferay/background_task-2][BackgroundTaskMessageListener:131] Unable to acquire lock, queuing background task 282543
INFO [liferay/background_task-3][BackgroundTaskMessageListener:131] Unable to acquire lock, queuing background task 282544
ERROR [com.liferay.portal.workflow.metrics.internal.petra.executor.WorkflowMetricsPortalExecutor-2][WorkflowMetricsPortalExecutor:63] java.lang.NullPointerException: Cannot invoke “com.liferay.portal.workflow.metrics.search.index.reindexer.WorkflowMetricsReindexer.reindex(long)” because “workflowMetricsReindexer” is null
java.lang.NullPointerException: Cannot invoke “com.liferay.portal.workflow.metrics.search.index.reindexer.WorkflowMetricsReindexer.reindex(long)” because “workflowMetricsReindexer” is null
at com.liferay.portal.workflow.metrics.internal.background.task.WorkflowMetricsReindexBackgroundTaskExecutor.lambda$execute$0(WorkflowMetricsReindexBackgroundTaskExecutor.java:106) ~[?:?]
at com.liferay.portal.workflow.metrics.internal.petra.executor.WorkflowMetricsPortalExecutor.lambda$execute$0(WorkflowMetricsPortalExecutor.java:60) ~[?:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572) ~[?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:317) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?]
at java.lang.Thread.run(Thread.java:1583) [?:?]
ERROR [liferay/background_task-4][BackgroundTaskMessageListener:162] Unable to execute background task
java.lang.NullPointerException: Cannot invoke “com.liferay.portal.kernel.backgroundtask.BackgroundTaskExecutor.getIsolationLevel()” because “backgroundTaskExecutor” is null
at com.liferay.portal.background.task.internal.lock.helper.BackgroundTaskLockHelper._getLockKey(BackgroundTaskLockHelper.java:58) ~[?:?]
at com.liferay.portal.background.task.internal.lock.helper.BackgroundTaskLockHelper.unlockBackgroundTask(BackgroundTaskLockHelper.java:47) ~[?:?]
at com.liferay.portal.background.task.internal.SerialBackgroundTaskExecutor.execute(SerialBackgroundTaskExecutor.java:58) ~[?:?]
at com.liferay.portal.kernel.backgroundtask.DelegatingBackgroundTaskExecutor.execute(DelegatingBackgroundTaskExecutor.java:32) ~[portal-kernel.jar:?]
at com.liferay.portal.background.task.internal.ThreadLocalAwareBackgroundTaskExecutor.execute(ThreadLocalAwareBackgroundTaskExecutor.java:66) ~[?:?]
at com.liferay.portal.background.task.internal.messaging.BackgroundTaskMessageListener.doReceive(BackgroundTaskMessageListener.java:115) ~[?:?]
at com.liferay.portal.kernel.messaging.BaseMessageListener.doReceive(BaseMessageListener.java:39) ~[portal-kernel.jar:?]
at com.liferay.portal.kernel.messaging.BaseMessageListener.receive(BaseMessageListener.java:25) ~[portal-kernel.jar:?]
at com.liferay.portal.kernel.messaging.InvokerMessageListener.receive(InvokerMessageListener.java:62) ~[portal-kernel.jar:?]
at com.liferay.portal.messaging.internal.ParallelDestination$1.run(ParallelDestination.java:47) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?]
at java.lang.Thread.run(Thread.java:1583) [?:?]

1 Answer

1

For a first time startup, the index is always attempted to be recreated, but sometimes the context (i.e. an HTTP Request object) is not available and the indexing fails like this.

The first thing I do is log in and manually trigger the reindex. You should a) not see this type of reindexing failure again and b) when you restart not see the indexing exception.