Failed to deploy OVF package. Cause: A general system error occurred: Unable to retrieve manifest or certificate file.
/var/log/vmware/content-library/cls.log, the following error can be seen:<time_stamp> | ERROR | ########-########-auto-######-h5:########-##-## | cls-simple-activity-1 | ImportSessionActivity | OVF import session ########-####-####-####-cccd84d2ca41 failed with server error.
com.vmware.vapi.std.errors.ServiceUnavailable: ServiceUnavailable (com.vmware.vapi.std.errors.service_unavailable) => {
messages = [LocalizableMessage (com.vmware.vapi.std.localizable_message) => {
id = com.vmware.ovfs.ovfs-main.ovfs.transfer_failed_mf_cert_retrieval_timeout,
defaultMessage = Unable to retrieve manifest or certificate file.,
args = [],
params = <null>,
localized = <null>
}],
data = <null>,
errorType = SERVICE_UNAVAILABLE
This issue has been observed when the OVF contains one or more large disk files.
In some cases the content library tries to read the manifest file (*.mf) of the OVF after the disk(s), at which point the preconfigured timeout for file transfers might have already expired.
Note:Before making any changes to the configuration in the vCenter Server Appliance, make sure to create a fresh backup of snapshot of the VCSA. If the VCSA is part of an Enhanced Linked Mode (ELM) replication setup, offline snapshots of all ELM nodes are required. See VMware vCenter in Enhanced Linked Mode pre-changes snapshot (online or offline) best practice for more information.
To solve this issue, implement either of the following to options:
/etc/vmware-content-library/config/ts-config.properties using the VI editortransfer.threads.poolSize=20
:wq!).# service-control --restart vmware-content-library
/etc/vmware-content-library/config/ts-config.properties using the VI editor.transfer.http.request.timeout.seconds=120
transfer.nfcClient.socket.timeout.seconds=120
:wq!).# service-control --restart vmware-content-library
transfer.threads.poolSize corresponds to the size of the network connection pools for transfers.transfer.nfcClient.socket.timeout.seconds and transfer.http.request.timeout.seconds correspond to the number of seconds before nfc sockets and http requests are timed out, respectively.