Skip to content

Fleet-maintained apps: Garmin BaseCamp (Windows) is never detected by its exists/patched queries, so its patch policy always passes #58756

Open

Description

@Brajim20

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.
  1. Add Garmin BaseCamp (Windows) to a fleet and install it on a Windows host.
  2. Fleet reports the install as successful, and after a refetch the host's software inventory lists Garmin BaseCamp 4.7.5.0.
  3. Run the catalog's exists query as a live query on that host: SELECT 1 FROM programs WHERE name = 'Garmin BaseCamp' AND publisher = 'Garmin Ltd. or its subsidiaries'; — no rows.
  4. The patched query 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).

Activity

  1. added
    bugSomething isn't working as documented
    ~released bugThis bug was found in a stable release.
    #g-auto-patchingProduct group focused on auto patching software
    ~fmarelates to a Fleet-maintained app
    ~fma-soakFound by the Fleet-maintained apps soak (automated install/update/uninstall runs on real hosts)
    on Nov 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    #g-auto-patchingProduct group focused on auto patching softwarebugSomething isn't working as documented~fmarelates to a Fleet-maintained app~fma-soakFound by the Fleet-maintained apps soak (automated install/update/uninstall runs on real hosts)~released bugThis bug was found in a stable release.

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions