A general system error occurred: Transfer failed: IO error during transfer: java.io.EOFException".The deployment process starts but fails during the transfer phase, preventing the virtual machine from being created.
Template-based deployment workflows are disrupted.
Additional symptoms reported:
A fatal error has occurred. Unable to Continue' appears in the Deploy OVF Template wizard within the vSphere Client.The Content Library uses the vCenter FQDN in the file URL (e.g., https://vCenterFQDN:443/cls/data/################/descriptor.ovf) to download the descriptor.ovf, which is logged in the vCenter Server at /var/log/vmware/content-library/cls.log.
YYYY-MM-DDTHH:MM:SS | DEBUG | ########-######-auto-####-h5:###### | cls-simple-activity-# | ImportSessionActivity | Start OVF import session with OVF_OPERATION_ID #########-######-auto-####-h5:######,
YYYY-MM-DDTHH:MM:SS | DEBUG | ########-######-auto-####-h5:###### | cls-simple-activity-# | VcTaskService | Setting progress for task ########-#####-####-####-######### (ManagedObjectReference: type = Task, value = task-#####, serverGuid = ##########) from null to #
YYYY-MM-DDTHH:MM:SS | DEBUG | ########-######-auto-####-h5:###### | cls-simple-activity-# | ImportSessionActivity | Initialized OVF import session: Info (com.vmware.vcenter.ovf.import_session.info) => { state = IMPORT_OVF_TRANSFER, progress = 0, fileTransferMode = <null>, files = [OvfFileInfo (com.vmware.vcenter.ovf.ovf_file_info) => { name = descriptor.ovf, fileType = OVF, optionalUpload = false, fileUrl = https://vCenterFQDN:443/cls/data/########/descriptor.ovf, sslThumbPrint = <null>, uploadMethod = <null>, size = -1, bytesTransferred = 0, sha256 =}], errors = [], warnings = [], information = [], vappId = <null>, vmId = <null>, customizationResults = {}}
The task eventually times out when attempting to resolve the vCenter FQDN because the system executes the command "/usr/bin/dig +short vCenterFQDN a" and returns the result "Cannot get IPv4 address for host name".YYYY-MM-DDTHH:MM:SS | ERROR | q-#####:QuickSearch:##########:##:library01 | tomcat-http-## | ScriptExecutionUtils | IPResolverUtil-resolve-ip : Timed out while running script [/usr/bin/dig, +short, vCenterFQDN, a].YYYY-MM-DDTHH:MM:SS | ERROR | q-#####:QuickSearch:##########:##:library01 | tomcat-http-## | IPResolverUtil | Error executing dig ip cmd [/usr/bin/dig, +short, vCenterFQDN, a].com.vmware.vcde.util.process.ScriptException: Operation timed out. at com.vmware.vcde.util.process.ScriptExecutionUtils.runScriptProcess(ScriptExecutionUtils.java:##) ~[vsphere-util-lib-1.0.0.jar:?] at com.vmware.vcde.util.process.ScriptExecutionUtils.runScriptProcess(ScriptExecutionUtils.java:##) ~[vsphere-util-lib-1.0.0.jar:?] at com.vmware.vcde.util.IPResolverUtil.getIpAddressWithType(IPResolverUtil.java:###) [vsphere-util-lib-1.0.0.jar:?] at com.vmware.vcde.util.IPResolverUtil.getInetAddressByHostName(IPResolverUtil.java:##) [vsphere-util-lib-1.0.0.jar:?] at com.vmware.vcde.util.IPResolverUtil.getInetAddress(IPResolverUtil.java:##) [vsphere-util-lib-1.0.0.jar:?] at com.vmware.transfer.filters.TsCorsFilter.isOriginHostAllowed(TsCorsFilter.java:###) [ts-main-1.0.0.jar:?]...org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:###) [tomcat-embed-core-9.0.87.jar:9.0.87] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:##) [tomcat-embed-core-9.0.87.jar:9.0.87] at java.lang.Thread.run(Thread.java:###) [?:1.8.0_###]YYYY-MM-DDTHH:MM:SS | DEBUG | q-#####:QuickSearch:##########:01:library01 | tomcat-http-## | IPResolverUtil | Cannot get IPv4 address for host name: vCenterFQDN, trying IPv6
/usr/bin/dig +short vCenterFQDN a" command via SSH on the vCenter Server returns no IP address. "/usr/bin/dig +short vCenterFQDN a" command, which times out or fails to return an IP address, triggering the java.io.EOFException during the transfer phase. This occurs because the vCenter cannot successfully resolve its hostname, thereby disrupting template-based deployment workflows.Confirm that the Content Library service is active.
Connect to the vCenter Server appliance using SSH as root.
Check the status of the Content Library service by running: service-control --status vmware-content-library
service-control --start vmware-content-libraryDiagnose the DNS Resolution Failure.
Before applying a fix, determine which DNS scenario applies to the environment:
Connect to the vCenter Server appliance using SSH as root.
Test forward DNS resolution for the vCenter FQDN: dig <vCenter_FQDN>
Expected result: Returns the vCenter IP address. Problem indication: Timeout, SERVFAIL, or NXDOMAIN response.
Test reverse DNS resolution for the vCenter IP address: dig -x <vCenter_IP_Address>
Expected result: Returns the vCenter FQDN. Problem indication: Timeout, SERVFAIL, or NXDOMAIN response.
Check the configured DNS servers on the vCenter appliance: cat /etc/resolv.confVerify that DNS server IP addresses are correct.
Test DNS server connectivity: ping <DNS_Server_IP>
Verify that the vCenter appliance can reach the configured DNS servers.
Based on the diagnostic results, proceed to the appropriate resolution path:
Resolution Path A: Fix vCenter DNS Configuration
Method 1: Using VAMI (Recommended)
Open a web browser and navigate to https://<vCenter_IP_or_FQDN>:5480
Log in using root credentials.
From the left navigation pane, click Networking.
Click EDIT in the top right corner of the Network Settings section.
Select the management network adapter (typically NIC0) and click NEXT.
Expand the Hostname and DNS section.
Update the DNS server IP addresses:
Click NEXT.
Enter the SSO credentials:
[email protected]
Resolution Path B: Fix DNS Infrastructure
Use this resolution when vCenter DNS configuration is correct but the DNS servers lack proper records for the vCenter FQDN.
Note: Both forward (A record) and reverse (PTR record) DNS lookups are required for vCenter Server to function properly.
Create Forward DNS Record (A Record)
Contact the DNS administrator or log in to the DNS server management interface.
Navigate to the Forward Lookup Zone for the specific domain.
Create a new Host (A) record:
Create Reverse DNS Record (PTR Record)
Navigate to the Reverse Lookup Zone for the IP subnet.
Create a new Pointer (PTR) record:
Note: Many DNS management interfaces provide an option to "Create associated pointer (PTR) record" when creating the A record, which automatically creates both records.
Verify DNS Record Propagation
Wait for DNS propagation (typically 5-15 minutes).
From a system that uses the updated DNS server, test forward lookup: nslookup vcenter01.example.local
Expected result: Returns the vCenter IP address.
Test reverse lookup: nslookup <vCenter_IP_Address>Expected result: Returns the vCenter FQDN.
From the vCenter appliance, verify resolution:
dig <vCenter_FQDN>
dig -x <vCenter_IP_Address>Both commands should successfully resolve.
Proceed to the Verification Steps section.
Verification Steps:
After applying either resolution path, verify that DNS resolution is functioning correctly:
Connect to the vCenter appliance using SSH as root.
Verify forward DNS resolution:
dig <vCenter_FQDN>
nslookup <vCenter_FQDN>Both commands should return the vCenter IP address without timeout.
Verify reverse DNS resolution:
dig -x <vCenter_IP_Address>
nslookup <vCenter_IP_Address>Both commands should return the vCenter FQDN without timeout.
Log in to vSphere Client.
Attempt to deploy an OVF or OVA file that previously failed.
Verify that the deployment proceeds without the java.io.EOFException error.
Note: If deployment succeeds or encounters a different error, the DNS issue has been resolved. If deployment issues persist with the same error, repeat the diagnostic steps to verify DNS resolution is functioning correctly.
In some scenarios, the DNS is temporarily unavailable. The following workaround serves as an interim solution:
Update the hosts file on the client machine accessing the vSphere Client to resolve the vCenter FQDN to its IP address. Launch the vSphere Client using its IP address so the source URL is created based on the IP address, which bypasses the need for vCenter to resolve its FQDN.
Related Knowledge Base Articles:
For similar OVF deployment errors with different root causes, see:
Network and Transfer Issues:
For more information about OVF deployment failures caused by network transfer or file size issues where uploading to a local datastore resolves the problem, see Transfer failed: IO error during transfer: java.io.EOFException when deploying OVF.
For more information about OVF deployment failures when an HTTPS proxy is configured, see Unable to deploy OVF using vSphere Client when a HTTPS Proxy is configured. This issue occurs due to proxy server configuration problems.
For more information about general OVF transfer failures that may be networking or storage related, see Deploying an OVF Template fails with the error: Failed to deploy OVF Package.Caused: A general system error occurred:Transfer failed. This article provides general troubleshooting for transfer failures.
Content Library and File Issues:
For more information about OVF deployment failures with "OVF descriptor is not available" errors, see Error "OVF descriptor is not available" when deploying Aria Operations Cloud Proxy. This issue occurs due to Content Library problems.
For more information about OVF deployment failures with "task was canceled by a user" errors, see OVF deployment fails with the error: "task was canceled by a user". This issue occurs due to checksum and manifest file problems.
For more information about OVF deployment failures with missing file warnings, see Warning: Missing file when deploying an ovf template. This issue occurs when OVF files are corrupted or incomplete, whereas the current article addresses DNS resolution failures.
Configuration Issues:
DNS-Related Articles:
For more information about configuring DNS servers on vCenter Server, see Update DNS Server IP address for vCenter Server.
For more information about vCenter upgrade failures due to missing reverse DNS records, see vCenter Upgrade Pre-Check Fails: Reverse DNS (PTR) Record Missing for vCenter.
Official Documentation: