Hidden icons reappear on AEM Start page after deployment
Hidden icons on the Adobe Experience Manager (AEM) Start page reappears after pipeline deployments, even though the overlay configuration exists in the codebase. The issue occurs when content package filters apply overlapping paths, which causes repository nodes to import inconsistently during deployment. To resolve the issue, correct the content package filter definitions and redeploy.
Description description
Environment
Adobe Experience Manager as a Cloud Service (AEMaaCS) - Sites
Issue/Symptoms
- Icons intended to remain hidden on the AEM Start page reappear after pipeline deployments.
- The overlay configuration for hiding the icons exists in the codebase, but doesn’t persist post-deployment.
- The issue persists across multiple pipeline executions.
- This behaviour appears in one environment, such as Staging, but not in another, such as Development.
Resolution resolution
To resolve the issue, follow these steps:
-
Review the
filter.xmlfile in yourui.appspackage. -
Remove broad filter entries that overlap with specific paths, such as removing
/apps/cqwhen/apps/cq/core/content/navis also defined. -
Ensure only one filter entry covers
/apps/cq/core/content/nav, and set its mode toreplaceinstead ofmerge. -
In the
.content.xmlfile for/apps/cq/core/content/nav, confirm thatjcr:primaryTypematches the repository value, typicallysling:OrderedFolder. -
In structure or related packages, such as
ui.apps.structure, set broad filter roots like/apps,/content, and/oak:indextomode="merge"instead ofreplace. -
Rebuild the project and run the deployment pipeline for the target environment.
-
After deployment, verify that:
- The node at
/apps/cq/core/content/navcontains the expectedsling:hideChildrenproperty. - The intended icons are hidden on the AEM Start page.
- The node at
Notes:
- Using
mode="replace"on small, project-owned subtrees is acceptable; avoid using it on broad product-owned roots like/appsor/content. - Overlapping filters cause nodes to import multiple times, which overwrites properties such as
sling:hideChildren. - Setting
mode="merge"preserves existing nodes and updates only explicitly defined content. - If changes don’t take effect immediately, ensure no other packages overwrite the same paths during installation.