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:

  1. Review the filter.xml file in your ui.apps package.

  2. Remove broad filter entries that overlap with specific paths, such as removing /apps/cq when /apps/cq/core/content/nav is also defined.

  3. Ensure only one filter entry covers /apps/cq/core/content/nav, and set its mode to replace instead of merge.

  4. In the .content.xml file for /apps/cq/core/content/nav, confirm that jcr:primaryType matches the repository value, typically sling:OrderedFolder.

  5. In structure or related packages, such as ui.apps.structure, set broad filter roots like /apps, /content, and /oak:indexto mode="merge" instead of replace.

  6. Rebuild the project and run the deployment pipeline for the target environment.

  7. After deployment, verify that:

    • The node at /apps/cq/core/content/nav contains the expected sling:hideChildren property.
    • The intended icons are hidden on the AEM Start page.

Notes:

  • Using mode="replace" on small, project-owned subtrees is acceptable; avoid using it on broad product-owned roots like /apps or /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.
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f