Anleitung · Make.com · Make

Make Docs/Sheets: Invalid requests[0] 400 beheben

Kurzantwort: Beginne mit dem vollständigen Fehler, nicht nur mit dem roten Modulsymbol:

By Flowpaja · Von Flowpaja · Veröffentlicht am

Diese Anleitung enthält einen Affiliate-Link, gekennzeichnet mit „Affiliate-Link“.

Diese Anleitung gibt es auch auf: English · Deutsch · Español · Français

Make Docs/Sheets: Invalid requests[0] 400 beheben
Hinweis: Alles in dieser Anleitung funktioniert mit Make.com und den verbundenen Apps. Am Ende erwähnen wir optionale Vorlagen und einen Reparaturservice. Quellen: Make Google Docs.
The operation failed with an error. [400] Invalid requests[0]...

Der Text nach requests[0] ist entscheidend. Er nennt die Aktion, das Feld oder den Index, den Google abgelehnt hat. Die 0 bezeichnet den ersten Eintrag in Googles Anfrage-Array, nicht eine Make-Modulnummer und nicht die Zeilennummer einer Tabelle.

Reduziere den fehlgeschlagenen Inhalt auf eine Anfrage an eine Testdatei. Wiederhole nicht den vollständigen produktiven Batch, während du mehrere Felder gleichzeitig änderst.

1. Einen von drei Endpunkten bestimmen

Diese Pfade sehen ähnlich aus, akzeptieren aber unterschiedliche Inhalte:

AufgabeGoogle-EndpunktsuffixOberste Struktur
Text in einem Google Doc ersetzen oder bearbeiten/v1/documents/DOCUMENT_ID:batchUpdaterequests mit Docs-Aktionen
Sheets-Struktur, Formatierung oder typisierte Zellen ändern/v4/spreadsheets/SPREADSHEET_ID:batchUpdaterequests mit Sheets-Aktionen
Werte in Sheets-Bereiche schreiben/v4/spreadsheets/SPREADSHEET_ID/values:batchUpdatevalueInputOption und data

Offizielle Referenzen: Docs batchUpdate, Sheets batchUpdate, Sheets values.batchUpdate.

Für gewöhnliche Werte in A2:B2 verwendest du den values-Endpunkt. Für typisierte userEnteredValue-Werte oder Formatierung brauchst du einen strukturellen Sheets-requests-Batch. Für Dokumenttext brauchst du Docs-Anfragen. Die Inhalte sind nicht austauschbar.

2. Basis-URL des Make-Moduls prüfen

Für Docs verwendest du Google Docs › Make an API Call. Dessen URL ist relativ zu https://docs.googleapis.com/. Trage ein:

/v1/documents/DOCUMENT_ID:batchUpdate

Für Sheets verwendest du Google Sheets › Make an API Call. Dessen URL ist relativ zu https://sheets.googleapis.com/v4/. Trage einen dieser Pfade ein:

/spreadsheets/SPREADSHEET_ID:batchUpdate
/spreadsheets/SPREADSHEET_ID/values:batchUpdate

Setze Method auf POST und sende JSON mit Content-Type: application/json. Die App-Verbindung liefert die Autorisierung; füge keinen fremden Bearer-Token ein. Basis-URLs und Verbindungsverhalten stehen in den Referenzen zu Google Docs und Google Sheets.

Ersetze die großgeschriebenen ID-Platzhalter durch IDs von Testdateien. Prüfe die aufgelöste Eingabe der fehlgeschlagenen Ausführung. Ein konfiguriertes Feld kann richtig aussehen, während sein zugeordneter Wert leer ist oder zu einer anderen Datei gehört.

3. Eine feste Docs-Textersetzung nachweisen

Erstelle ein Testdokument mit NAME_SLOT. Verwende diesen Inhalt zunächst ohne Formularzuordnungen:

{
  "requests": [
    {
      "replaceAllText": {
        "containsText": {
          "text": "NAME_SLOT",
          "matchCase": true
        },
        "replaceText": "Jamie Quinn"
      }
    }
  ]
}

Lies danach das gespeicherte Dokument. Der fiktive Name muss den Marker ersetzt haben. NAME_SLOT ist absichtlich einfacher Text: Das Beispiel setzt keine Interpretation von {{...}} als Make-Vorlagensyntax voraus.

Ersetze den festen Namen erst nach einem erfolgreichen Test durch eine Antwortzuordnung. Funktioniert die feste Version, aber die zugeordnete nicht, vergleiche die endgültigen JSON-Inhalte. Anführungszeichen oder Zeilenumbrüche können manuell zusammengesetztes JSON beschädigen.

Verwende JSON › Create JSON mit passender Datenstruktur für zugeordnete Anfragen; siehe Make JSON. Gültige JSON-Syntax beweist noch nicht, dass Googles Aktionsfelder richtig sind.

4. Ein Sheets-Wertupdate getrennt prüfen

Erstelle eine Testtabelle mit einem Blatt namens Intake. Verwende /values:batchUpdate und diesen Inhalt:

{
  "valueInputOption": "RAW",
  "data": [
    {
      "range": "'Intake'!A2:B2",
      "values": [["Jamie Quinn", 1234.56]]
    }
  ]
}

Der Name ist ein JSON-Text, der Betrag eine JSON-Zahl. Der Bereich verwendet den Titel des Blatts. data bleibt ein Array, values ein Array von Zeilen. Umschließe diesen Inhalt nicht mit requests und füge keine Docs-replaceAllText-Aktion ein.

Prüfe nach dem Aufruf A2 und B2. Ein erfolgreicher Aufruf an die falsche Datei ist für dein Szenario trotzdem ein fehlgeschlagener Test.

5. Typisierte Zellen und Feldmasken prüfen

Für Sheets updateCells verwendest du den strukturellen batchUpdate-Endpunkt. Dieses Beispiel schreibt zwei Zellen ab A2:

{
  "requests": [
    {
      "updateCells": {
        "start": {
          "sheetId": 12345,
          "rowIndex": 1,
          "columnIndex": 0
        },
        "rows": [
          {
            "values": [
              {"userEnteredValue": {"stringValue": "Jamie Quinn"}},
              {"userEnteredValue": {"numberValue": 1234.56}}
            ]
          }
        ],
        "fields": "userEnteredValue"
      }
    }
  ]
}

12345 ist eine beispielhafte Blatt-ID. Ersetze sie durch die tatsächliche numerische sheetId. Die Spreadsheet-ID der Datei ist ein anderer Identifikator.

Die Sheets-Anfragereferenz beschreibt start oder range sowie die zu CellData relative Feldmaske. Die Datentypreferenz definiert numerisches numberValue und nullbasierte Indizes. A2 entspricht Zeilenindex 1 und Spaltenindex 0.

Halte den Test eng begrenzt. Ein großer range mit zu wenigen Daten kann maskierte Felder im restlichen Bereich leeren. Verwende nicht fields: "*", um Unsicherheit über die beabsichtigten Felder zu kaschieren.

Häufige Fehler und passende Korrekturen

Ein Feld gehört zur anderen API

Eine Docs-Aktion funktioniert nicht in einem Sheets-requests-Batch. Vergleiche den abgelehnten Aktionsnamen mit der Referenz des tatsächlich aufgerufenen Endpunkts. Baue dessen kleinstmöglichen gültigen Inhalt.

numberValue enthält formatierten Text

"numberValue": "€1.234,56" ist Text, keine JSON-Zahl. Parse den Betrag zuerst anhand eines festgelegten Formats. Sende 1234.56 als Zahl nur, wenn das der beabsichtigte Wert ist. Halte die Währung getrennt. Siehe Ungültige Zahlen in Formularantworten.

Die Blatt-ID ist falsch

Lies die Metadaten der Datei und ordne den Blatttitel der numerischen sheetId zu. Die Position eines Blatts in der Oberfläche ist nicht seine ID. Wurde ein Blatt neu erstellt, aktualisiere die Metadaten statt einer alten ID zu vertrauen.

Ein Index liegt außerhalb des aktuellen Dokuments

Lies vor indexbasierten Dokumentaktionen die aktuelle Struktur. Für einfache Marker beginne mit einem nachgewiesenen replaceAllText-Aufruf, bevor du indexbasierte Bearbeitung ergänzt.

Das Dokument hat mehrere Tabs

Googles Leitfaden zu Dokument-Tabs erklärt, dass replaceAllText ohne Tabs-Kriterien alle Tabs betreffen kann. Begrenze die Ersetzung, wenn derselbe Marker an mehreren Stellen vorkommt.

Eine verlangte Revision ist veraltet

Bei writeControl.requiredRevisionId musst du mit der aktuellen Dokumentrevision vergleichen. Die Docs-API kann einen Batch mit veralteter Pflichtrevision ablehnen. Lies erneut. Den Konkurrenzschutz ungeprüft zu entfernen ist keine Reparatur.

Retry scheitert weiterhin

Unveränderter fehlerhafter Inhalt bekommt durch Wiederholen kein gültiges Schema. Bewahre die Eingabe auf, korrigiere einen Fehler und teste ein entbehrliches Ziel. Überspringe die Schreibaktion nicht, um das Dokument anschließend als aktualisiert zu behandeln.

Credits und Folgen eines fehlgeschlagenen Batchs

Ein ausgeführtes gewöhnliches API-Modul entspricht einer Planungsschätzung von einem Credit. Lesen plus Schreiben ergibt zwei. Mehrere Teilanfragen in einem HTTP-Aufruf bleiben ein Make-Modullauf. Prüfe den Verlauf; siehe Make Credits.

Docs- und Sheets-requests-Batches validieren vor der Anwendung. Ein ungültiger Eintrag verhindert die Änderungen dieses Batchs. Das macht aber keine Datei rückgängig, die ein früheres Make-Modul erstellt hat, und entfernt keine zuvor hinzugefügte Zeile. Prüfe diese Ausgaben vor einem kompletten Neustart.

Tests

  1. Vollständigen Fehlersuffix und aufgelöste Eingabe sichern.
  2. API, Pfad, Methode und Ziel-ID bestätigen.
  3. Eine feste Anfrage an eine Testdatei senden.
  4. Ziel lesen und genau geänderten Text oder Zellen prüfen.
  5. Einen festen Wert durch eine Zuordnung ersetzen und den Inhalt vergleichen.
  6. Satzzeichen und das vereinbarte Zahlenformat testen.
  7. Weitere Teilanfragen einzeln ergänzen und nach jeder Änderung prüfen.

Stoppe bei der ersten neu hinzugefügten Anfrage, die scheitert. Ordne Anfragen nicht nur um, damit sich der gemeldete Index verschiebt.

Einfachere Formularannahme verwenden, wenn sie passt

Wenn deine Aufgabe Formular-Leads in Sheets und eine Slack-Benachrichtigung ist, beginne mit Flowpajas kostenloser Lead Capture → Sheets + Slack-Vorlage. Das ist ein eigener Annahmeablauf, keine Reparatur eines beliebigen batchUpdate-Inhalts.

Noch kein Make-Konto? Kostenloses Make-Konto erstellen: affiliate link. Flowpaja kann eine Provision erhalten, ohne zusätzliche Kosten für dich.

FAQ

Was bedeutet Invalid requests[0]?
Die erste Anfrage in Googles nullbasiertem Array. Der restliche Text erklärt das ungültige Feld oder die Aktion. Bewahre Index und Suffix auf.
Können Docs und Sheets denselben batchUpdate-Inhalt nutzen?
Nein. Docs-Anfragen, strukturelle Sheets-Anfragen und Wertupdates verwenden unterschiedliche Schemas. Wähle zuerst den Endpunkt.
Ist sheetId die Spreadsheet-ID?
Nein. Die Spreadsheet-ID bezeichnet die Datei. Die numerische sheetId bezeichnet ein Blatt darin.
Wird ein ungültiger requests-Batch teilweise angewendet?
Die Docs- und Sheets-Endpunkte lehnen einen ungültigen Batch vor Anwendung ab. Frühere erfolgreiche Make-Module bleiben eigenständige Aktionen und brauchen eigene Wiederherstellungsprüfungen.

Noch Probleme?

Schick den exportierten Blueprint und den Fehlertext des fehlgeschlagenen Laufs an unseren Make-Reparaturservice auf Fiverr. Keine Logins nötig.

Stuck on an error in your own Make scenario? Make scenario fix / debugging on Fiverr, from $25: send the exported blueprint and a description of the error, no logins needed.

← All guides · All templates

Make, Meta, Facebook, Google, Google Sheets, Slack, Fillout, Typeform, Tally, HubSpot und Webflow sind Marken ihrer Inhaber. Flowpaja ist unabhängig und nicht mit ihnen verbunden.