Deployments fails on allocation phase with AZURE endpoint when disk constraints are with :soft tag.
In vRA UI deployments fails with an Error as below
Cannot invoke "Comparable.compareTo(Object)" because the return value of "function.Function.apply(Object)" is null
Example Error in the provisioning-service-app.log
2025-03-31T09:37:46.265Z WARN provisioning [host='provisioning-service-app-ccf758986-nk9x2' thread='xn-index-queries-15' user='' org='' trace='' parent='' span=''] c.v.a.r.s.DiskOperationTaskService.log:416 - [8282/provisioning/requests/disk-operations/DDDDDDDD-DDDD-DDDD-DDDD-DDDDDDDDDDDD] Unable to allocate disk. Error: java.util.concurrent.CompletionException: java.lang.NullPointerException: Cannot invoke "java.lang.Comparable.compareTo(Object)" because the return value of "java.util.function.Function.apply(Object)" is null at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:315) at java.base/java.util.concurrent.CompletableFuture.uniApplyNow(CompletableFuture.java:687).... Caused by: java.lang.NullPointerException: Cannot invoke "java.lang.Comparable.compareTo(Object)" because the return value of "java.util.function.Function.apply(Object)" is null at java.base/java.util.Comparator.lambda$comparing$77a9974f$1(Comparator.java:473)2025-03-31T09:37:46.266Z INFO provisioning [host='provisioning-service-app-ccf758986-nk9x2' thread='xn-index-queries-15' user='' org='' trace='' parent='' span=''] c.v.a.r.s.DiskOperationTaskService.validateStageTransitionAndState:1402 - [/provisioning/requests/disk-operations/DDDDDDDD-DDDD-DDDD-DDDD-DDDDDDDDDDDD] Moving from STARTED(FILTER_PLACEMENTS) to FAILED(ERROR).2025-03-31T09:37:46.273Z WARN provisioning [host='provisioning-service-app-ccf758986-nk9x2' thread='xn-index-queries-5' user='' org='' trace='' parent='' span=''] c.v.xenon.common.ServiceErrorResponse.create:83 - message: Service not found: http://10.244.0.112:8282/resources/disks/BBBBBBBB-BBBB-BBBB-BBBB-BBBBBBBBBBBB, statusCode: 404, serverErrorId: AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA2025-03-31T09:37:46.274Z INFO provisioning [host='provisioning-service-app-ccf758986-nk9x2' thread='xn-index-queries-5' user='' org='' trace='' parent='' span=''] c.v.a.r.s.DiskOperationTaskService.lambda$updateReservation$14:725 - Un-reserving storage for disk /resources/disks/BBBBBBBB-BBBB-BBBB-BBBB-BBBBBBBBBBBB for operation: Disk.Create2025-03-31T09:37:46.275Z WARN provisioning [host='provisioning-service-app-ccf758986-nk9x2' thread='xn-index-queries-5' user='' org='' trace='' parent='' span=''] c.v.xenon.common.ServiceErrorResponse.create:85 - message: groupResourcePlacementLink is a required field., statusCode: 400, serverErrorId: EEEEEEEE-EEEE-EEEE-EEEE-EEEEEEEEEEEE: Caused by java.lang.IllegalArgumentException: groupResourcePlacementLink is a required field. at com.vmware.xenon.common.Utils.validateState(Utils.java:1119) at com.vmware.admiral.service.common.AbstractTaskStatefulService.validateStateOnStart(AbstractTaskStatefulService.java:808) at com.vmware.admiral.service.common.AbstractTaskStatefulService.validateNewState(AbstractTaskStatefulService.java:802) at com.vmware.admiral.service.common.AbstractTaskStatefulService.doHandleCreate(AbstractTaskStatefulService.java:517)
2025-03-31T09:37:46.275Z ERROR provisioning [host='provisioning-service-app-ccf758986-nk9x2' thread='xn-index-queries-5' user='' org='' trace='' parent='' span=''] c.v.a.s.w.p.x.c.StatefulServiceController.lambda$configureReplayOnVersionConflict$10:473 - Error in operation POST /provisioning/requests/reservation-update-tasks/CCCCCCCC-CCCC-CCCC-CCCC-CCCCCCCCCCCC (referer http://10.244.0.112:8282/provisioning/requests/disk-operations/DDDDDDDD-DDDD-DDDD-DDDD-DDDDDDDDDDDD): java.lang.IllegalArgumentException: groupResourcePlacementLink is a required field.2025-03-31T09:37:46.275Z WARN provisioning [host='provisioning-service-app-ccf758986-nk9x2' thread='xn-index-queries-5' user='' org='' trace='' parent='' span=''] c.v.a.r.s.DiskOperationTaskService.lambda$unreserveDisk$6:547 - Failure updating allocated and available storage in placement: java.util.concurrent.CompletionException: java.lang.IllegalArgumentException: groupResourcePlacementLink is a required field. at java.base/java.util.concurrent.CompletableFuture.encodeRelay(CompletableFuture.java:368) at java.base/java.util.concurrent.CompletableFuture.completeRelay(CompletableFuture.java:377)
Aria Automation 8.18.1
The issue can happen when the blueprint contains the Soft constraints for an extra disk like
constraints:
tag: diskType:Standard:soft
The solution does not exist in 8.18.1
The workaround is to remove SOFT constrains, by edit the blueprint yaml.
constraints:
tag: diskType:Standard
More info about the soft and hard constraints can be found here:
How hard and soft constraints work in projects and cloud templates
https://techdocs.broadcom.com/us/en/vmware-cis/aria/aria-automation/8-18/assembler-on-prem-using-and-managing-master-map-8-18/maphead-build-resource-infrastructure/maphead-how-to-use-tags/using-constraint-tags-in-cloud-assembly.html