Hanging Parallel VISA Calls Caused by an Invalid TCP/IP Resource Name

Updated Aug 5, 2026

Reported In

Software

  • LabVIEW

Driver

  • NI-VISA

Issue Details

I've observed that when multiple devices are connected and communicating via VISA, attempting to connect to an additional TCP/IP device using VISA Open.vi can cause other VISA operations to block until the VISA Open call completes. If the target device is unavailable or an invalid resource name is specified, the VISA Open call waits until the connection timeout expires. During this time, communication with any other connected VISA devices is also blocked, even though those are healthy and responsive. 

Solution

According to the NI-VISA Known Issues list, this behavior is a secondary effect of VISA Open functions synchronous operation.

Note: Due to this bug, all other parallel VISA calls (Write/Read/Close/etc.) made while a VISA Open operation is experiencing a TCP/IP connection failure will be blocked until the VISA Open operation completes.

To work around this issue:

  • Perform a connectivity check before opening the VISA session. Before calling VISA Open for a TCP/IP device, verify that the target IP address and port are reachable. Proceed with VISA Open only if the connectivity check succeeds. If the device is unreachable, skip the open operation and handle the condition through your application's discovery or retry mechanism.
  • Minimize the VISA Open timeout where possible. If your application needs to probe devices that may be offline or unavailable, configure the VISA Open timeout to the lowest practical value. While this does not eliminate the blocking behavior, it can significantly reduce the amount of time other TCP/IP VISA operations remain stalled.

Additional Information

Based on testing, this behavior appears only when an invalid or unreachable VISA TCP/IP resource is being accessed in parallel with another VISA operation.
The same behavior has not been observed with serial communication or other VISA resource types.