n8n logon8n Automation Hub
Incident report

When n8n Says "The Credential Needs to Be Reconnected," There's No API Fix — Only a Browser Login

Incident report · n8n workflow · September 5, 2026

A booking-demo webhook workflow started failing every single call at its Google Sheets step with a credential-reconnect error — a class of failure that, unlike almost everything else on this site, can't be resolved through the n8n API at all.

Workflow at a glance
  1. Workflow: DEMO - Calendar Booking SaaS (Web Page) (fKlDNR1geMxv6H22), node "Avail Get Masters" — a Google Sheets read that looks up which staff/resources are available before showing booking slots
  2. Error, on effectively every webhook call: The credential "Google Sheets account" needs to be reconnected
  3. Full description from n8n: Access could not be refreshed because the connected account has revoked access, the refresh token expired, or the account password or permissions changed
  4. A second, unrelated workflow on the same instance (WF - German News Channel) hit the identical error class on its YouTube OAuth credential the same day — this is a Google/OAuth-side condition, not specific to one workflow or one credential
  5. This is the one error type on this site that genuinely has no n8n-API fix: OAuth token refresh requires re-authenticating through Google's consent screen in an actual browser, credential by credential
  6. Left unresolved at the time of writing — documented as the real, current state, not a fix that already happened
Diagram of the calendar booking demo's availability webhook chain highlighted where the Google Sheets credential error occurred

Node diagram reconstructed from the live workflow via the n8n API.

Every other bug on this site had an API fix. This one doesn't.

Most of the real bugs documented on this site — 503s, rate limits, malformed messages, misconfigured nodes — get fixed the same way: read the live workflow via the n8n API, change the one thing that's wrong, write it back, confirm with a fresh read. That pattern breaks down completely for one specific error class, and it's worth being honest about why, because it's a real limitation anyone running n8n against Google or other OAuth-based services will eventually hit.

The Avail Get Masters node in the calendar-booking demo — a Google Sheets read that checks which staff or resources are available before offering booking slots on a public-facing webhook — started failing on essentially every call with: "The credential 'Google Sheets account' needs to be reconnected." Since this node sits near the top of the booking flow, every webhook hit downstream of it fails the same way, which for a live demo means the booking page simply stops working.

What this error actually means

n8n's own description is specific: "Access could not be refreshed because the connected account has revoked access, the refresh token expired, or the account password or permissions changed." An OAuth2 credential like this one doesn't store a permanent password — it stores a refresh token that n8n uses to mint short-lived access tokens on demand. When Google invalidates that refresh token — because access was manually revoked in the Google account's security settings, because the token aged out, or because something about the account's security state changed — every future refresh attempt fails, and there is no data left in n8n that can regenerate a valid one. A new refresh token can only come from the user completing Google's OAuth consent flow again, in a real browser, for that specific Google account.

This isn't unique to this one workflow. The same day, a completely unrelated workflow on this instance — WF - German News Channel — hit the identical error class on its YouTube upload credential: The credential "YouTube - German News Channel" needs to be reconnected, same underlying description. Two different credentials, two different Google API products, same root cause category. That's a useful signal on its own: when this error shows up, it's worth checking whether other OAuth credentials on the same Google account are affected too, rather than assuming it's isolated to the one workflow that happened to be the first to notice.

Why the API can't fix it

The n8n public API can read a credential's metadata and can update most of what a workflow node does, but it has no endpoint that performs an OAuth authorization-code exchange on a user's behalf — that flow requires a browser redirect to Google's consent screen, the user clicking "Allow," and Google redirecting back with a fresh authorization code. There's no way to script around that step; it's a deliberate part of how OAuth is designed to work; a service that could silently regenerate its own access to a Google account without a human in the loop would defeat the purpose of the consent screen entirely.

Where this stands

Unlike the rest of this site's articles, this one isn't reporting something already fixed. As of this check, the calendar-demo booking flow is still failing at the availability-check step, and the German News YouTube upload credential is in the same state. Both need a manual reconnect through n8n's credential UI, logged in as whichever Google account each credential belongs to. Nothing about this required rewriting a node, adding a retry, or changing any configuration — retries don't help here, since a revoked refresh token fails identically on every attempt. This is simply the one class of n8n failure that ends at "someone needs to log into Google," documented honestly rather than skipped because it doesn't have a tidy before/after fix to show.

A scheduled n8n workflow that occasionally just... doesn't run, with no error you can find afterward?

I harden n8n workflows against exactly this kind of silent, transient-API skipped cycle.