This content is not available in your preferred language.

The content is shown in another available language. Your browser may include features that can help translate the text.

Error 1556 When Using Data Value References in LabVIEW 2023 Q3 or Later

Updated Dec 13, 2024

Reported In

Software

  • LabVIEW 2023 Q3
  • LabVIEW 2024 Q1

Issue Details

  • I upgraded a project that uses the New Data Value Reference Function and In Place Element Structure to modify data to LabVIEW 2023 Q3 from a previous version. When I run the application in LabVIEW 2023 Q3 I get error.
  • After upgrading to LabVIEW 2023 Q3, LabVIEW Modbus VIs are returning the error 1556:
LabVIEW: (Hex 0x614) The reference is invalid. This error might occur because the reference has been deleted.

Is this an expected behavior and how to avoid it?

Solution

This is a known issue when upgrading to LabVIEW 2023 Q3 or subsequent versions. There were changes in the behavior of Data Value References (DVRs) from one version to another. There was no code version change, so VIs coming from earlier versions are not forced to compile on load, and their generated code will have the old behavior. A mix of old and new VIs may cause this unexpected behavior.

In order to workaround the issue you should recompile the LabVIEW code of the VIs causing the issue. To do this you need to narrow the source of the behavior and once you have identified the VIs throwing the error, you can recompile them by following one of these methods:

  • Mass compile the LabVIEW VIs. 
  • Find occurrences of the Data Value Reference Functions in your code and Ctrl-Click the run arrow of the VI causing the issue to force the compilation.

If the 1556 error still occurs after recompiling, you may be attempting to access the DVR across different application instances. Starting in LabVIEW 2023 Q3, LabVIEW no longer allows access to the same DVR from within different application instances. When a DVR is created, the application instance that owns the top-level running VI of the hierarchy in which the DVR was created is the only application instance in which that DVR can be accessed. Make sure DVR access is only attempted from VIs that are running in the same application instance as the top-level VI hierarchy in which the DVR was created.

Additional Information

This issue can also occur when using Modbus VIs since they use DVRs internally. Installing the latest Modbus library and replacing all the Modbus sub-VIs manually in your project can solve this issue.