Skip to main content
Adding software to Primo tells the fleet what should be installed. Installation status tells you what actually is installed, device by device, and lets you act on the gaps without leaving the dashboard. For every app you manage in Primo, you get:
  • The install state on each device the app targets
  • The version installed on the device versus the version your package offers
  • Per-app counters across the fleet: how many devices have it, how many are still working on it, how many failed
  • Install, reinstall, update, and uninstall actions on a single device

What the list covers

The scope is deliberately narrow — two rules decide whether a device and an app appear together:
  • Primo-managed software only. Only apps you added to MDM > Software are tracked. Apps an employee installed themselves are never listed, even though the agent can see them on the device.
  • Targeted devices only. A device appears for an app only if the app’s targeting resolves to it — either the app targets all devices on its platform, or the device belongs to one of the app’s targeted device groups.
This is not a full software inventory of the device. If you need the complete list of every title detected on a device, open the device in Fleet.

Where to find it

Open the device drawer from any device list, then select the Software tab. On a software page, the Devices tab sits next to Setup. The three count columns are part of the default All view of the software table. If you use custom views, add them from the column picker.

Install statuses

Primo reports four statuses. They are computed on the server from what Fleet knows about the device, so the dashboard, the counters, and the device list always agree.
Presence outranks failure. An app that is still on the device reads Installed even if its last install or uninstall attempt failed. Failed always means the app is absent — which keeps the counters and the device list honest when you triage.
Hover an In progress status to see why it has not moved yet:
  • If the device is online, the operation is running on it now.
  • If the device is offline, the operation is queued and runs the next time the device comes online.

Versions

The device drawer shows two version columns:
  • Installed version — the version detected on the device
  • Library version — the version your Primo package or App Store app offers
Either column can be empty. Fleet reports the installed version from device inventory, independently of the installs it tracks itself, so a freshly installed app or a package Fleet cannot fingerprint can read Installed with no version. When both versions are known and the library version is newer, the primary action becomes Update.

Install, update, and uninstall

Each row exposes up to two actions. Primo picks the primary action from the status and the versions: Actions are requests, not instant results. Primo sends the command to the device and the row switches to In progress; the real status lands on the next sync. Uninstall is not offered for:
  • Apple App Store apps and .ipa apps — the store manages removal
  • Apps Primo installs on every device it manages
  • Software whose deployment is driven by an MDM control
An action can also be temporarily unavailable. Hover the button to see which:

Investigate a failure

On the Devices tab of a software page, a Failed row shows a See in Fleet link next to the status. Hover the link for the reason Fleet reported, and open it to read the full install output — the script result or the detection query that decided the app is missing. Failures usually come down to one of these:
  • The installer needs a flag or a pre-install step the package does not provide
  • The detection query does not match how the app registers itself — see How to find the right program name
  • The device did not meet a requirement of the installer, such as free disk space or a minimum OS version

How the status refreshes

1

On every device sync

Each time a device checks in, Primo recomputes the status of every app targeting it. No scan to launch.
2

When you change an app

Adding, editing, or deleting software re-syncs the devices it used to target and the devices it now targets, so rows appear and disappear with the targeting.
3

When you ask for it

Use Refresh in the device drawer to re-sync one device. On a software page, open the action menu and click Refresh device software to re-sync every device that app targets.
Refreshes fan out in the background, so counters and rows update a few seconds after the request. Right after you trigger an action or a refresh, the tables poll for a minute and update on their own. A newly added app reads zero on every counter until its first sync completes.