/o//commerce-media/accounts/-1/images/28171222?download=true

Healthchecks
DXP App
Utility
28171196

Run an automated checklist for your systems health. This checklist can help to detect unusual or unsupported setups, as well as systems restored in a different environment. Notable features include:

  • Running VerifyProperties for your version at runtime
  • Check the age of your installation, takes your preference of LTS or not into account (some of these features DXP-specific, desired age configurable)
  • User Password Hashing checks, including a configurable sample amount of users to be checked for using an up-to-date hashing configuration strength
  • Checks for correct configuration of boolean and numeric properties
  • Detects if a backup is restored on a different system - e.g. when PRD is restored in UAT, which might require an admin to make sure to reconfigure other aspects too (e.g. Client Extensions, Data Providers, Web Hooks).
  • Detect proper configuration of redirection rules for accessed host names
  • Shows the remaining Premium Support period (DXP-only) and alerts you at a configurable time before it runs out and others
  • Allows you to specify the minimum number of nodes that you expect to be live in a healthy cluster
  • Check validity of certificates of systems that you connect to - e.g. through Client Extensions, Data Providers, Web Hooks or a manually configured additional list of hosts
  • Optional "relaxed" settings for development systems (host names need to be explicitly specified for these tests to run) to make your development experience smoother
  • Detects if your search index is out-of-date and needs to be reindexed (by sampling the number of indexed users)
  • Detects if you're running an unsupported configuration (e.g. HSQL or Elasticsearch-Sidecar)
  • Detects if your server started with incomplete components (smoke-test, beta) and needs a restart to be fully available
DEVELOPER
DEVELOPER
2025.05.28. 16:19
Published date
2025.05.28. 16:19
Published Date
2025.05.28. 16:19
SUPPORTED OFFERINGS
Liferay PaaS
Supported Versions
2025 Q1, 2024 Q4, 2024 Q3, 2024 Q2, 7.4 GA120, 7.4 GA125, 7.4 GA129, 7.4 GA132, 2025 Q2
Resource Requirements
Hiba jelentkezett a sablon feldolgozása során.
The following has evaluated to null or missing:
==> channel.items  [in template "3192443#3192485#null" at line 18, column 30]

----
Tip: It's the step after the last dot that caused this error, not those before it.
----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign channelId = channel.items[0].id  [in template "3192443#3192485#null" at line 18, column 9]
----
1<#if themeDisplay?has_content> 
2	<#assign scopeGroupId = themeDisplay.getScopeGroupId() /> 
3</#if> 
4 
5<#if currentURL?has_content> 
6	<#if currentURL?contains('web')> 
7		<#assign 
8			index = 2 
9			partsUrl = currentURL?split('/') 
10			siteName = partsUrl[index..index]?join('/') 
11		/> 
12	</#if> 
13</#if> 
14 
15<#assign channel = restClient.get("/headless-commerce-delivery-catalog/v1.0/channels?accountId=-1&filter=name eq 'Marketplace Channel' and siteGroupId eq '${scopeGroupId}'") /> 
16 
17<#if channel?has_content> 
18	<#assign channelId = channel.items[0].id /> 
19</#if> 
20 
21<#if (CPDefinition_cProductId.getData())??> 
22	<#assign productId = CPDefinition_cProductId.getData() /> 
23</#if> 
24 
25<#assign 
26	product = restClient.get("/headless-commerce-delivery-catalog/v1.0/channels/"+ channelId +"/products/"+ productId +"?accountId=-1&nestedFields=productSpecifications") 
27	specifications = product.productSpecifications![] 
28/> 
29 
30<div> 
31	<#if specifications?has_content> 
32 
33		<#assign 
34			specificationCPUs = specifications?filter(item -> stringUtil.equals(item.specificationKey, "cpu")) 
35			specificationRAMs = specifications?filter(item -> stringUtil.equals(item.specificationKey, "ram")) 
36			 cpuQuantity = "" 
37				  memoryQuantity = "" 
38		/> 
39 
40		<#if specificationCPUs?has_content> 
41		 	<#list specificationCPUs as cpu> 
42				<#assign cpuQuantity = cpu.value /> 
43 
44				<#if cpuQuantity?has_content> 
45					${cpuQuantity} 
46					<#if cpuQuantity?eval gt 1> 
47						CPUS 
48					</#if> 
49 
50					<#if cpuQuantity?eval lt 2> 
51						CPU 
52					</#if> 
53				</#if> 
54		  	</#list> 
55		</#if> 
56 
57		<#if specificationRAMs?has_content> 
58		  	<#list specificationRAMs as ram> 
59				<#assign memoryQuantity = ram.value /> 
60 
61				<#if cpuQuantity?has_content && memoryQuantity?has_content >, </#if> 
62 
63				<#assign memoryQuantity = ram.value /> 
64 
65				<#if memoryQuantity?has_content> 
66					${memoryQuantity} GB RAM 
67				</#if> 
68		  	</#list> 
69		</#if> 
70	</#if> 
71</div> 
Edition
CE
PRICE
Free
help & support
SHARE LINK
Copy & Share

HTML Example

A paragraph is a self-contained unit of a discourse in writing dealing with a particular point or idea. Paragraphs are usually an expected part of formal writing, used to organize longer prose.