Upgrade Preview module does not load correctlyIssue When navigating to Upgrade Center -> Upgrade Preview, you may notice that the page does not load correctly. You will see a spinning wheel on one of the panels, and no data loads on the page. In the console, you can see a javascript error: js_includes_upgrade_preview.jsx?v=03-03-2021_0818&lp=Mon_Apr_05_10_53_28_PDT_2021&c=32_1058:123 TypeError: Cannot read property 'value' of undefinedat getUpgradePreviewData (js_includes_upgrade_preview.jsx?v=03-03-2021_0818&lp=Mon_Apr_05_10_53_28_PDT_2021&c=32_1058:14330) In the localhost logs, you can see that it is failing when checking for Estimated Upgrade Completion Time: 2021-04-15 11:22:37 (342) Default-thread-13 8E743FD11BEBE450B3BC4223CD4BCB33 txid=42693f151beb SEVERE *** ERROR *** Failed to assemble response.java.lang.NullPointerException at com.glide.upgrade_center.UpgradeDurationResolver.checkSourceForEstimate(UpgradeDurationResolver.java:353) at com .glide.upgrade_center.UpgradeDurationResolver.checkAllSourcesForEstimate(UpgradeDurationResolver.java:400) at com.glide.upgrade_center.UpgradeDurationResolver.computeUpgradeDurationFromRemoteHistory(UpgradeDurationResolver.java:145) at com.glide.upgrade_center.UpgradeDurationResolver.<init>(UpgradeDurationResolver.java:133) at com.glide.upgrade_center.UpgradeDurationResolver.<init>(UpgradeDurationResolver.java:90) at com.glide.upgrade_center.preview.api.service.ServiceFacade.getScheduledUpgradeDurationEstimate(ServiceFacade.java:193) at com.glide.upgrade_center.preview.api.response.assembly.InstanceStateResponseAssembler.assemble(InstanceStateResponseAssembler.java:55) at com.glide.upgrade_center.preview.api.request.ARequestEndpoint.process(ARequestEndpoint.java:25) at com.glide.upgrade_center.preview.api.request.InstanceStateEndpoint.process(InstanceStateEndpoint.java:6) at com.glide.ui.ng.AngularProcessor.process0(AngularProcessor.java:233) at com.glide.ui.ng.AngularProcessor.process(AngularProcessor.java:178) at com.glide.processors.AProcessor.runProcessor(AProcessor.java:596) at com.glide.processors.AProcessor.processTransaction(AProcessor.java:266) at com.glide.processors.ProcessorRegistry.process0(ProcessorRegistry.java:181) at com.glide.processors.ProcessorRegistry.process(ProcessorRegistry.java:169) at com.glide.ui.GlideServletTransaction.process(GlideServletTransaction.java:44) at com.glide.sys.Transaction.run(Transaction.java:2275) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)ReleaseParis and beyondCauseThe issue is caused because the Upgrade Engine looks externally to determine Upgrade Estimated Time. Which external source the Upgrade Engine checks is based on a few things: If the sys_property "glide.upgrade.preview.duration.instance.id" has a value, it checks here first. This value should be the sys_id of the remote instance.Otherwise, the system will check every instance in the Remote Instances list (sys_update_set_source table). ResolutionThere are two paths to resolution (in no particular order):1) If you add a valid instance sys_id to the "glide.upgrade.preview.duration.instance.id" property, it will resolve the issue.This is how you can find an instance's id: Navigate to the sys_update_set_source tableOpen a recordRight click on header -> Show XMLView the "instance_id" value 2) It may also be worth verifying every connection in the sys_update_set_source table as well. You can do this by clicking "Test Connection" on each of the sys_update_set_source records.Related LinksMore information on the "glide.upgrade.preview.duration.instance.id" property can be seen here: Properties