---
title: "Google Sheets sync stopped"
description: "Fix Google access, the target tab, or the header layout, then replay only the failed deliveries."
group: "Reference"
order: 8
type: "troubleshooting"
parent: "troubleshooting"
keywords:
  - "Google Sheets"
  - "sync failed"
  - "delivery replay"
  - "tab"
updated: "2026-07-14"
---

When a Google Sheets delivery fails, the accepted response stays in Fillo. Repair the destination first, then replay the failed backlog.

## Read the destination error

Open the form's **Activity** page and find Google Sheets. Delivery health and **Recent deliveries** show the current status, recent attempts, and the provider error. Use that evidence to choose the repair:

| Failure | Repair |
| --- | --- |
| Google authorization revoked | Reconnect the intended Google account |
| Spreadsheet access removed | Restore edit access or use **Change sheet** in Settings |
| Target tab deleted | Use **Change sheet** to select a valid tab or create a new sheet |
| Unsupported layout | Put one header row at A1 |
| Header no longer maps | Restore the original field label or ID header, then change the sheet if needed |
| Provider quota or temporary error | Wait for provider recovery and test again |

Renaming a tab is safe — Fillo tracks its stable tab ID. Deleting a tab and recreating one with the same visible name creates a different tab, and that needs repair.

## Protect the header row

Fillo expects a table beginning at A1. It matches columns to field labels or stable IDs (ignoring case and repeated spaces) and can leave owner-managed columns blank. Avoid merged headers, multiple tables, and moving the header off row 1.

## Test and replay

1. From **Activity**, choose **Manage destinations** to open the form's **Settings**.
2. Reconnect Google or use **Change sheet**. Existing rows stay in the old sheet; new responses, queued deliveries, and later replays use the replacement.
3. Return to **Activity** and choose **Retry now** for Google Sheets.
4. Confirm the destination returns to **Healthy** and the replacement sheet receives rows with **Submitted at** and **Response ID**.

Destination replay targets failed delivery records, not every response. And a provider can commit a row yet lose the acknowledgement, so delivery is still at-least-once. Keep **Response ID** in the sheet and make downstream automation duplicate-aware.

## Related

- [Google Sheets](/docs/integrations/google-sheets): Review supported sheet and header layouts.
- [Delivery health and replay](/docs/delivery-health): Understand retries, terminal failure, and replay scope.
- [Exports](/docs/exports): Recover response data as CSV while the destination is offline.
