Yes, sorry that wasn't as helpful as I remembered.
You'll need to insert some actions in the On Startup script to investigate further.
For instance, you should check what value is being retrieved from the registry:
Did you check whether there are any other key files in version 3?
-- Location method: Registry key
-- Read a folder path from the Registry.
if not g_InstalledVersion then
local MainKey = HKEY_CURRENT_USER;
local SubKey = SessionVar.Expand("Software\\%CompanyName%\\%ProductName%");
local ValueName = "InstallFolder";
local FolderPath = Registry.GetValue(MainKey, SubKey, ValueName);
g_InstalledVersion = VisualPatch.CheckFolderVersion("%AppFolder%", FolderPath);
if g_InstalledVersion then
Also make sure each key file's destination path is set to %AppFolder%.