> **Building with AI coding agents?** Install the authstack plugin with one command. This equips your agent with accurate Scalekit implementation patterns.
>
> **Recommended**:
> ```bash
> npx @scalekit-inc/cli setup
> ```
>
> Global:
> ```bash
> npm install -g @scalekit-inc/cli
> scalekit setup
> ```
>
> Supports Claude Code, Cursor, GitHub Copilot, Codex + skills for 40+ agents.
> Features: full-stack-auth, agent-auth, mcp-auth, modular-sso, modular-scim.
> [Full setup guide](https://docs.scalekit.com/dev-kit/build-with-ai/)

---

# Inspect a user connection in the dashboard

Find a specific connected account in the Scalekit dashboard and read its state when an agent fails a tool call.
When an agent suddenly cannot reach a user's Gmail, Calendar, or GitHub, the cause is almost always
the state of that user's **connected account** rather than your code. The dashboard shows that state
directly, which is faster than adding logging and redeploying.

## Find the connection

Go to **Dashboard > Connections** and select the connection the agent uses — the name you pass as
`connection_name` in your code, such as `github-connect`.

Each connection lists the connected accounts created against it. One row exists per user identifier
you have authorized.

> note: One account per user, per connection
>
> A connected account is scoped to a single connection. A user who has authorized both Gmail and
> GitHub has two connected accounts, and they can be in different states.

## Read the state

The row's status is the diagnosis. Only `ACTIVE` accounts can serve tool calls.

| State | What it means | What to do |
| --- | --- | --- |
| `ACTIVE` | Credentials are valid and tool calls will work | Look elsewhere — the connection is healthy |
| `EXPIRED` | The access token expired | Send the user a fresh authorization link |
| `PENDING_AUTH` | The user never finished authenticating, or re-authentication is in progress | Send or re-send the authorization link |
| `PENDING_VERIFICATION` | OAuth finished but identity verification has not | Have the user complete verification |
| `DISCONNECTED` | The account was disconnected manually | Send a fresh authorization link |

For what each state means in code, see
[Manage connected accounts](/agentkit/connected-accounts/). For the failure modes behind each one,
see [Troubleshoot connection errors](/agentkit/authentication/troubleshooting/).

## Recover a broken connection

Every non-`ACTIVE` state is fixed the same way: generate a new authorization link and send it to the
user. The link opens a Scalekit-hosted page that adapts to the connection's auth type, so you do not
branch on connector type in your own code.

Once the user completes it, the row returns to `ACTIVE` and tool calls resume.

## Check the connection itself

If every account on a connection is failing rather than one, the problem is the connection, not the
users. Confirm on the connection's own page that its credentials are still valid — a rotated or
expired OAuth client on the provider side takes down every account beneath it at once.


---

## More Scalekit documentation

| Resource | What it contains | When to use it |
|----------|-----------------|----------------|
| [/llms.txt](/llms.txt) | Structured index with routing hints per product area | Start here — find which documentation set covers your topic before loading full content |
| [/llms-full.txt](/llms-full.txt) | Complete documentation for all Scalekit products in one file | Use when you need exhaustive context across multiple products or when the topic spans several areas |
| [sitemap-0.xml](https://docs.scalekit.com/sitemap-0.xml) | Full URL list of every documentation page | Use to discover specific page URLs you can fetch for targeted, page-level answers |
