Connection status or expiry shows Unknown

Why the Integration page sometimes shows 'Unknown' for connection status or PAT expiry, and how to resolve it.

Last updated

Your Settings → Integration page shows Connection Status: Unknown or Expires: Unknown instead of a green check and a date. This is almost always a transient Azure DevOps API hiccup — reviews are typically still running. A manual re-validation usually clears it.

Symptom

Where you see it

  • The Integration page shows the Unknown state in either the Connection Status or Expires field, often with a grey neutral indicator instead of green or red.
  • No banner appears in the dashboard and no PRs are blocked.

What is not broken

Reviews keep firing on PRs while the page shows Unknown — the orchestrator uses the stored PAT directly and does not depend on the dashboard's validation result. If actual reviews stop, that is a different problem (see Webhook 401s and reviews stopped firing).

Why it happens

ADO Pilot calls an Azure DevOps API to fetch the connected user's profile and the PAT's expiry metadata. Unknown means the call did not return a usable answer.

Transient ADO API failures

Azure DevOps occasionally returns 5xx responses or times out under load. The dashboard caches the most recent successful answer for a short window, then falls back to Unknown if it cannot refresh. Almost every Unknown state in production is one of these.

PAT approaching expiry

A PAT that is within a few hours of expiring sometimes returns inconsistent metadata from the ADO API. If you also see warnings about an upcoming expiry on the page, treat this as the cause and rotate the PAT.

Network timeouts

If your dashboard browser tab is on a flaky network, the page itself may render the Unknown state because its own request to the backend timed out. Reload the page on a stable connection before investigating further.

How to fix it

Force a re-validation

Reload the Integration page. The dashboard re-fetches connection state on every page load. If the underlying ADO API is healthy again, Unknown clears within a few seconds.

If the field stays on Unknown for more than a minute or two, the next step depends on whether your PAT is close to expiring.

Create a new PAT if yours is expiring soon

If the Expires field showed a date within the last week before flipping to Unknown, the PAT is near end of life. Generate a new PAT with the same scopes (see Required PAT scopes) and paste it into the Integration page. See Rotating your PAT for the full procedure.

Check Azure DevOps service status

If neither reload nor PAT rotation clears the state, check the Azure DevOps service status page for ongoing incidents in your geography. ADO outages cascade to the Unknown state until ADO recovers.

How to prevent it

  • Rotate PATs proactively. Set a calendar reminder for 7 days before your PAT expires. The dashboard also highlights PATs within 14 days of expiry on the Integration page.
  • Pick a 90-day PAT TTL. Longer-lived PATs accumulate more failure modes (revocation by ADO admins, account changes, password resets). 90 days is the sweet spot between rotation toil and exposure.
  • Watch the Integration page after major Azure DevOps changes. Tenant-wide policy changes, Conditional Access rollouts, and ADO admin transitions all show up here first.