LabVIEW Error Code 56 or 57 Running TestStand Sequences on a Deployment Target

Updated May 30, 2024

Reported In

Software

  • TestStand
  • LabVIEW Professional

Issue Details

I used the TestStand Deployment Utility to create a deployment of a TestStand application that uses LabVIEW 2011 VIs (or VIs saved in a newer version of LabVIEW). When I install the deployment on the target machine and attempt to run my tests, I receive one of the following errors

    1. Error code 57 (more common)
LabVIEW error code 57: This VI was compiled on a platform with CPU features not available on this host (SSE/SSE2). Rebuild the application with SSE disabled to support this target. 
    
  


    2. Error code 56 (less common)
LabVIEW load error code 56: Could not find VI in the Packed library.
    
   

Solution

The TestStand Deployment Utility uses the LabVIEW Application Builder to package and deploy LabVIEW VIs. As of LabVIEW 2011, the Application Builder configures new build specifications to include SSE2 compiler optimizations that improve the run-time performance of distributed VIs and built applications. 

One of the above errors will occur when running tests from a TestStand deployment when all of the following conditions are met:
  •  Your TestStand deployment includes files built in LabVIEW 2011 or newer    - and -
  • You build your TestStand deployment on a machine that supports SSE2 instructions    - and -
  • You install the deployment on a target machine that does not support SSE2 instructions
The specific error message you receive depends on whether the Output VIs to a packed project library option is enabled in the LabVIEW VI options dialog.  If the option is not selected, you will receive error code 57.  If it is enabled, you will receive error code 56.

Refer to the options below for methods to avoid or resolve this issue. If implementing the options offered below does not resolve the error/issue or if you cannot use any of the provided options, please contact National Instruments Support for further assistance.

TestStand 2010 SP1 and Newer
  •  As of TestStand 2010 SP1, the TestStand Deployment Utility provides an option for you to configure whether your deployment is built to include SSE2 compiler optimizations. Follow these steps to disable the SSE2 optimizations:
  1. In the TestStand Deployment Utility, navigate to the Distributed Files tab
  2. Click the LabVIEW Options… button
  3. Deselect the Enable SSE2 Optimization option
  4. Click OK to apply the change
 
    

Additional Information

TestStand 2010 and Previous

Note: The following methods can also be used with TestStand 2010 SP1 and newer versions, but are more involved than the option described above.
  • Build the deployment on a machine that does not support SSE2 instructions. The LabVIEW 2011 Application Builder will not enable SSE2 compiler optimizations when creating build specifications on a machine that does not support SSE2 instructions. To avoid the above mentioned error/issue, you can run the TestStand Deployment Utility (and create your deployment) on a machine that does not support SSE2 instructions, then distribute the deployment to machines that both support and do not support SSE2 instructions without encountering any issues.
  •  Use an evaluation version of the LabVIEW development environment on the target machine to recompile your deployed VIs.  The LabVIEW development environment automatically detects whether your processor supports SSE2 instructions and enables or disables the compiler optimizations accordingly. If your TestStand deployment was configured to package your VIs into a Source Distribution and you have not removed the VI block diagrams, you can install the LabVIEW evaluation version that the VIs are saved in directly on the target machine and mass-compile the deployed VIs to disable the SSE2 compiler optimization and resolve this error.