When attempted to export "cost drivers", it neither triggers a file download nor displays error after upgrading to VCF Operations 9.1 from 8.18.x.
Below log entries are found during the export attempt.
bm-controller-#####.log
YYYY-MM-DDThh:mm:ss.zzzZ ERROR bm-controller 29483 [ops@4413 threadId="329222" threadName="ServerConnection on port 10000 Thread 128" operationId=""] [com.vmware.vcops.businessmgmt.bridge.server.BusinessManagementBridgeTracerAspect.exportCostDrivers_aroundBody109$advice] - Exception while executing function : exportCostDriversjava.util.concurrent.CompletionException: java.lang.NullPointerException: Cannot invoke "java.lang.Long.longValue()" because "item.discoveryDate" is null at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(Unknown Source) at java.base/java.util.concurrent.CompletableFuture.uniComposeStage(Unknown Source) at java.base/java.util.concurrent.CompletableFuture.thenCompose(Unknown Source)
web.log
YYYY-MM-DDThh:mm:ss.zzzZ INFO web 27633 [ops@4413 threadId="136441" threadName="ajp-nio-127.0.0.1-8009-exec-422"] [com.vmware.vcops.ui.util.MainPortalListener.log] - Cannot invoke "com.vmware.vcops.bridge.model.result.ResultDto.getDto()" because the return value of "com.vmware.vcops.businessmgmt.bridge.client.ICostDriver.exportCostDrivers(String)" is null (Url: /ui/costDriver.actionParams: mainAction=exportCostDrivers)java.lang.NullPointerException: Cannot invoke "com.vmware.vcops.bridge.model.result.ResultDto.getDto()" because the return value of "com.vmware.vcops.businessmgmt.bridge.client.ICostDriver.exportCostDrivers(String)" is null at com.vmware.vcops.ui.action.CostDriverAction.execute(CostDriverAction.java:608) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
Some of the hosts in the inventory are in powered off during the upgrade. In version 9.1, a new table (cost.serverhardware) was introduced with columns that remain empty until populated during cost calculation.
Because these hosts were powered off, they were excluded from cost calculation, leaving those columns null and causing a NullPointerException (NPE) during export.
Resolving this issue requires manual modification of the VCF Ops Server PostgreSQL database.
To resolve this issue, contact Broadcom Support and reference this Knowledge Base article.