Repository navigation
Description
Fleet versions
- Discovered: 4.94.0-rc.2610272345 (937e874)
Web browser and operating system: N/A (API). Hosts: Windows 11 x64 (NUCBOX_G10, host 635) and Windows 11 on ARM (Parallels, host 629).
💥 Actual behavior
Garmin BaseCamp installs successfully and Fleet's software inventory shows it installed at 4.7.5.0, but the catalog's exists query returns no rows on the host. Because exists never matches, the patched query (SELECT 1 WHERE NOT EXISTS (...)) is vacuously true, so the app's patch policy passes on every host and can never flag an out-of-date BaseCamp. Reproduced on both Windows hosts, 6 installs out of 6 across three cycles.
🛠️ Expected behavior
The exists/patched queries match the program BaseCamp registers, so the patch policy reflects the installed version.
🧑💻 Steps to reproduce
These steps:
- Have been confirmed to consistently lead to reproduction in multiple Fleet instances.
- Describe the workflow that led to the error, but have not yet been reproduced in multiple Fleet instances.
- Add Garmin BaseCamp (Windows) to a fleet and install it on a Windows host.
- Fleet reports the install as successful, and after a refetch the host's software inventory lists Garmin BaseCamp 4.7.5.0.
- Run the catalog's
existsquery as a live query on that host:SELECT 1 FROM programs WHERE name = 'Garmin BaseCamp' AND publisher = 'Garmin Ltd. or its subsidiaries';— no rows. - The
patchedquery returns a row on the same host whatever version is installed, so the generated patch policy always passes.
🕯️ More info
ee/maintained-apps/outputs/garmin-basecamp/windows.json matches on name = 'Garmin BaseCamp' AND publisher = 'Garmin Ltd. or its subsidiaries' (the publisher comes from program_publisher in ee/maintained-apps/inputs/winget/garmin-basecamp.json).
The name half is right: Fleet's inventory landed on the Fleet-maintained title (installed_versions 4.7.5.0, two rows) and Windows titles are keyed on name + source, so a programs row named exactly Garmin BaseCamp is there. The publisher half is what doesn't match.
The same catalog entry's uninstall script matches DisplayName -like "Garmin BaseCamp*" and removes the app successfully (exit 0) on every cycle, which is independent confirmation that the app really is registered.
The BaseCamp bundle also installs Garmin USB Drivers, which is still registered on both hosts after the uninstall, with publisher Garmin Ltd or its subsidiaries (no period after "Ltd"). The catalog expects Garmin Ltd. or its subsidiaries, so BaseCamp's own entry most likely uses the same no-period string. Same shape as #56971 (AWS CLI), #57113 (REAPER), #57136 (Galaxy Modeler), #57137 (PostgreSQL 18), #58530 (SuperCollider).
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fields📨 Inbox
- StatusShow more project fieldsBacklog
Activity