Device not syncing
What to check when a device stops picking up configuration: the agent, the desktop app, the device status, and when a clean re-enrollment is the right answer.
Symptoms
- "No report yet" in the Config column of the Your devices table in My AI. The device has never reported a deployment.
- A stale Last check-in (My AI) or Last seen (device detail). Healthy devices check in every five minutes.
- The device detail page shows "Waiting for this device to apply the latest configuration from Harriet. It will report after the next background sync (typically within a few minutes)." and it never resolves to "Configuration applied".
- A "Needs attention" banner: "This enrolled device has not reported recently. Confirm the agent is running on the machine."
The device is asleep or offline
The most common cause. Sync only happens while the machine is awake and can reach Harriet. Wake the machine, confirm it has a network connection, and wait for the next five-minute cycle. Then reload the device detail page: while the state is pending, the console polls automatically and flips to "Configuration applied" once the device checks in with the expected config hash.
The background agent is not installed or stopped
On machines using the terminal agent, sync runs on a schedule: a LaunchAgent (com.harriet.provisioner.plist) on macOS, or the HarrietProvisionerAgent scheduled task on Windows. Windows also requires Python 3 on PATH. If the schedule was removed or never installed, the device enrolls once and then goes quiet.
- Open Devices and select the device. Check Last seen to confirm it has actually stopped reporting rather than being briefly offline.
- Select "Reconnect on this computer". This opens the install flow with a fresh command for macOS (
curl … | bash) or Windows (irm … | iex). - Re-run the installer on the machine. Re-running is safe: the machine keeps its stable machine identity, so Harriet reuses the same device record and issues a fresh API key instead of creating a duplicate.
- Wait for the next check-in. The device detail page updates once the agent reports.
Harriet Desktop is closed
On devices managed through Harriet Desktop alone (no terminal agent), the app itself polls for configuration on a five-minute timer, plus on window focus and when the connection comes back online. It only does this while the app is running. If Harriet Desktop is quit, the device stops checking in until someone opens it again. Ask the person to open the app and leave it running.
The device is Blocked or removed
Check the status shown on the device detail page. Device statuses are Active, Inactive, Blocked, Pending wipe, and Wiped. Harriet refuses requests from Blocked devices, and a device that was deleted in the console no longer has a valid API key, so its agent gets 401 responses. A Pending wipe device is about to remove its own configuration, not apply new configuration; see Removing devices.
When to remove and re-enroll
If the agent log shows repeated 401 Unauthorized (the stored API key no longer matches the server, for example after the device was deleted and recreated) or 403 Forbidden (device mismatch, or the provisioner feature was disabled for the organization), a fresh enrollment is the reliable fix:
- Remove the device in the console. "Remove device" unregisters it in Harriet only; "Remove device and all configuration" also schedules a full wipe on the machine.
- Send a new enrollment invite or use "Reconnect on this computer" to get a fresh install command.
- Re-run the installer and link the device when prompted for the user code.
Sync mechanics, check-in cadence, and what "Configuration applied" means are covered in Device sync.