Expand my Community achievements bar.

Submissions are now open for the 2026 Adobe Experience Maker Awards.
SOLVED

Why does jcr:uuid change after moving a page in Language Master and rolling out in AEM sites through MSM?

Avatar

Level 4

Hi All,

I’m working with AEM as a Cloud Service and using Multi Site Manager (MSM) for localization.

I noticed that when I move a page within the Language Master and then rollout the changes to the live copy, the jcr:uuid of the page in the live copy changes. It seems like AEM is creating a new node and deleting the old one instead of just moving the node and preserving the UUID.


Can someone explain:

  • Why exactly this behavior occurs?
  • Is it expected in AEM MSM rollout?
  • Is there any way (config or customization) to preserve the original jcr:uuid in live copies during such operations?

Appreciate any insights or best practices around this.


Thanks!

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

this is what provided in abode documents about jcr:uuid.

https://developer.adobe.com/experience-manager/reference-materials/spec/jcr/1.0/4.9_Referenceable_No...


The jcr:uuid property is a protected, auto-created, mandatory property. This means that it is created and administered by the system and can only be read (but not changed or deleted) by the client. The job of the jcr:uuid property is to expose the universally unique identifier (UUID) of its node

 

since its protected and system controlled then why do you want to control the jcr:uuid. What’s the use case for you and i believe protected properties are not moved during the move operation.

 

View solution in original post

4 Replies

Avatar

Correct answer by
Community Advisor

this is what provided in abode documents about jcr:uuid.

https://developer.adobe.com/experience-manager/reference-materials/spec/jcr/1.0/4.9_Referenceable_No...


The jcr:uuid property is a protected, auto-created, mandatory property. This means that it is created and administered by the system and can only be read (but not changed or deleted) by the client. The job of the jcr:uuid property is to expose the universally unique identifier (UUID) of its node

 

since its protected and system controlled then why do you want to control the jcr:uuid. What’s the use case for you and i believe protected properties are not moved during the move operation.

 

Avatar

Community Advisor

Hi @Rudra-2024,

This behaviour is expected and by design in AEM’s Multi Site Manager (MSM) rollout process. Let me explain your all question's one-by-one as below

Why does the jcr:uuid change after moving a page and rolling it out?

When you move a page inside the language master and then trigger a rollout, MSM treats this as a delete + create operation on the live copy. The live copy node at the original path is removed, and a new node is created at the new path.

Since a new node is created, it receives a new jcr:uuid — UUIDs in JCR are unique identifiers assigned per node instance and are not preserved when nodes are deleted and recreated.

Why does MSM do this instead of just moving the node?
  • The MSM rollout engine does not replicate move operations as move in the live copies.

  • It works with a model of synchronization where content and structure changes result in removing old nodes and creating new ones to ensure the live copy exactly mirrors the master.

  • This approach avoids complex edge cases around moves and ensures consistency, but at the cost of losing the original UUID.

Is there a way to preserve the UUID during rollout?
  • Out of the box, no. AEM MSM does not support preserving UUIDs during moves in rollout because UUID uniqueness and node identity would be compromised if it simply moved the node in the live copy.

  • The rollout is a deep content synchronization, not a direct JCR-level move operation.

Possible workarounds or customizations:
  • Custom rollout workflow: You could theoretically customize rollout processing to detect moves and instead perform JCR move operations on the live copies, preserving UUIDs — but this is complex and not officially supported.

  • Avoid moving language master pages post-rollout: Finalize your page structure before rollout to minimize moves.

  • Use references or mappings: Instead of moving pages, create new structure with redirects or references that don’t require node deletion/recreation.


Santosh Sai

AEM BlogsLinkedIn


Avatar

Community Advisor

Hi @Rudra-2024 
This behavior you're encountering with AEM's Multi Site Manager (MSM) is indeed expected and can be explained by how MSM handles page rollouts and node creation.

Why This Behavior Occurs

When you move a page within the Language Master and then rollout the changes to the live copy, AEM MSM creates a new node in the live copy rather than moving the existing node. This results in a new jcr:uuid for the page in the live copy. The reason for this is that MSM treats the rollout as a synchronization process where the source content is copied to the live copy, rather than simply moving the node.

Is This Expected in AEM MSM Rollout?

Yes, this behavior is expected in AEM MSM rollouts. MSM is designed to create new nodes in the live copy during rollouts to ensure that the live copy accurately reflects the structure and content of the source. This approach helps maintain the integrity of the live copy and allows for independent modifications to the live copy without affecting the source 

Preserving the Original jcr:uuid

Unfortunately, there is no out-of-the-box configuration or customization in AEM MSM that allows you to preserve the original jcr:uuid during rollouts. The creation of new nodes with new UUIDs is a fundamental part of how MSM operates. However, you can consider the following best practices to manage this:

  1. Custom Rollout Configuration: You can create custom rollout configurations to control how content is synchronized between the source and live copies. This might involve custom scripts or workflows to handle specific requirements 
  2. Content Synchronization Strategy: Develop a strategy that minimizes the need to move pages frequently within the Language Master. Instead, focus on updating content within existing nodes to reduce the impact on UUIDs 

Best Practices

  • Plan Your Content Structure: Carefully plan the structure of your Language Master and live copies to minimize the need for moving pages.
  • Use Custom Scripts: If preserving UUIDs is critical, consider developing custom scripts or workflows that handle node movement and synchronization in a way that meets your requirements.

For more detailed information, you can refer to the

Reusing Content: Multi Site Manager and Live Copy | Adobe Experience Manager
https://sourcedcode.com/blog/aem/how-to-re-sync-a-live-copy-language-root-to-a-blueprint-in-aem-msm#... 



Avatar

Administrator

@Rudra-2024 Did you find the suggestions helpful? If you need more information, please let us know. If a response resolved your issue, kindly mark it as correct to help others in the future. Alternatively, if you discovered a solution on your own, we'd appreciate it if you could share it with the community. Thank you.



Kautuk Sahni