Insane Object or fpsane.cpp Error

Updated Dec 8, 2017

Reported In

Software

  • LabVIEW Full
  • LabVIEW Professional

Issue Details

I received a message about an "insane object" error. What does an "insane object" error mean and what should I do?

Solution

This message means that an object in LabVIEW such as a wire or a loop tunnel does not pass an internal test known as a sanity check (see examples of insane object errors in Additional Information below). If the errors are serious enough, LabVIEW exits because something has become very corrupted. Sanity checks occur before each save, to ensure that corrupted VIs are not written over good VIs. They also happen as part of the compile process. Thus, sanity checks happen frequently. Many insanities are actually fixed (made sane) after the dialog box appears and will not appear again, so the first thing you should do after receiving an insane object error is to try to make a backup copy of the VI, run it, and perform some additional editing to see if the problem was resolved automatically.

VI corruptions do not happen often. They can happen because of disk corruption, but this will often lead to a file that can no longer be loaded. Corruptions can also happen because the programmer did something that corrupts a LabVIEW data type, perhaps as the result of a call to external code.

The following steps will help to diagnose the cause of this error:
 
  1. Look at the error log and determine if the problem appears to be with a component (wires, controls, indicators, etc.) on the front panel ("FPHP") or block diagram ("BDHP") (see examples in Additional Information below). Delete and recreate the most recently created objects and make use of the text in the error message in deciding which objects to rebuild. Example: In the case of the second message above, it would be best to delete and recreate the most recently created loop tunnels.
  2. If the VI is small, try selecting the entire diagram and copying it to a new VI. After saving the new VI, there is a good chance the insane object error will no longer appear.
  3. If the VI is too large to do the above step, you can copy the VI to disk (or to your network if that is available) and open it on the second machine. If the insane object errors do not appear, save the VI (on the second machine) and transfer it back to the original PC (by disk or by network). The new, uncorrupted version of the VI should now run without generating the insane object error.
  4. If you can load the VI, use a binary search to identify which component is causing the problem. Remove that component and add the component back in.
  5. If you find that a consistent sequence of editing operations results in an insane object error, or if you are unable to resolve the error on your own, please contact National Instruments technical support (see the Related Link below) for assistance.

Additional Information

The following are examples of insane object errors:
 
  • Insane Object at BDHP+4D50 in 'sksks.vi': (graphics) (0x80):wire segment (WIRE)
  • Insane Object at BDHP+5CA0 in "CAPL3.vi": (graphics) (0x80):loop tunnel (DCO)
In the first example above, the error message itself gives information about which object is insane. BDHP means the offending object exists on the block diagram heap, as opposed to the FPHP for front panel heap. The +4D50 is the hex offset in the heap where the object is located. The "Wire Segment" text indicates that the object is a wire object. The "graphics" text indicates that the insanity is graphics-related, which means it is not serious and will most likely be repaired automatically. 

The second message above is similar, but refers to a loop tunnel (i.e., the tunnel formed where a wire crosses the edge of a loop) rather than a wire. Many of these "insane objects" are reported as fpsane errors, and you should look for the actual error by opening the log file.

WAS THIS ARTICLE HELPFUL?

Not Helpful