Error: "Transfer failed: IO error during transfer... during OVF deployment on vCenter Server" when vCenter DNS is misconfigured
search cancel

Error: "Transfer failed: IO error during transfer... during OVF deployment on vCenter Server" when vCenter DNS is misconfigured

book

Article ID: 378046

calendar_today

Updated On:

Products

VMware vCenter Server 7.0 VMware vCenter Server 8.0

Issue/Introduction

  • You experience OVF or OVA deployment failures on vCenter Server.
  • In the vCenter UI, Deploy OVF Template wizard, the error "Fatal error has occurred. Unable to Continue." appears.

  • This occurs when you attempt to deploy virtual machine templates using OVF or OVA files through the vSphere Client.
  • The deployment process starts but fails during the transfer phase, preventing the virtual machine from being created.
  • Virtual machines cannot be deployed from OVF/OVA templates
  • Template-based deployment workflows are disrupted
  • Standardized virtual machine configurations cannot be deployed

Additional symptoms reported:

  • Failed to deploy OVF package with "A general system error occurred: Transfer failed: IO error during transfer: java.io.EOFException"
  • One would also encounter this issue if the Content Library service is not running

Environment

  • vCenter 7.x
  • vCenter 8.0.x

Cause

The Content Library uses the vCenter FQDN in the fileurl to download the descriptor.ovf. 

Example:

fileUrl = https://vCenterFQDN:443/cls/data/################/descriptor.ovf

vCenter Server - /var/log/vmware/content-library/cls.log

YYYY-MM-DDTHH:MM:SS | DEBUG    | lyod1rp1-221799-auto-4r54-h5:###### | cls-simple-activity-6     | ImportSessionActivity          | Start OVF import session with OVF_OPERATION_ID lyod1rp1-221799-auto-4r54-h5:######, 

YYYY-MM-DDTHH:MM:SS | DEBUG    | lyod1rp1-221799-auto-4r54-h5:###### | cls-simple-activity-6     | VcTaskService                  | Setting progress for task fdd8bf5d-1ca0-4b2e-912b-0fb65cc896ea (ManagedObjectReference: type = Task, value = task-73028, serverGuid = ##########) from null to 0

YYYY-MM-DDTHH:MM:SS | DEBUG    | lyod1rp1-221799-auto-4r54-h5:###### | cls-simple-activity-6     | 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. The system executes:

Command: /usr/bin/dig +short vCenterFQDN a

Result: Cannot get IPv4 address for host name

YYYY-MM-DDTHH:MM:SS | ERROR    | q-12094:QuickSearch:##########:01:library01 | tomcat-http-27            | ScriptExecutionUtils           | IPResolverUtil-resolve-ip : Timed out while running script [/usr/bin/dig, +short, vCenterFQDN, a].
YYYY-MM-DDTHH:MM:SS | ERROR    | q-12094:QuickSearch:##########:01:library01 | tomcat-http-27            | 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:54) ~[vsphere-util-lib-1.0.0.jar:?]
        at com.vmware.vcde.util.process.ScriptExecutionUtils.runScriptProcess(ScriptExecutionUtils.java:91) ~[vsphere-util-lib-1.0.0.jar:?]
        at com.vmware.vcde.util.IPResolverUtil.getIpAddressWithType(IPResolverUtil.java:125) [vsphere-util-lib-1.0.0.jar:?]
        at com.vmware.vcde.util.IPResolverUtil.getInetAddressByHostName(IPResolverUtil.java:77) [vsphere-util-lib-1.0.0.jar:?]
        at com.vmware.vcde.util.IPResolverUtil.getInetAddress(IPResolverUtil.java:57) [vsphere-util-lib-1.0.0.jar:?]
        at com.vmware.transfer.filters.TsCorsFilter.isOriginHostAllowed(TsCorsFilter.java:250) [ts-main-1.0.0.jar:?]
...org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [tomcat-embed-core-9.0.87.jar:9.0.87]
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) [tomcat-embed-core-9.0.87.jar:9.0.87]
        at java.lang.Thread.run(Thread.java:750) [?:1.8.0_401]
YYYY-MM-DDTHH:MM:SS | DEBUG    | q-12094:QuickSearch:##########:01:library01 | tomcat-http-27            | IPResolverUtil                 | Cannot get IPv4 address for host name: vCenterFQDN, trying IPv6

The command '/usr/bin/dig +short vCenterFQDN a' fails to return an IP address when executed on the vCenter.

Resolution

As a first step, Make sure the Content Library service is running. 

  • Connect to the vCenter Server appliance using SSH as root.

  • Check the status of Content Library service by running:
    service-control --status vmware-content-library
  • If the service is not running, manually start the Content Library service by running:

    service-control --start vmware-content-library

Diagnose the DNS Resolution Failure

Before applying a fix, determine which DNS scenario applies to your environment:

  1. Connect to the vCenter Server appliance using SSH as root.

  2. 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.

  3. 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.

  4. Check the configured DNS servers on the vCenter appliance:

    cat /etc/resolv.conf
    

    Verify that DNS server IP addresses are correct.

  5. Test DNS server connectivity:

    ping <DNS_Server_IP>
    

    Verify that the vCenter appliance can reach the configured DNS servers.

Based on your diagnostic results, proceed to the appropriate resolution path:

  • If DNS servers are unreachable or incorrectly configured on vCenter: Use Resolution Path A
  • If DNS servers are reachable but lack records for the vCenter FQDN: Use Resolution Path B

Resolution Path A: Fix vCenter DNS Configuration

Use this resolution when DNS servers are unreachable or incorrectly configured on the vCenter appliance.

Method 1: Using VAMI (Recommended)

  1. Open a web browser and navigate to https://<vCenter_IP_or_FQDN>:5480

  2. Log in using root credentials.

  3. Click Networking in the left-hand menu.

  4. Click EDIT in the top right corner of the Network Settings section.

  5. Select the management network adapter (typically NIC0) and click NEXT.

  6. Expand the Hostname and DNS section.

  7. Update the DNS server IP addresses:

    • DNS Server 1: Enter the primary DNS server IP address
    • DNS Server 2: Enter the secondary DNS server IP address (optional but recommended)
    • Domain Name: Enter your domain name
    • Search Path: Enter search domains (optional)
  8. Click NEXT.

  9. Enter the SSO credentials:

    • Username: [email protected]
    • Password: Enter the SSO administrator password
  10. Review the settings, check the acknowledgment box confirming you have a backup, and click FINISH.


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)

  1. Contact your DNS administrator or log in to your DNS server management interface.

  2. Navigate to the Forward Lookup Zone for your domain.

  3. Create a new Host (A) record:

    • Hostname: Your vCenter hostname (example: vcenter01)
    • FQDN: Your vCenter FQDN (example: vcenter01.example.local)
    • IP Address: Your vCenter IP address
    • TTL: Use your organization's standard TTL value

Create Reverse DNS Record (PTR Record)

  1. Navigate to the Reverse Lookup Zone for your IP subnet.

  2. Create a new Pointer (PTR) record:

    • IP Address: Your vCenter IP address
    • Host FQDN: Your vCenter FQDN (example: vcenter01.example.local)
    • TTL: Use your organization's standard TTL value

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

  1. Wait for DNS propagation (typically 5-15 minutes).

  2. From a system that uses the updated DNS server, test forward lookup:

    nslookup vcenter01.example.local
    

    Expected result: Returns the vCenter IP address.

  3. Test reverse lookup:

    nslookup <vCenter_IP_Address>
    

    Expected result: Returns the vCenter FQDN.

  4. From the vCenter appliance, verify resolution:

    dig <vCenter_FQDN>
    dig -x <vCenter_IP_Address>
    

    Both commands should successfully resolve.

  5. Proceed to the Verification Steps section.


Verification Steps

After applying either resolution path, verify that DNS resolution is functioning correctly:

  1. Connect to the vCenter appliance using SSH as root.

  2. Verify forward DNS resolution:

    dig <vCenter_FQDN>
    nslookup <vCenter_FQDN>
    

    Both commands should return the vCenter IP address without timeout.

  3. Verify reverse DNS resolution:

    dig -x <vCenter_IP_Address>
    nslookup <vCenter_IP_Address>
    

    Both commands should return the vCenter FQDN without timeout.

  4. Log in to vSphere Client.

  5. Attempt to deploy an OVF or OVA file that previously failed.

  6. 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.

 

Additional Information

In some scenarios, there are chances that the DNS is unavailable for some time. The below workaround can be used as an interim solution:

Update the hosts file of the client from where the vSphere client is being accessed to resolve the vCenter FQDN to its IP address. Launch the vSphere client using its IP address so that the source URL is created based on the IP address which does not need the vCenter to resolve its FQDN.

Related Knowledge Base Articles:

For similar OVF deployment errors with different root causes, see:

Network and Transfer Issues:

Content Library and File Issues:

Configuration Issues:

DNS-Related Articles:

Official Documentation:

For more information about configuring network settings on vCenter Server Appliance, see Configure the DNS, IP Address, and Proxy Settings documentation.

For more information about DNS requirements for vCenter Server deployment, see DNS Requirements for the vCenter Server Appliance in the vCenter Server Installation and Setup documentation.