Google Sheets Trigger gibt intermittierend 503 Service Unavailable über mehrere Workflows hinweg für 24+ Stunden zurück

Problem/Fehler/Frage beschreiben

Mein Google Sheets Trigger Node (Abfrage alle Minute, rowAdded-Event) schlägt intermittierend mit einem 503-Fehler in zwei separaten Workflows fehl, die zwei verschiedene Google Sheets unter zwei verschiedenen OAuth2-Anmeldedaten überwachen. Dies ist wiederholt vom 12. Juli 06:56 bis zum 13. Juli 23:03 aufgetreten.
Ich habe bereits die üblichen Ursachen überprüft, bevor ich diesen Beitrag veröffentlicht habe:
Beiden Google Sheets OAuth2-Anmeldedaten zeigen „Konto verbunden

@Kalon

Abfragen jede Minute ist ressourcenintensiv und anfällig für diese Fehler. Die robusteste Möglichkeit, um „Zeile hinzugefügt

Willkommen @Kalon!

Die 503 kommt hier von Googles API, nicht von n8n – der Sheets-Polling-Trigger ruft die Sheets-API bei jedem Intervall auf, und Google verwirft manchmal Anfragen am Service-Edge, auch wenn die öffentliche Status-Seite grün aussieht. Zwei Dinge zu prüfen: Erstens, schau dir den rohen Error-Body im Execution Log an – falls er backendError oder serviceUnavailable im JSON enthält, bestätigt das, dass Googles Backend der Verursacher ist. Zweitens, versuch, das Polling-Intervall auf alle 5 Minuten statt alle 1 Minute zu wechseln – aggressives Polling mit mehreren Credentials, die dasselbe Sheets-API-Kontingent treffen, kann dies verschärfen. Wenn du Near-Real-Time-Erkennung brauchst, ist der Wechsel zu einem Webhook-basierten Ansatz via Google Apps Script (löst deinen n8n-Webhook bei Tabellenänderung aus) viel zuverlässiger als Polling und vermeidet diese Fehlerklasse vollständig.

Hallo @Kalon
Wenn beide Anmeldedaten vom Typ „Mit Google anmelden

Die 503 kommt von Googles Seite, nicht von n8n — und in n8n Cloud verwendet der Sheets Trigger n8ns gemeinsamen Google-OAuth-Client, sodass du das API-Kontingent dieses Clients mit jedem anderen Cloud-Nutzer teilst. Wenn Google das gemeinsame Projekt drosselt, erhältst du intermittierende 503er, obwohl deine eigenen Anmeldedaten und das Volumen in Ordnung sind. Deshalb trifft es beide Workflows unter verschiedenen Anmeldedaten gleichzeitig, und deshalb behebt „Retry On Fail

Die oben beschriebene Erklärung zum gemeinsamen OAuth-Client ist sehr wahrscheinlich richtig, und der Wechsel zu einem benutzerdefinierten Client ist der korrekte nächste Schritt. Aber hier diskutiert jeder (ich eingeschlossen, bis ich deinen Beitrag erneut gelesen habe) darüber, welche Abfrage behoben werden soll, und ich denke, die nützlichere Frage ist, warum du überhaupt abfragst.

rowAdded in einem 60-Sekunden-Intervall bedeutet, dass n8n Google „hat sich etwas geändert?

@Kalon
Der Fehler 503 Service Unavailable in n8n (Google Sheets Trigger) deutet auf ein vorübergehendes Problem auf der Seite des Zielservers hin — in diesem Fall kann die Google Sheets API die Anfrage momentan nicht verarbeiten.

Die Ursachen und Lösungen lassen sich wie folgt aufschlüsseln:

Was verursacht das Problem?

  1. Google-Server-Überlastung oder vorübergehende Ausfallzeit (transienter Fehler): Dies ist die häufigste Ursache. Die Server von Google könnten neu starten, Wartungsarbeiten durchführen oder zu diesem Zeitpunkt eine ungewöhnlich hohe Anzahl von Anfragen verarbeiten.

  2. Zu häufiges Polling: Der Workflow prüft jede Minute auf Updates. Das Ausführen eines Polling-Triggers mit dieser hohen Frequenz kann dazu führen, dass die Google API die Anfragen als zu aggressiv einstuft und die Verbindung vorübergehend trennt, um eine Überlastung zu vermeiden (auch wenn sie nicht explizit einen 429 Too Many Requests-Fehler zurückgibt).

  3. Zeitweilige Netzwerkprobleme: Es könnte einen kurzen Konnektivitätsabfall oder Timeout beim Handshake zwischen deiner n8n-Instanz und Googles Servern geben.

Wie behebe ich das Problem?

**1. Aktiviere „Retry On Fail

Ich denke, hier werden ein paar Dinge durcheinander geworfen.

Ein 503 ist normalerweise ein vorübergehender Fehler auf Googles Seite, aber ich würde ihn nicht automatisch mit Kontingentproblemen oder aggressivem Polling zusammenfassen. Wenn Google denkt, dass du Kontingente überschreitest, siehst du normalerweise 429 oder kontingentbezogene 403 Antworten, nicht 503.

Außerdem bin ich nicht überzeugt, dass die Aktivierung von Retry On Fail notwendigerweise die Antwort ist, wenn der Fehler auf der Ebene des Trigger-Polling selbst auftritt. Trigger-Knoten verhalten sich anders als normale Workflow-Knoten, daher wäre es hilfreich zu bestätigen, ob Wiederholungen tatsächlich auf Google Sheets Trigger-Polling-Fehler angewendet werden oder nur auf nachgelagerte Knotenausführungen.

Die Erklärung zum gemeinsamen OAuth wirkt viel plausibler, besonders da mehrere Nutzer das um die gleiche Zeit zu sehen scheinen. Ein Wechsel zu einem benutzerdefinierten OAuth-Client isoliert dich von gemeinsamen Client-Verhalten und ist wahrscheinlich das erste, das ich testen würde.

Das gesagt, denke ich, dass die wichtigere Frage die ist, die Adam früher gestellt hat:

Ist tatsächlich etwas verloren gegangen?

Wurden Zeilen dauerhaft übersprungen, oder hat das nächste erfolgreiche Polling einfach aufgeholt und sie normal verarbeitet?

Weil es einen großen Unterschied gibt zwischen:

  • störenden vorübergehenden 503-Fehlern in den Logs, und
  • stillem Datenverlust.

Der erste ist lästig.

Der zweite ist ein Produktionsproblem.

Zum Apps Script-Vorschlag gibt es ein wichtiges Detail, das erwähnt werden sollte:

e.range und e.values funktionieren bei bestimmten Trigger-Typen wie On form submit, sind aber nicht garantiert, dass sie für einen generischen On change installierbaren Trigger existieren. Das Beispiel könnte also für manche Workflows perfekt funktionieren und bei anderen je nach Art des Zeileneintritts sofort fehlschlagen.

Der Webhook-Ansatz ist immer noch attraktiv, weil das Eliminieren von Polling die gesamte Klasse von Polling-Fehlern eliminiert, führt aber stattdessen zu einem anderen Fehlermodus:

Wenn der Webhook-Endpunkt während der Zustellung nicht erreichbar ist, gibt dir Apps Script keine zuverlässigen Wiederholungen oder Warteschlangen.

Personlich würde ich folgendes betreiben:

  • Push/Webhook-Zustellung für niedrige Latenz,
  • idempotente Verarbeitung mit einer Zeilen-ID,
  • und einen geplanten Reconciliation-Workflow, der aktuelle Zeilen regelmäßig neu überprüft.

Push für Geschwindigkeit.

Sweep für Korrektheit.

Diese Kombination übersteht API-Ausfallzeiten, Webhook-Ausfallzeiten, Workflow-Neustarts und ziemlich jeden hässlichen Edge Case, der irgendwann in der Produktion auftaucht.

An diesem Punkt würde ich drei Dinge interessieren, bevor ich Schlussfolgerungen ziehe:

  1. Gemeinsamer n8n OAuth oder benutzerdefinierten OAuth?
  2. Wurden tatsächlich Zeilen übersprungen?
  3. Laufen alle betroffenen Nutzer in der gleichen n8n Cloud-Region oder Infrastruktur?

These Antworten sagen uns wahrscheinlich, ob wir es mit erwarteten Google-Ausfallzeiten zu tun haben oder mit einem tatsächlichen n8n-seitigen Incident, der weiter untersucht werden sollte.

Hallo Kalon,

Ein 503 Service Unavailable Fehler deutet typischerweise darauf hin, dass der Google Sheets API Server temporär überlastet ist oder aufgrund hoher Concurrency harte Rate Limits durchsetzt.

Da du alle 1 Minute über mehrere separate Workflows und OAuth Credentials abrufst, ist es sehr wahrscheinlich, dass du Googles Kontingente für gleichzeitige Anfragen auslöst, was dazu führt, dass die Anfragen sporadisch abgelehnt werden. Da „Retry on Fail