====== Lime CRM Desktop Client 11.3.4403 ====== ; Product : Lime CRM Desktop Client ; Version : 11.3.4403 ; Date published : 2026-04-16 ; Platform : Windows ; Availability : [[https://builds.lundalogik.com/api/v1/builds/limecrm-desktop/versions/11.3.4403/file/|Manual installation]], [[https://builds.lundalogik.com/api/v1/builds/limecrm-desktop-reference/versions/11.3.4403/file|Reference]] This is a bug fix release targeting issues reported for 11.3.4362. ===== Improved ===== * **VBA/VB6 runtime compatibility.** Legacy VBA UserForms that embed phantom ActiveX CLSIDs (pointing at VB6-era OCXes with CLSIDs the OCXes no longer serve) are now patched automatically at load time. ''VbaClsidFixup'' scans the raw VBA project blob for 22 known phantom GUIDs and replaces them in-place with canonical CLSIDs before the storage is opened. TreatAs registry aliases for VB6-era components are registered as a fallback. The VB6/VBA runtime surface (OCX deployment, registration, license keys, TreatAs aliases, VBA MSI repair) has been consolidated into ''setupVBA.exe'' (v2.0) and removed from the Lime MSI. * **Enriched access-denied diagnostics.** Field references and raw access rules are now included in the "ignored access denied" warning. Server 403 errors surface client-side limetype metadata in extended error info, and 404 handling has been added. * **Dependency upgrades.** WebView2 SDK updated to 1.0.3856.49. NodaTime updated to 3.3.1. Sentry Native SDK upgraded from 0.12.3 to 0.13.6. ===== Fixed ===== * **Fixed NULL handling in filter pool arrays.** ''IN'' / ''NOT IN'' conditions with NULL values in the pool array are now handled correctly. NULLs are stripped from the array and handled via separate ''IS [NOT] NULL'' conditions instead, since SQL three-valued logic makes ''NOT IN (..., NULL, ...)'' silently filter out all rows. Pure-NULL pools are coerced to scalar NULL for correct ''IS'' / ''IS NOT'' evaluation. * **Fixed NOT IN sub-filters silently dropped during optimization.** The filter optimizer could silently discard NOT IN sub-filter conditions during the merge step. These conditions are now preserved and correctly isolated with separate join paths. * **Fixed unresolved unary NOT silently dropped in release builds.** The query generator's NOT path had only an ''ASSERT(false)'' guard, which is a no-op in release builds. Unresolved NOT conditions now throw an error instead of being silently ignored. * **Fixed NULL-projection guard applied too broadly.** The ''NULLIF'' guard for sub-filter relation fields was being added to main queries as well, incorrectly dropping records with NULL relations from regular result sets. The guard now only applies to sub-filter queries. * **Fixed sub-filter NULL guard scoping with OR conditions.** The ''NULLIF ... IS NOT NULL'' guard was placed before user conditions without grouping, so OR-joined branches could bypass it. The guard is now appended after user conditions with proper parenthesization. * **Fixed coercion of condition values for set-fields.** Filter condition values are now properly coerced to the correct type and range before optimization, preventing type mismatches for set-typed fields and decorated date comparisons.