13.08.2025 00:10:49.575 *ERROR* [JobHandler: /var/workflow/instances/server0/2025-08-12/update_asset_59:/content/dam/medtronic-wide/imagery/photography/conceptual/test-imagery-aug-12/shiley-50flexltcd-trach-tube-prodmast.psd/jcr:content/renditions/original] com.day.cq.dam.core.impl.RenditionMakerImpl Error while generating renditions for asset /content/dam/medtronic-wide/imagery/photography/conceptual/test-imagery-aug-12/shiley-50flexltcd-trach-tube-prodmast.psd javax.jcr.InvalidItemStateException: OakState0001: Unresolved conflicts in /content/dam/medtronic-wide/imagery/photography/conceptual/test-imagery-aug-12/shiley-50flexltcd-trach-tube-prodmast.psd/jcr:content at org.apache.jackrabbit.oak.api.CommitFailedException.asRepositoryException(CommitFailedException.java:238) [org.apache.jackrabbit.oak-api:1.22.14] at org.apache.jackrabbit.oak.api.CommitFailedException.asRepositoryException(CommitFailedException.java:213) [org.apache.jackrabbit.oak-api:1.22.14] at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.newRepositoryException(SessionDelegate.java:669) [org.apache.jackrabbit.oak-jcr:1.22.14] at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.save(SessionDelegate.java:495) [org.apache.jackrabbit.oak-jcr:1.22.14] at org.apache.jackrabbit.oak.jcr.session.SessionImpl$8.performVoid(SessionImpl.java:424) [org.apache.jackrabbit.oak-jcr:1.22.14] at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:273) [org.apache.jackrabbit.oak-jcr:1.22.14] at org.apache.jackrabbit.oak.jcr.session.SessionImpl.save(SessionImpl.java:421) [org.apache.jackrabbit.oak-jcr:1.22.14] at com.day.cq.dam.core.impl.RenditionMakerImpl.generateRenditions(RenditionMakerImpl.java:232) [com.day.cq.dam.cq-dam-core:5.12.356] at com.day.cq.dam.core.process.CreateThumbnailProcess.createThumbnails(CreateThumbnailProcess.java:129) [com.day.cq.dam.cq-dam-core:5.12.356] at com.day.cq.dam.core.process.ThumbnailProcess.execute(ThumbnailProcess.java:105) [com.day.cq.dam.cq-dam-core:5.12.356] at com.day.cq.workflow.compatibility.CQWorkflowProcessRunner.execute(CQWorkflowProcessRunner.java:93) [com.day.cq.workflow.cq-workflow-impl:6.3.8.CQ652-B0003] at com.adobe.granite.workflow.core.job.HandlerBase.executeProcess(HandlerBase.java:194) [com.adobe.granite.workflow.core:2.0.240.CQ660-B0017] at com.adobe.granite.workflow.core.job.JobHandler.process(JobHandler.java:271) [com.adobe.granite.workflow.core:2.0.240.CQ660-B0017] at org.apache.sling.event.impl.jobs.JobConsumerManager$JobConsumerWrapper.process(JobConsumerManager.java:502) [org.apache.sling.event:4.2.24] at org.apache.sling.event.impl.jobs.queues.JobQueueImpl.startJob(JobQueueImpl.java:351) [org.apache.sling.event:4.2.24] at org.apache.sling.event.impl.jobs.queues.JobQueueImpl.access$100(JobQueueImpl.java:60) [org.apache.sling.event:4.2.24] at org.apache.sling.event.impl.jobs.queues.JobQueueImpl$1.run(JobQueueImpl.java:287) [org.apache.sling.event:4.2.24] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834) Caused by: org.apache.jackrabbit.oak.api.CommitFailedException: OakState0001: Unresolved conflicts in /content/dam/medtronic-wide/imagery/photography/conceptual/test-imagery-aug-12/shiley-50flexltcd-trach-tube-prodmast.psd/jcr:content at org.apache.jackrabbit.oak.plugins.commit.ConflictValidator.failOnMergeConflict(ConflictValidator.java:115) [org.apache.jackrabbit.oak-core:1.22.14] at org.apache.jackrabbit.oak.plugins.commit.ConflictValidator.propertyAdded(ConflictValidator.java:84) [org.apache.jackrabbit.oak-core:1.22.14] at org.apache.jackrabbit.oak.spi.commit.CompositeEditor.propertyAdded(CompositeEditor.java:82) [org.apache.jackrabbit.oak-store-spi:1.22.14] at org.apache.jackrabbit.oak.spi.commit.EditorDiff.propertyAdded(EditorDiff.java:81) [org.apache.jackrabbit.oak-store-spi:1.22.14] at org.apache.jackrabbit.oak.segment.SegmentNodeState.compareProperties(SegmentNodeState.java:660) [org.apache.jackrabbit.oak-segment-tar:1.22.14] at org.apache.jackrabbit.oak.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:523) [org.apache.jackrabbit.oak-segment-tar:1.22.14] at org.apache.jackrabbit.oak.spi.commit.EditorDiff.childNodeChanged(EditorDiff.java:147) [org.apache.jackrabbit.oak-store-spi:1.22.14] at org.apache.jackrabbit.oak.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:598) [org.apache.jackrabbit.oak-segment-tar:1.22.14] at org.apache.jackrabbit.oak.spi.commit.EditorDiff.childNodeChanged(EditorDiff.java:147) [org.apache.jackrabbit.oak-store-spi:1.22.14] at org.apache.jackrabbit.oak.segment.MapRecord.compare(MapRecord.java:444) [org.apache.jackrabbit.oak-segment-tar:1.22.14] at org.apache.jackrabbit.oak.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:651) [org.apache.jackrabbit.oak-segment-tar:1.22.14] at org.apache.jackrabbit.oak.spi.commit.EditorDiff.childNodeChanged(EditorDiff.java:147) [org.apache.jackrabbit.oak-store-spi:1.22.14] at org.apache.jackrabbit.oak.segment.MapRecord.compare(MapRecord.java:444) [org.apache.jackrabbit.oak-segment-tar:1.22.14] at org.apache.jackrabbit.oak.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:651) [org.apache.jackrabbit.oak-segment-tar:1.22.14] at org.apache.jackrabbit.oak.spi.commit.EditorDiff.childNodeChanged(EditorDiff.java:147) [org.apache.jackrabbit.oak-store-spi:1.22.14] at org.apache.jackrabbit.oak.segment.MapRecord.compare(MapRecord.java:444) [org.apache.jackrabbit.oak-segment-tar:1.22.14] at org.apache.jackrabbit.oak.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:651) [org.apache.jackrabbit.oak-segment-tar:1.22.14] at org.apache.jackrabbit.oak.spi.commit.EditorDiff.childNodeChanged(EditorDiff.java:147) [org.apache.jackrabbit.oak-store-spi:1.22.14] at org.apache.jackrabbit.oak.segment.MapRecord.compare(MapRecord.java:444) [org.apache.jackrabbit.oak-segment-tar:1.22.14] at org.apache.jackrabbit.oak.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:651) [org.apache.jackrabbit.oak-segment-tar:1.22.14] at org.apache.jackrabbit.oak.spi.commit.EditorDiff.childNodeChanged(EditorDiff.java:147) [org.apache.jackrabbit.oak-store-spi:1.22.14] at org.apache.jackrabbit.oak.segment.MapRecord.compare(MapRecord.java:444) [org.apache.jackrabbit.oak-segment-tar:1.22.14] at org.apache.jackrabbit.oak.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:651) [org.apache.jackrabbit.oak-segment-tar:1.22.14] at org.apache.jackrabbit.oak.spi.commit.EditorDiff.childNodeChanged(EditorDiff.java:147) [org.apache.jackrabbit.oak-store-spi:1.22.14] at org.apache.jackrabbit.oak.segment.MapRecord.compare(MapRecord.java:444) [org.apache.jackrabbit.oak-segment-tar:1.22.14] at org.apache.jackrabbit.oak.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:651) [org.apache.jackrabbit.oak-segment-tar:1.22.14] at org.apache.jackrabbit.oak.spi.commit.EditorDiff.childNodeChanged(EditorDiff.java:147) [org.apache.jackrabbit.oak-store-spi:1.22.14] at org.apache.jackrabbit.oak.segment.MapRecord.compare(MapRecord.java:444) [org.apache.jackrabbit.oak-segment-tar:1.22.14] at org.apache.jackrabbit.oak.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:651) [org.apache.jackrabbit.oak-segment-tar:1.22.14] at org.apache.jackrabbit.oak.spi.commit.EditorDiff.childNodeChanged(EditorDiff.java:147) [org.apache.jackrabbit.oak-store-spi:1.22.14] at org.apache.jackrabbit.oak.segment.MapRecord.compare(MapRecord.java:444) [org.apache.jackrabbit.oak-segment-tar:1.22.14] at org.apache.jackrabbit.oak.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:651) [org.apache.jackrabbit.oak-segment-tar:1.22.14] at org.apache.jackrabbit.oak.spi.commit.EditorDiff.process(EditorDiff.java:51) [org.apache.jackrabbit.oak-store-spi:1.22.14] at org.apache.jackrabbit.oak.spi.commit.EditorHook.processCommit(EditorHook.java:54) [org.apache.jackrabbit.oak-store-spi:1.22.14] at org.apache.jackrabbit.oak.spi.commit.CompositeHook.processCommit(CompositeHook.java:60) [org.apache.jackrabbit.oak-store-spi:1.22.14] at org.apache.jackrabbit.oak.spi.commit.CompositeHook.processCommit(CompositeHook.java:60) [org.apache.jackrabbit.oak-store-spi:1.22.14] at org.apache.jackrabbit.oak.segment.scheduler.Commit.apply(Commit.java:105) [org.apache.jackrabbit.oak-segment-tar:1.22.14] at org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.execute(LockBasedScheduler.java:299) [org.apache.jackrabbit.oak-segment-tar:1.22.14] at org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.schedule(LockBasedScheduler.java:270) [org.apache.jackrabbit.oak-segment-tar:1.22.14] at org.apache.jackrabbit.oak.segment.SegmentNodeStore.merge(SegmentNodeStore.java:211) [org.apache.jackrabbit.oak-segment-tar:1.22.14] at org.apache.jackrabbit.oak.core.MutableRoot.commit(MutableRoot.java:251) [org.apache.jackrabbit.oak-core:1.22.14] at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.commit(SessionDelegate.java:346) [org.apache.jackrabbit.oak-jcr:1.22.14] at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.save(SessionDelegate.java:493) [org.apache.jackrabbit.oak-jcr:1.22.14] ... 16 common frames omitted
When i try to reupload an asset i am triggering an workflow manually after which the assets are moved to a common location and there the "Update Asset" and "Set last modified" workflows are getting triggered through launchers and then i am getting the above error.
Please respond if you have faced such an issue and let us know what will be causing this issue and how did you resolve it, your help will be very useful.
Thank you in advance!
해결되었습니다! 솔루션으로 이동.
조회 수
답글
좋아요 수
Hi @PriyankaTe,
That's straightforward: Two or more sessions are trying to save changes to the same node (/content/dam/.../shiley-50flexltcd-trach-tube-prodmast.psd/jcr:content) at the same time, and Oak can’t auto-merge them. This is common when:
Multiple workflows (or launchers) are working on the same asset concurrently.
A manual workflow trigger is overlapping with an automatic launcher trigger (both modifying jcr:content at the same time).
Rendition generation and “Set last modified” are updating the same properties.
Here are fe things you can consider to fix:
1. Prevent overlapping workflows
Disable one of the launchers for the path your manual workflow already covers.
Or, add a condition in the launcher to skip execution if another workflow for the same asset is already running.
2. Introduce sequencing
Modify your process so that Set last modified runs after Update Asset finishes.
This can be done by merging steps into a single workflow model instead of separate launchers.
3. Throttle asset processing
Add a delay before triggering the second workflow (eg by using a custom step that waits until renditions are done).
4. Use jcr:lock or workflow metadata flags
Lock the asset before processing and unlock when done, so other workflows skip it.
5. Check for AEMaaCS behavior
If you are on AEM as a Cloud Service, launchers are even more parallelized. You may need to use Asset microservices sequencing or Adobe’s recommended approach of single-entry-point workflows.
조회 수
답글
좋아요 수
Hi @PriyankaTe,
That's straightforward: Two or more sessions are trying to save changes to the same node (/content/dam/.../shiley-50flexltcd-trach-tube-prodmast.psd/jcr:content) at the same time, and Oak can’t auto-merge them. This is common when:
Multiple workflows (or launchers) are working on the same asset concurrently.
A manual workflow trigger is overlapping with an automatic launcher trigger (both modifying jcr:content at the same time).
Rendition generation and “Set last modified” are updating the same properties.
Here are fe things you can consider to fix:
1. Prevent overlapping workflows
Disable one of the launchers for the path your manual workflow already covers.
Or, add a condition in the launcher to skip execution if another workflow for the same asset is already running.
2. Introduce sequencing
Modify your process so that Set last modified runs after Update Asset finishes.
This can be done by merging steps into a single workflow model instead of separate launchers.
3. Throttle asset processing
Add a delay before triggering the second workflow (eg by using a custom step that waits until renditions are done).
4. Use jcr:lock or workflow metadata flags
Lock the asset before processing and unlock when done, so other workflows skip it.
5. Check for AEMaaCS behavior
If you are on AEM as a Cloud Service, launchers are even more parallelized. You may need to use Asset microservices sequencing or Adobe’s recommended approach of single-entry-point workflows.
조회 수
답글
좋아요 수
Thank you @SantoshSai for your reply. I will try all the scenarios here.
조회 수
답글
좋아요 수