Error: "A general system error occurred: Transfer failed: IO error during transfer" during OVF deployment on vCenter Server, when vCenter DNS is misconfigured
search cancel

Error: "A general system error occurred: 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

Issue/Introduction

  • Deploying an OVF or OVA template fails on vCenter Server.

  • Deploying the OVF package fails with the error: "A general system error occurred: Transfer failed: IO error during transfer: java.io.EOFException".
  • This occurs when attempting 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:

  • The error 'A fatal error has occurred. Unable to Continue' appears in the Deploy OVF Template wizard within the vSphere Client.



  • This error also appears when the Content Library service is not running.
  • 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

  • Running "/usr/bin/dig +short vCenterFQDN a" command via SSH on the vCenter Server returns no IP address.

Environment

  • VMware vCenter Server 7.x
  • VMware vCenter Server 8.x
  • VMware vCenter 9.x

Cause

  • The cause of the OVF/OVA deployment failure is a DNS resolution failure affecting the vCenter Server appliance, which prevents the system from resolving its own Fully Qualified Domain Name (FQDN) .
  • When the Content Library attempts to download the descriptor.ovf file using the vCenter FQDN, the system executes the "/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.

Resolution

Confirm that the Content Library service is active.

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

  2. Check the status of the Content Library service by running: service-control --status vmware-content-library

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

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. From the left navigation pane, click Networking.

  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:

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

  9. Enter the SSO credentials:

    1. Username: [email protected]
    2. Password: Enter the SSO administrator password

  10. Review the settings, check the acknowledgment box confirming a backup exists, 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 the DNS administrator or log in to the DNS server management interface.

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

  3. Create a new Host (A) record:

    1. Hostname: vCenter hostname (example: vcenter01)
    2. FQDN: vCenter FQDN (example: vcenter01.example.local)
    3. IP Address: vCenter IP address
    4. TTL: Use organization's standard TTL value

Create Reverse DNS Record (PTR Record)

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

  2. Create a new Pointer (PTR) record:

    1. IP Address: vCenter IP address
    2. Host FQDN: vCenter FQDN (example: vcenter01.example.local)
    3. TTL: Use 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:

    1. dig <vCenter_FQDN>
    2. 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:

    1. dig <vCenter_FQDN>
    2. nslookup <vCenter_FQDN>

    Both commands should return the vCenter IP address without timeout.

  3. Verify reverse DNS resolution:

    1. dig -x <vCenter_IP_Address>
    2. 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, 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:

Content Library and File Issues:

Configuration Issues:

DNS-Related Articles:

Official Documentation: