# Why is my integration not syncing?

> Troubleshoot a connection: its status, reconnecting, sync history, the platform's side, and synced data missing from ROI.
>
> Source: https://roiva-staging.com/docs/integration-not-syncing
> Checked against the product on September 19, 2026

Most sync problems come down to a handful of causes. Work through these in order.

#### 1. Check the connection

Open **Integrations** in the sidebar and click the connection. On the **Connection** tab, **Connection Details** shows:

- **Status** — **Active**, **Paused** (no syncing until you choose **Resume Sync**), **Error** or **Disconnected**
- **Last Synced** — when it last brought data in. Connections sync nightly at 2:00 AM UTC; **Sync Now** runs one immediately.
- **Action Needed** — Roiva's access was revoked or has expired, and the connection needs reconnecting. The Connections list marks these **Needs reconnecting**.
- **Last Error** — what the platform returned when the latest sync failed, with links to the failing sync runs
- **Last Sync** — a temporary problem rather than a fault, such as OpenAI's rate limit cutting a run short. The connection stays Active and tries again on the next sync.

Below it, the **Setup Check** card lists each thing the connection needs on the platform's side (a scope, a role, a setting) and whether it's in place. **Test Connection** in the **…** menu runs the same check.

#### 2. Reconnect if access was lost

Owners and Admins choose **Reconnect**: it's the main button when the platform has revoked Roiva's access, and in the **…** menu otherwise. What it does depends on how the platform connects:

- **Sign-in platforms** (HubSpot, Salesforce, QuickBooks, Xero, Jira…) — you approve Roiva's access again. If the platform has added a permission Roiva needs, reconnecting is also how you grant it.
- **GitHub** — you go back through the GitHub App installation.
- **API-key platforms** (Zendesk, Stripe, OpenAI, AWS…) — Reconnect tests the key the connection already holds. If it works, a sync starts, and the error clears once that sync succeeds. If it doesn't, Roiva says what failed and changes nothing. For a revoked or rotated key, choose **Edit** on the connection and paste a new one. Saving it syncs straight away.
- **Google Cloud and BigQuery** — check the service account still has the roles in the connection's Setup Guide, then choose **Reconnect**. It tests the grant the same way and syncs if the roles are in place.

The data you've already synced is kept.

#### 3. Read the sync history

The **Sync History** tab lists every run. Open one to see how many records it processed, failed and skipped, and the error the platform returned. A run the platform's rate limit cut short shows **Stopped Early** rather than an error.

#### 4. Check the platform's side

- **Rate limits** — when a platform turns Roiva's requests away for coming too fast, the sync stops early, but the connection stays Active and says so under **Last Sync** rather than showing an error. Roiva tries the sync again on its own, and the next nightly sync catches up. You can also choose **Sync Now** once the limit has cleared.
- **Permissions changed** — an admin on the platform may have restricted the user or app Roiva connects as. The Setup Check usually shows which.
- **Nothing to sync** — some platforms only report once there's activity. A model provider with no usage in the period, or a GitHub organization without Copilot, has nothing to send.

#### 5. Synced, but not in ROI?

A connection can sync perfectly and still book nothing: it needs a link to an initiative, or a mapping on that link. Check **Integrations → Unlinked** (see [Linking connections to initiatives](https://roiva-staging.com/docs/linking-connections-to-initiatives)), and remember value counts only once it's approved.

#### 6. Still stuck?

Choose **Report this issue** beside the error on the connection's page or on a failed sync run. It opens a support ticket form with the connection and its error already attached, and the sync run too when you start from one, so we can dig into logs from our side. A rate limit doesn't offer it, because it clears by itself.

#### Next

- [Managing a connection](https://roiva-staging.com/docs/managing-a-connection) — pausing, editing a key, disconnecting and deleting
