Skip to main content
CID222 Docs

Endpoint agent and browser extension problems

Agents that will not enrol or stop checking in, extensions that cannot attest, and an EDL feed the firewall stops receiving.

  • Version: 0.4
  • Role: admin_user
  • Type: troubleshooting

Both surfaces authenticate a machine rather than a person, so their failures are about identity material — an enrolment token, a device-bound key, a signed policy bundle — and not about passwords.

Find your symptom

What you seeRunbook
An agent will not enrolAn agent will not enrol
An agent enrolled once and never checked in againAn agent will not enrol
A policy change never reached the fleetA policy change does not reach the fleet
The extension says attestation was rejected, or the device is not enrolledThe extension cannot attest
The extension signs in and says this role has no extension viewThe extension cannot attest
The firewall stopped receiving the EDL feedThe EDL feed stops updating
The extension cannot reach the appliance at allCertificate and 443 problems

The endpoint agent

An agent will not enrol

Enrolment matches the token's hash to a fleet and requires that fleet to be active, so deactivating a fleet stops new enrolments without revoking the devices already in it — and both read as an invalid token.

After enrolment the agent authenticates with an ordinary gateway API key, so the key's own lifecycle applies: revoke it or let it expire and the agent goes quiet with no endpoint-side change at all.

Note

A key is bound to one device id. Cloning a machine image after enrolment gives two machines the same key with different device ids, and both are refused. Exclude the agent's state from the golden image.

Runbookendpoint-agent

An endpoint agent will not enrol, or stops receiving policy

You might see: Invalid enrollment token · Missing agent API key · Invalid agent API key · Agent key does not match device

Before you start

Checks

  1. 1

    Check the enrollment token against the fleet

    expected · The token belongs to a fleet whose status is active.

  2. 2

    Read the Authorization header the agent sends on policy and heartbeat calls

    expected · The agent sends a key the gateway recognises.

  3. 3

    Check that the key and the device id agree

    expected · The key resolves to the device id the agent claims.

  4. 4

    Read the fleet's policy for the two fields the bundle cannot be signed without

    expected · Both are present.

  5. 5

    For a policy change the fleet never adopted, check that the bundle version advanced

    expected · The version is higher than the one the agent reports.

A policy change does not reach the fleet

An agent adopts a bundle only when its version is strictly higher than the one it applied. A change that does not advance the number is a change the fleet never hears about — which is why lock and unlock transitions move it through a generation offset.

The bundle is also refused at signing when the policy is missing selectivity or failMode, rather than shipped with a default nobody chose. The same runbook covers both.

The browser extension

The extension cannot attest

Four refusals are deliberately distinct: a device that was never enrolled, a device enrolled to another tenant, key material of the wrong shape, and a device being refused for frequency because it is re-attesting in a loop. A role with no extension view is told so at sign-in rather than shown an empty popup — that is the same design as the chat refusal for audit roles.

Runbookextension

The browser extension cannot attest, sign in, or fetch its policy

You might see: Attestation rejected · Device is not enrolled · Device is enrolled to another tenant · Device not found

Before you start

Checks

  1. 1

    Read the device's enrolment

    expected · The device is enrolled to the tenant the user belongs to.

  2. 2

    For a rejected enrolment, read what key material the extension sent

    expected · The extension sends a P-256 public JWK.

  3. 3

    Check whether the device is being refused for frequency rather than identity

    expected · The device attests at its normal interval.

  4. 4

    Read the role of the account signing in

    expected · The role is one that uses the extension.

  5. 5

    For the firewall EDL feed, read the token the firewall presents

    expected · The firewall presents a current EDL token.

The EDL feed stops updating

The firewall cannot sign in interactively, so the feed carries its own token. An expired token stops the feed updating while the firewall keeps enforcing the last list it fetched — which makes the failure quiet. Check the feed at the firewall after rotating the token; do not assume it recovered.

What the docs cannot tell you

  • Why an endpoint agent stopped running at all. The gateway sees only the absence of a heartbeat. Read the agent's own log on the machine.
  • Whether a browser policy is blocking the extension. Managed-browser policy is outside CID's view; the appliance sees no request.

Last updated on

On this page

Download PDF