# Known Issues and Changes In Behavior

Cognex Designer 4.2 introduces multiple new or changed capabilities since 4.1 PR2.

This section describes all known issues and notable changes in Cognex Designer behavior.

Changed Behavior | Description
New Garbage Collection Method | As of release 4.1, Cognex Designer employs a background Garbage Collection technique by default for all new projects. This may result in longer task execution time in Test Mode than in earlier versions, such as 2.x. Therefore, always benchmark using a deployed application. See Scheduling Garbage Collection for more information.
Legacy project sequences replaced with Sub Tasks | As of release 4.0, legacy Cognex Designer 2.x project sequences are replaced with a Sub Task.

Issue | Description
Auto-Camera detection limitation | Auto-Camera Detection only functions when Creating a New Project with Project Types.
Errors when handling large recipe configurations | In Recipes, when loading a large configuration (for example, the file size of the corresponding .json file is greater than 550M), an error such as Array dimensions exceeded supported range results.
Anti-Virus Software | If anti-virus software is enabled for real-time protection it may also perform disk scans at a user-specified time. The disk scans may interfere with busy vision software applications. If so, consider disabling anti-virus software, or managing behavior in a manner appropriate for the application.
Expression Builder function does not get updated. | When an ItemAt($index, $array) function is constructed in the Expression Builder, it will only update the returned value when the value of the $index tag changes, or a new array is assigned to the $array tag. The following C# script statements illustrate how to trigger a value change event:
    $index++;
    $array = { "one", "two", "three" };
The following C# script statement will not trigger a value change event:
    $array[1] = "new value";
Test Mode changes on Pages persist in Program Mode. | If an element on a Page (e.g. CheckBox, TextBox, etc.) is modified while in Test Mode, after exiting Test Mode, the element will not return to its state prior to entering Test Mode. To do so, the Designer OnStartup Script must be used to explicitly set the default values of Page elements. For example, if a Page contained a TextBox which should be blank at startup, the script would be:
    $Pages.Page.TextBox.Text = string.Empty;
Uninstalling/Reinstalling Software on a Cognex Vision Controller | In the event that the default installations of VisionPro or Designer need to be uninstalled and then newer versions installed, if a black desktop (no Cognex wallpaper) and a blank, blue Taskbar is encountered after the initial reboot after uninstalling/reinstalling, press the Windows Logo key to return to the Start screen, and then select the Desktop tile/icon to return to the correct Desktop.
Changing the Primary Language of the Operating System on a Cognex Vision Controller | If the primary language of the Operating System on a Cognex Vision Controller is changed (e.g. from English, the default language, to Simplified Chinese), the Vision Controller will need to be restarted. In the event that the desktop appears without the Cognex wallpaper and a blank, blue Taskbar is encountered after the reboot, press the Windows Logo key on your keyboard to return to the Start screen. Next, select the Desktop tile/icon to return to the correct Desktop.
Startup Issue resulting in incorrectly firing Precision I/O Events | A startup issue incorrectly firing Precision I/O Events can occur in Industrial Communications if the following conditions are met: The output mapping of the configured industrial communications connection is set to falling-edge trigger. The bit state is low. Another signal transition causes the industrial communications protocol to push an update through the logic. In such cases, the mapping will false-trigger one time and incorrectly fires the discrete event. This only occurs when the bit state starts low, and the mapping is set to falling-edge trigger, or the bit state starts high, and the mapping is set to rising-edge trigger.
Modifying VisionPro and Tool Block Editor Page Controls while a Task is running | If a Page contains a VisionPro Tool Editor or VisionPro ToolBlock Editor element, they should be configured to not allow user interaction while the application sequence is running. Changes to these two types of controls can be made when the application is being modified at design time in the development environment, or in a deployed application, but only when the sequence using the tools is not running.
Unsupported database data types | Cognex Designer does not support the decimal, geography, hirachyid, image, money, numeric, smallmoney , sql_variant, time, timestamp and xml data type parameters. When creating a database, ensure that these types are not used for columns, otherwise Designer will be unable to connect to the database. Cognex Designer only supports a sub-set of data types: bigint, binarybit, char, date, datetime, datetime2, datetimeoffset, float, int, nchar, ntext, nvarchar, real, smalldatetime, smallint, text, tinyint, uniqueidentifier, varbinary, varchar. Use Microsoft® SQL Server® 2008 Management Studio or later to create and edit SQL Server databases.
Return Statements in Script Editor | When wanting to use a return statement to exit a script function, use the return null; statement, instead of the return; statement. In the Script Editor, scripts must always return an object, even though the signature of the script function returns void.
FFP Offline Requested Task Triggers for "Online" and "Offline" Status | When implementing industrial communications protocols, consider that within Cognex Designer, the OfflineRequested event is mapped into both a scriptable point called FFP Offline Requested and a Task Trigger called Devices.{CommCardName}.FfpOffineRequested. During execution, if the OfflineRequested event is fired, it will run the script registered to the scriptable point called FFP Offline Requested. At this point, the user can access the ReturnToPreviousState member of the argument, and determine the state of the device (False = Offline and True = Online). After this has occurred, the event triggers the FfpOfflineRequested Task Trigger. However, in this case, there is no way to determine the requested state, so any Task registered to run as a result of this trigger will be executed, regardless of the state.
OPC UA Plugin Compatibility with Older Windows Versions | If Cognex Designer 4.2 is used on a machine running Windows 7 or Windows Embedded 8, the OPC UA Plugin works only if the .NET Framework 4.7.2. Runtime package has been installed for the operating system. This limitation does not impact machines running on Windows 8.1 or Windows 10.