check-circle-line exclamation-circle-line close-line

vRealize Orchestrator Appliance 7.2 | 22 Nov 2016 | Build 4629837

Check frequently for additions and updates to these release notes.

Release Notes last updated on 29 May 2017.

What's in the Release Notes

The release notes cover the following topics:

What's New in vRealize Orchestrator 7.2

vRealize Orchestrator 7.2 introduces a number of improvements, bug fixes, and extends the automated configuration with new options:

  • Integration with Event Broker Service that makes possible to monitor notifications about business state or workflow status changes in vRealize Automation.
  • Improved usability of Control Center, including localization in Spanish, French, German, Traditional Chinese, Simplified Chinese, Korean, and Japanese.
  • The vRealize Orchestrator plug-in for vRealize Automation is now included in the Orchestrator platform.

vRealize Orchestrator 7.2 is shipped with a version of the vCenter Server plug-in that is compatible with vSphere 6.5. A redesigned vRealize Orchestrator vCenter Server plug-in is available as a separate download package for vRealize Orchestrator 7.2. This plug-in is compatible with vSphere 6.5 and vRealize Orchestrator 7.2 and in future releases will replace the version of the vCenter Server plug-in currently shipped with the Orchestrator platform. The new vCenter Server plug-in has the following features:

  • Simplified maintenance and faster troubleshooting, compared to the earlier versions of the plug-in.
  • Improved performance thanks to an optimized communication with the vSphere Server instances and changes in the caching schema.
  • Maximum compatibility of the scripting API and content compatibility with the vSphere products with version 5.5 and later.

For more information on the changes in the new vCenter Server plug-in for vRealize Orchestrator 7.2, see What's New in the New vCenter Server Plug-In.

Feature and Support Notice

  • You can configure Orchestrator as a vCenter Server extension and use it with the vSphere Web client only if you deploy an Orchestrator Appliance and select vSphere as an authentication provider.

  • The following feature is deprecated in vRealize Orchestrator and is scheduled for removal in future releases. This feature should not be used as part of any vRealize Orchestrator solution.
    • LDAP authentication

Deploying the VMware vRealize Orchestrator Appliance 7.2

VMware vRealize Orchestrator 7.2 is available as a preconfigured virtual appliance.

The Orchestrator Appliance is distributed as an OVA file. It is prebuilt and preconfigured with Novell SUSE Linux Enterprise Server, PostgreSQL, and In-Process ApacheDS LDAP, and it can be deployed with vCenter Server 5.5 and later.

When an external database is used, the Orchestrator Appliance functionality is suitable for any use case from lab evaluation to large-scale production. The appliance offers the flexibility to use either the prebuilt directory services and database, or Single Sign-On authentication, provided by vRealize Automation and vSphere 6.x, and external database servers like Oracle or Microsoft SQL.

The Orchestrator Appliance is a fast, easy to use, and more affordable way to integrate the VMware cloud stack, including vRealize Automation and vCenter Server, with your IT processes and environment.

Upgrading to vRealize Orchestrator 7.2

For instructions about deploying and using the Orchestrator Appliance, see Installing and Configuring VMware vRealize Orchestrator.

Important: For security reasons, the password expiry of the root account of the Orchestrator Appliance is set to 365 days. To increase the expiry time for an account, log in to the Orchestrator Appliance as root, and run the following command:

passwd -x number_of_days name_of_account

To make your Orchestrator Appliance root password last forever, run the following command:

passwd -x 99999 root

Plug-Ins Installed with vRealize Orchestrator 7.2

The following plug-ins are installed by default with vRealize Orchestrator 7.2:

  • vRealize Automation Center Infrastructure Administration Plug-In 7.2.0
  • vRealize Automation Plug-In 7.2.0
  • vRealize Orchestrator vCenter Server Plug-In 6.5.0
  • vRealize Orchestrator Mail Plug-In 7.0.1
  • vRealize Orchestrator SQL Plug-In 1.1.4
  • vRealize Orchestrator SSH Plug-In 7.0.1
  • vRealize Orchestrator SOAP Plug-In 2.0.0
  • vRealize Orchestrator HTTP-REST Plug-In 2.2.1
  • vRealize Orchestrator Plug-In for Microsoft Active Directory 3.0.3
  • vRealize Orchestrator AMQP Plug-In 1.0.4
  • vRealize Orchestrator SNMP Plug-In 1.0.3
  • vRealize Orchestrator PowerShell Plug-In 1.0.10
  • vRealize Orchestrator Multi-Node Plug-In 7.2.0
  • vRealize Orchestrator Dynamic Types 1.2.0
  • vRealize Orchestrator vCloud Suite API (vAPI) Plug-In 7.2.0
  • vRealize Orchestrator Plug-In for vRealize Automation 7.2.0

Internationalization Support

vRealize Orchestrator 7.2 provides a multi-language support for Control Center and supports internationalization level 1 for the Orchestrator client.

How to Provide Feedback

Your active feedback is appreciated. Provide your feedback by using one of the following methods:

  • Support Requests (SRs)
  • Orchestrator Discussion Forum

Support Requests

File all issues that you find as Support Requests (SRs), even if you report them to VMware by other means.

You can find the VMware Support's commitment to SRs filed by customers and instructions on how to file an SR at

Include log files in your SRs. Follow the steps to gather log files and configuration from Orchestrator:

  1. Go to Control Center at https://orchestrator_server_ip_address:8283/vco-controlcenter.
  2. Log in as root.
  3. Click Export Logs.
  4. Click Export logs.
  5. Save the generated ZIP file.
  6. Upload the saved ZIP file to VMware Support.

Earlier Releases of vRealize Orchestrator

Features and issues from earlier releases of vRealize Orchestrator are described in the release notes for each release. To review release notes for earlier releases of vRealize Orchestrator, click one of the following links:

Resolved Issues

vRealize Orchestrator 7.2 resolves the following issues:

  • Orchestrator scheduled tasks intermittently stop working per schedule and a green triangle symbol displays in the Orchestrator client.
    The Orchestrator schedule does not take the most recent state of a workflow run and shows the workflow as running, while the Workflows tab in the Orchestrator client shows that the workflow has finished successfully.

    The issue is resolved in this release.

  • The Push Configuration button on the Cluster Management page in Control Center does not synchronize all XML files related to plug-ins.
    In an Orchestrator cluster, where one of the nodes is upgraded from version 6.0.x to 7.1 and the other node is a new installation of version 7.1, the cluster configuration cannot synchronize because some of the plug-in configuration XML files in the /etc/vco/app-server/plugins directory are not copied from the upgraded Orchestrator Appliance to the newly installed 7.1 appliance.

    The issue is resolved in this release.

  • Orchestrator cannot connect to a Microsoft SQL Server database over SSL.
    JDK 1.8 supports a restricted set of cipher suites compared to earlier versions of JDK.

    The issue is resolved in this release.

  • Generating documentation for a workflow category causes the Orchestrator client to stop responding.
    When you run the Generate documentation step for a workflow category from the Orchestrator client, the Orchestrator client becomes unresponsive and a workflow documentation is not generated at all.

    The issue is resolved in this release.

  • The RESTResponse.getAllHeaders() method returns only one header per header name, even when the HTTP response of the server contains multiple headers with the same name.

    The issue is resolved in this release.

  • Updated timeout values of a REST host take effect only after the Orchestrator server is restarted.
    When you run the Update a REST Host workflow to change the REST host timeout configuration, you must restart the Orchestrator server for the changes to take effect.

    The issue is resolved in this release.

  • When sending a PUT request, the HTTP-REST plug-in does not correctly interpret the HTTP response status code 301 Moved Permanently.
    Orchestrator cannot create a successful PUT request when the remote side responds with a 301 Moved Permanently HTTP response code.

    The issue is resolved in this release.

  • You cannot export a Dynamic Types package from an Orchestrator server instance and import it to the same instance and you cannot import a Dynamic Types package if the package is generated on an Orchestrator server 7.0.1.
    Importing a configuration from a Dynamic Types package that was generated on Orchestrator 7.0.1 fails with a NullPointerException error message.

    The issue is resolved in this release.

  • The Generate key pair workflow fails on an Orchestrator Appliance 7.1 that is built into vRealize Automation 7.1.
    The Generate key pair workflow on an embedded Orchestrator Appliance fails with an InternalError: ../server/vmo/conf/vco_key (No such file or directory) error message.

    The issue is resolved in this release.

  • Exporting a package by using the vco-cli-java-7.1.0.jar tool fails when you authenticate against the Orchestrator server with a user name that contains the @ character.
    Exporting a package through the vco-cli-java command-line tool fails with an Unable to connect to server '[orchestrator_DNS_name:443]' error message if the user account that you use for authentication contains the @ character.

    The issue is resolved in this release.

  • Orchestrator becomes unresponsive because of an expired OAuth token.
    Orchestrator cannot run workflows and the Orchestrator server stops responding because the OAuth token expires and is not automatically renewed.

    The issue is resolved in this release.

  • In the log pane of the Orchestrator client you cannot see debug log messages for the workflow token.

    The issue is resolved in this release.

  • Initializing a Properties scripting object with another Properties object as an argument causes serialization to fail.
    Orchestrator cannot serialize objects if a Properties scripting object is initialized with another Properties object as an argument.

    The issue is resolved in this release.

  • The Orchestrator client reports an OutOfMemory error if you edit a scripting action several times and run this action in a workflow.
    When you edit or save a custom action multiple times and then run this action as part of a workflow, the Orchestrator client stops working and displays a java.lang.OutOfMemoryError: Java heap space error.

    The issue is resolved in this release.

  • If a workflow contains an activity element, you cannot access the items member of the workflow.
    An attempt to access a schema element of a workflow that includes a decision activity fails with an Error in (Workflow:Bug / Scriptable task (item3)#10198) Wrapped java.lang.ClassCastException: org.mozilla.javascript.NativeJavaObject cannot be cast to ch.dunes.scripting.jsmodel.JSWorkflowItem error message.

    The issue is resolved in this release.

  • The Add datastore on iSCSI/FC/local SCSI workflow fails with an error.
    When you run the Add datastore on iSCSI/FC/local SCSI workflow from the Orchestrator client, the workflow fails with an A specified parameter was not correct error message, if you select the maximum available capacity option.

    The issue is resolved in this release.

  • If you modify the log4j configuration file, after an upgrade the scripting.log output is no longer visible in the Orchestrator client.
    During an upgrade the custom log4j.xml file is not replaced by the default log4j.xml file included in the upgrade package and the existing log4j.xml stops working. As a result, the scripting log does not show any output.

    The issue is resolved in this release.

  • When Orchestrator cannot connect to the syslog server, the Orchestrator node becomes unresponsive.
    When you have an external syslog server that is configured to work with Orchestrator and the syslog server is not reachable, the Orchestrator node stops responding.

    The issue is resolved in this release.

Known Issues

The known issues are grouped as follows:

Installation Issues

  • The Orchestrator service cannot recover after a back up and restore procedure.
    When you back up and restore Orchestrator, the server is not accessible from vRealize Automation and an Unable to establish a connection to vCenter Orchestrator server error appears. This results in Orchestrator being unable to start, while having a STARTED status, missing tasks and policies, and workflows that must be re-run.

    Workaround: Re-create the missing scheduled tasks and policies, re-run the scheduled workflows that did not start, and restart the Orchestrator service.

Configuration Issues

  • The vRealize Orchestrator SQL plug-in cannot connect to a MySQL database.
    When you run the Add a database workflow fails against a MySQL database, the workflow fails with a The driver 'com.mysql.jdbc.Driver' for 'MySQL' database cannot be found! error message.

    NOTE: The support for MySQL databases was removed in vRealize Orchestrator 7.0.

    Workaround: To enable support for MySQL database, you must install the JDBC driver for MySQL on the Orchestrator platform.

    1. Download the latest JDBC driver for MySQL from
    2. Extract the downloaded archive.
    3. In the extracted folder, locate the mysql-connector-java-x.x.x.jar file, where x.x.x is the current subminor version.
    4. Copy the mysql-connector-java-x.x.x.jar to the /usr/lib/vco/app-server/lib directory on the Orchestrator server.
    5. Change the ownership of the mysql-connector-java-x.x.x.jar file.
    6. chown vco:vco mysql-connector-java-x.x.x.jar

    7. Change the permissions of the mysql-connector-java-x.x.x.jar.
    8. chmod 644 mysql-connector-java-x.x.x.jar

    9. Restart the Orchestrator server service.
    10. service vco-server restart

  • Orchestrator does not support importing a mail server certificate to Trusted certificates when the used port requires issuing the STARTTLS command.
    When you import a mail server SSL/TLS certificate by using the Import from URL option and the URL contains SMTP port 587, the import fails with an Error! IOException. Message: 'Unrecognized SSL message, plaintext connection?' error message.

    Workaround: Export the certificate to a PEM-encoded file and import it to Orchestrator manually.

    1. Use SSH to access the Orchestrator appliance and log in as root.
    2. Run the command:
    3. openssl s_client -connect -debug -starttls smtp

    4. Copy the Server certificate from -----BEGIN CERTIFICATE----- to -----END CERTIFICATE----- and save it in a file.
    5. Import the certificate file to Trusted Certificates in Control Center, by using the Import from a PEM-encoded file option.

  • The SOAP plug-in cannot connect through an authenticated proxy server.
    When you run the Add a SOAP host workflow, use a proxy server that does not require authentication.
  • The Orchestrator client does not run on versions of Java earlier than Java 8.
    You need Java 8 to run the Orchestrator client.
  • If you experience issues connecting to a SOAP or a REST host, or importing a certificate, you might have to explicitly enable certain versions of SSL or TLS.
    For information about this issue, see

    Workaround: For information about explicitly enabling SSLv3 and TLSv1 for outgoing HTTPS connections, see Enable TLSv1 for outgoing HTTPS connections in vRealize Orchestrator 6.0.4 and 7.0.x manually (KB 2144318).

  • vCenter Server objects not accessible in the vSphere Web Client.
    Orchestrator cannot access vCenter Server objects in the vSphere Web Client if the vCenter Server instance that you are attempting to access is registered in Orchestrator by IP address.

    Workaround: Register the vCenter Server instance by host name.

  • Orchestrator authentication configuration might become invalid, if the authentication provider certificate changes or regenerates.
    When Orchestrator is configured to use vCenter Single Sign-On, if the certificate of the vCenter Single Sign-On server changes or regenerates, the Orchestrator authentication configuration becomes invalid and the Orchestrator server cannot start.

    Workaround: Import the new authentication provider certificate:

    1. Log in to Control Center as root.
    2. Click Certificates.
    3. Click Import on the Trusted Certificates tab.
    4. Load the SSL certificate from a URL or a file.
    5. Click Import.
    6. Restart the Orchestrator server from the Startup Options page in Control Center.

  • Orchestrator does not work with forest and external trusts in Active Directory.

    Multiple domains that are not in the same tree but have a two-way trust, are not supported and do not work with Orchestrator. Domain tree is the only supported configuration for a multi-domain Active Directory. Forest and external trusts are not supported.

  • Connecting to an Oracle database by using TNSNames is not supported .
    You cannot use TNSNames to connect to an Oracle database. You can connect to an Oracle database by using an IP address or a DNS name.

    Workaround: See Add support for RAC and TNS configuration for Oracle 11g Database instances to vRealize Orchestrator (KB 1022828).

Client Issues

  • NEW! In the new vCener Server plug-in, boolean XPath expressions are applied on every element of a collection, instead of the entire collection.
    When the XPath expression that you use contains operators that are specific to collections, the returned results are incorrect. For example, in the expression xpath:name[contains(.,'vm1')], the filter is applied to every element and the expression does not return any result.

    Workaround: Use an XPath query that applies the filter to a single element of the collection of elements, for example, xpath:contains(name,'vm1') or use the name as a query parameter of the finder method, for example, VcPlugin.getAllVirtualMachines(null, "vm1”)).

  • Duplicating a workflow always copies the version history of the original workflow, even through the Copy version history is set to No.
    The Duplicate workflow step transfers the events history from the original workflow to the copied workflow even when you select the No radio button for Copy version history during the duplication.
  • The Export logs and application settings workflow in the Troubleshooting workflow category fails.
    The Export logs and application settings workflow in the Troubleshooting workflow category fails with a Not a directory error message.
  • Workaround: Do not use this workflow. You can download the log and configuration files from the Export Logs page in Control Center.

  • The Validate workflow step fails if the workflow script contains a commented module.
    The workflow scripting interpreter in the Orchestrator client does not ignore scripting modules that are commented with two forward slash characters. For example:

    //System.getModule("").findStorageAccounts(connection, ["sharedstoacc"]);

  • Workaround: Delete the commented content or insert a space character before or after the dot in the name of the scripting module.

  • The Orchestrator Java client that uses Java Web Start intermittently stops working.
    As a side effect of the security improvement in the latest updates of Java 8, the Orchestrator client that is based on Java Web Start becomes unresponsive intermittently.
  • Workaround: Run the Orchestrator client application on your local machine. You can download the Orchestrator client application for your operating system from the Orchestrator welcome page.

  • The task scheduler does not run when the Orchestrator server and the Orchestrator client use different time zones.
    If your Orchestrator client uses a time zone that is different from UTC, the Orchestrator server always interprets the scheduled time in UTC for any scheduled task and the task does not run at the designated time.
  • Workaround: Always enter the time for the scheduled tasks in UTC.

  • Boolean input parameters are shown with a No value in the user interaction presentation.
    In user-interaction workflows, when you configure an input parameter with a Boolean value that is equal to Yes and run the workflow, the user input parameter appears as a No value.
  • OGNL expressions of an input parameter run with every input parameter update
    When an input parameter includes an OGNL expression, which is bound to more than one input parameter, the OGNL expression runs every time any of the input parameters is updated, instead of running once, when all input parameters are updated. If the OGNL expression invokes a resource-consuming operation, for example data mining, the presentation might run slowly.
  • The value of an input parameter is reset to default if the default value is bound to another input parameter.
    When you update the first input parameter, the second input parameter resets to its default value, even after it was updated.
  • Problems handling non-ASCII characters in certain contexts.
    Using non-ASCII characters in input parameters results in incorrect behavior in the following situations:
    • If you run the SCP put or SCP get workflows from the SSH folder on a file with a name that contains non-ASCII characters, the workflow runs, but name of the resulting file on the destination machine is unreadable.
    • If you try to insert non-ASCII characters into attribute names, the characters do not appear. This issue occurs for workflow attributes and action attributes.
  • Using the Orchestrator client through Java WebStart if the Orchestrator Appliance is behind Network Address Translation (NAT) is not supported.

Miscellaneous Issues

  • After you migrate an external vRealize Orchestrator on version 7.0.x or 6.x to vRealize Automation, you can no longer log in to the Orchestrator client.
    The configuration bundle that you export from the external Orchestrator server includes the file. During the migration, the file from the exported configuration overwrites the file of the built-in vRealize Orchestrator. The imported file is not compatible with the built-in Orchestrator server and the server becomes inaccessible.

    Workaround: Before importing the configuration from the external Orchestrator, take a backup copy of the file of the built-in Orchestrator server. After you import the file to the built-in Orchestrator server, restore the backup copy of the original file.

    1. Before you import the configuration, navigate to the /var/lib/vco/app-server/bin directory on the vRealize Automation Appliance.
    2. Create a backup copy of the file.
    3. cp$(date +%Y-%m-%d_%H-%M-%S)

    4. Import the configuration exported from the external vRealize Orchestrator to the built-in Orchestrator. Follow the procedure described in Migrate an External Orchestrator Server to vRealize Automation but do not start the Orchestrator server service of the built-in Orchestrator.
    5. Replace the file that is imported from the external Orchestrator server with the original file backed up under the name.
    6. mv

    7. Change the ownership of the file to the vco user.
    8. chown vco:vco

    9. Start the Orchestrator server service and verify it appears as REGISTERED in the vRealize Automation Appliance management console.

  • After you migrate an external vRealize Orchestrator on version 7.x or 6.x to vRealize Automation, you can access the built-in Orchestrator on port 8281.
    The server.xml configuration file that is imported with the configuration of the external Orchestrator server makes the built-in Orchestrator accessible on port 8281, while you should be able to access Orchestrator only on port 443.
  • Workaround: After you import the file to the built-in Orchestrator server, restore the backup copy of the original server.xml file that is automatically generated on the vRealize Automation Appliance.

    1. Import the configuration exported from the external vRealize Orchestrator to the built-in Orchestrator. Follow the procedure described in Migrate an External Orchestrator Server to vRealize Automation but do not start the Orchestrator server service of the built-in Orchestrator.
    2. Replace the server.xml file that is imported from the external Orchestrator server with the original server.xml file backed up under the server.xml.ControlCenter-date_hour name.
    3. mv server.xml.ControlCenter-date_hour server.xml

    4. Change the ownership of the server.xml file to the vco user.
    5. chown vco:vco server.xml

    6. Start the Orchestrator server service and verify it appears as REGISTERED in the vRealize Automation Appliance management console.

  • Compiling a custom model-driven plug-in fails if you use an extension method that contains lambda expressions.
    When you use model-driven to create plug-ins and you add extension methods to a certain extension, the plug-in does not compile if the extension method contains lambda expressions. The plug-in compilation fails with an error message, similar to the following: Caused by: java.lang.ArrayIndexOutOfBoundsException: 52789.

    Workaround: Do not use lambda expressions in the body of the extension methods.

  • The Orchestrator plug-in for vSphere Web Client does no support vSphere Web Client integration 6.5.
  • The RESTOperation ID does not initialize properly if the REST host instance is created by using a Swagger spec.
    In the HTTP-REST plug-in, when the REST host instance is created by a Swagger spec, the RESTOperation ID does not initialize properly and the getOperation of the RESTHost object does not work.
  • Custom event schema elements do not work in an Orchestrator cluster.
    Resuming a workflow run based on a Wait for custom event schema element does not work when the Orchestrator server is configured in a cluster. The custom event schema elements work only on single Orchestrator nodes.
  • The SOAP plug-in does not support mutual authentication with the SOAP host.
    The available authentication mechanisms support only one-way authentication.

  • The SSH plug-in cannot connect to a Cisco Adaptive Security Appliance (ASA) firewall.
    The SSH plug-in for vRealize Orchestrator 7.1 does not support connectivity to a Cisco Adaptive Security Appliance (ASA) firewall.
  • The console of the Orchestrator appliance constantly displays a warning message.
    The [WARN] Attempted translation of an Invalid IPv6 address message is constantly repeated on the console screen. You can safely ignore this message.
  • Restricted access to vCenter Server inventory can cause errors if you select Session per user.
    If you select the Session per user option when adding a vCenter Server instance to Orchestrator, attempting to access the vCenter Server inventory might result in some errors for a user with restricted access to inventory objects.
  • vCenter Server plug-in does not have valid credentials after upgrading from an Orchestrator version 6.0.2 or earlier.
    If you upgrade from an Orchestrator version before 6.0.3, the vCenter Server plug-in does not have valid credentials.

    Workaround: After upgrading Orchestrator, update the vCenter Server instance and configure a password for the user.

  • vRealize Orchestrator displays the vCenter Server plug-in as inactive .
    After you upgrade to vRealize Orchestrator version 6.0.x or later, if you have not upgraded the Site Recovery Manager plug-in to version 6.0.0, the vCenter Server plug-in becomes unusable.

    Workaround: Upgrade to the latest version of Site Recovery Manager plug-in that is supported in vCenter Server 6.0 or disable the Site Recovery Manager 5.8.0 plug-in.

  • The Orchestrator configuration interface might not be accessible with Internet Explorer 11.
    If you are using Internet Explorer 11, you might be unable to log in to the Orchestrator configuration interface.

    Workaround: Install Internet Explorer version 11.0.11 or a recent version of Google Chrome or Mozilla Firefox.

  • The workflow token remains incomplete, if the name of the workflow includes a slash.
    If a workflow name includes a slash, when you run the workflow, the workflow token might not change to completed, although the workflow has finished running.

    Workaround: Remove the slash from the name of the workflow.

  • The Convert disks to thin provisioning workflow does not handle virtual machines with snapshots correctly and does not convert the thick-provisioned disks.
    On completion, the Convert disks to thin provisioning workflow reports that the thick-provisioned disks of virtual machines with snapshots are successfully converted to thin-provisioned, but they are not.

    Workaround: Do not include virtual machines with snapshots in the workflow.

  • Adding values to vCenter Server data object properties of the Array type is impossible.
    When Orchestrator runs scripts, the vCenter Server plug-in converts JavaScript arrays to Java arrays of a fixed size. As a result, you cannot add new values to vCenter Server data objects that take arrays as property values. You can create an object that takes an array as a property if you instantiate that object by passing it a prefilled array. However, after you instantiate the object, you cannot add values to the array.

    For example, the following code does not work:

    var spec = new VcVirtualMachineConfigSpec();
    spec.deviceChange = [];
    spec.deviceChange[0] = new VcVirtualDeviceConfigSpec();

    In the above code, Orchestrator converts the empty spec.deviceChange JavaScript array into the fixed-size Java array VirtualDeviceConfigSpec[] before it calls setDeviceChange(). When calling spec.deviceChange[0] = new VcVirtualDeviceConfigSpec(), Orchestrator calls getDeviceChange() and the array remains a fixed, empty Java array. Calling spec.deviceChange.add() results in the same behavior.

    Workaround: Declare the array as a local variable:

    var spec = new VcVirtualMachineConfigSpec();
    var deviceSpec = [];
    deviceSpec[0] = new VcVirtualDeviceConfigSpec();
    spec.deviceChange = deviceSpec;