Fehlerbehebung

Selbst der erfahrenste Entwickler schreibt selten Code richtig beim ersten Versuch, sodass die Fehlerbehebung ein wichtiger Teil des Entwicklungsprozesses ist. In diesem Abschnitt werden einige Techniken beschrieben, mit denen Sie Fehler in Ihren Skripts finden, verstehen und beheben können.

Fehlermeldungen

Wenn im Skript ein Fehler auftritt, wird eine Fehlermeldung angezeigt. Die Nachricht enthält eine Zeilennummer, die für die Fehlerbehebung verwendet wird. Es gibt zwei grundlegende Arten von Fehlern, die so angezeigt werden: Syntaxfehler und Laufzeitfehler.

Syntaxfehler

Syntaxfehler werden durch Schreiben von Code verursacht, der nicht dem JavaScript-Grammatik entspricht. Sie werden erkannt, sobald Sie versuchen, das Skript zu speichern. Das folgende Code-Snippet enthält beispielsweise einen Syntaxfehler:

function emailDataRow(rowNumber) {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getDataRange().getValues();
  var rowData = data[rowNumber-1].join(" ";
  MailApp.sendEmail('john@example.com',
                    'Data in row ' + rowNumber,
                    rowData);
}

Das Syntaxproblem hier ist ein fehlendes )-Zeichen am Ende der vierten Zeile. Wenn Sie versuchen, das Skript zu speichern, erhalten Sie folgende Fehlermeldung:

Fehlendes ")"-Zeichen nach Argumentliste (Zeile 4)

Diese Fehlertypen lassen sich in der Regel einfach beheben, da sie sofort erkannt werden und in der Regel einfache Ursachen haben. Sie können keine Datei speichern, die Syntaxfehler enthält. Das bedeutet, dass nur gültiger Code in Ihrem Projekt gespeichert wird.

Laufzeitfehler

Diese Fehler werden durch die falsche Verwendung einer Funktion oder Klasse verursacht und können erst erkannt werden, wenn das Skript ausgeführt wurde. Der folgende Code verursacht beispielsweise einen Laufzeitfehler:

function emailDataRow(rowNumber) {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getDataRange().getValues();
  var rowData = data[rowNumber-1].join(" ");
  MailApp.sendEmail('john',
                    'Data in row ' + rowNumber,
                    rowData);
}

Der Code ist richtig formatiert, aber beim Aufrufen von MailApp.sendEmail wird der Wert „john“ für die E-Mail-Adresse übergeben. Da dies keine gültige E-Mail-Adresse ist, wird beim Ausführen des Skripts der folgende Fehler ausgegeben:

Ungültige E-Mail: johann (Zeile 5)

Die Behebung dieser Fehler wird dadurch schwieriger, dass die Daten, die Sie an eine Funktion übergeben, häufig nicht in den Code geschrieben werden, sondern aus einer Tabelle, einem Formular oder einer anderen externen Datenquelle abgerufen werden. Mit den folgenden Methoden zur Fehlerbehebung können Sie die Ursache dieser Fehler ermitteln.

Häufige Fehler

Nachfolgend finden Sie eine Liste mit häufigen Fehlern und ihren Ursachen.

Dienst zu oft aufgerufen: <Aktionsname>

Dieser Fehler weist darauf hin, dass Sie Ihr Tageskontingent für eine bestimmte Aktion überschritten haben. Dieser Fehler kann beispielsweise auftreten, wenn Sie zu viele E-Mails an einem Tag senden. Die Kontingente werden auf verschiedenen Ebenen für Nutzer-, Domain- und Premium-Konten festgelegt und können jederzeit ohne vorherige Ankündigung durch Google geändert werden. Die Kontingentlimits für verschiedene Aktionen finden Sie in der Dokumentation zu den Apps Script-Kontingenten.

Server nicht verfügbar. oder Serverfehler. Bitte versuchen Sie es noch einmal.

Für diese Fehler gibt es mehrere mögliche Ursachen:

  • Ein Google-Server oder -System ist vorübergehend nicht verfügbar. Warten Sie einige Minuten und führen Sie das Skript dann noch einmal aus.
  • Das Skript enthält einen Fehler ohne entsprechende Fehlermeldung. Versuchen Sie, den Fehler in Ihrem Skript zu beheben, um das Problem zu isolieren.
  • In Google Apps Script ist ein Fehler aufgetreten, der diesen Fehler verursacht. Eine Anleitung zum Suchen und Einreichen von Fehlerberichten finden Sie hier. Bevor Sie einen neuen Fehler melden, schauen Sie, ob andere ihn bereits gemeldet haben.

Für diese Aktion ist eine Autorisierung erforderlich.

Dieser Fehler weist darauf hin, dass das Skript nicht über die erforderliche Autorisierung zur Ausführung verfügt. Wenn ein Skript im Skripteditor oder über einen benutzerdefinierten Menüpunkt ausgeführt wird, wird dem Nutzer ein Autorisierungsdialog angezeigt. Wenn ein Skript jedoch über einen Trigger ausgeführt, in eine Google Sites-Seite eingebettet oder als Dienst ausgeführt wird, kann das Dialogfeld nicht angezeigt werden und dieser Fehler wird angezeigt.

Um das Skript zu autorisieren, öffnen Sie den Skripteditor und führen Sie eine Funktion aus. Die Autorisierungsaufforderung wird angezeigt, sodass Sie das Skriptprojekt autorisieren können. Wenn das Skript neue nicht autorisierte Dienste enthält, müssen Sie es noch einmal autorisieren.

Dieser Fehler wird häufig durch Trigger verursacht, die ausgelöst werden, bevor der Nutzer sie autorisiert hat. Wenn Sie keinen Zugriff auf das Skriptprojekt haben (z. B. weil der Fehler bei einem von Ihnen verwendeten Add-on auftritt), können Sie das Skript in der Regel autorisieren, indem Sie es noch einmal verwenden. Wenn ein Trigger weiterhin ausgelöst wird und diesen Fehler verursacht, können Sie die Trigger so entfernen:

  1. Klicken Sie links neben dem Apps Script-Projekt auf Trigger .
  2. Klicken Sie rechts neben dem Trigger, den Sie entfernen möchten, auf das Dreipunkt-Menü > Trigger löschen.

Sie können problematische Add-on-Trigger auch entfernen, indem Sie das Add-on deinstallieren.

Zugriff verweigert: DriveApp oder Drive-Apps von Drittanbietern wurden aufgrund der Domainrichtlinien deaktiviert

Administratoren von Google Workspace -Domains haben die Möglichkeit, die Drive API für ihre Domain zu deaktivieren, sodass ihre Nutzer keine Google Drive-Apps installieren und verwenden können. Außerdem wird mit dieser Einstellung verhindert, dass Nutzer Apps Script-Add-ons verwenden können, die den Drive-Dienst oder den Advanced Drive-Dienst nutzen (auch wenn das Skript vor der Deaktivierung der Drive API durch den Administrator autorisiert wurde).

Wenn jedoch ein Add-on oder eine Webanwendung, die den Drive-Dienst verwendet, für die domainweite Installation veröffentlicht und vom Administrator für einige oder alle Nutzer in der Domain installiert wird, funktioniert das Skript für diese Nutzer, auch wenn die Drive API in der Domain deaktiviert ist.

Das Skript ist nicht berechtigt, die Identität des aktiven Nutzers abzurufen.

Gibt an, dass die Identität und die E-Mail-Adresse des aktiven Nutzers nicht für das Skript verfügbar sind. Diese Warnung ergibt sich aus einem Aufruf von Session.getActiveUser(). Er kann auch aus einem Aufruf von Session.getEffectiveUser() resultieren, wenn das Skript in einem anderen Autorisierungsmodus als AuthMode.FULL ausgeführt wird. Wenn diese Warnung angezeigt wird, wird bei nachfolgenden Aufrufen von User.getEmail() nur „“ zurückgegeben.

Je nach Autorisierungsmodus, in dem das Skript ausgeführt wird, gibt es mehrere Möglichkeiten, diese Warnung zu beheben. Der Autorisierungsmodus wird in ausgelösten Funktionen als Attribut authMode des Ereignisparameters e angegeben.

  • In AuthMode.FULL können Sie stattdessen Session.getEffectiveUser() verwenden.
  • Prüfen Sie in AuthMode.LIMITED, ob der Inhaber das Skript autorisiert hat.
  • In anderen Autorisierungsmodi sollten Sie keine der Methoden aufrufen.
  • Wenn Sie Google Workspace Kunde sind und diese Warnung neu von einem installierbaren Trigger ausgelöst wird, prüfen Sie, ob der Trigger als Nutzer in Ihrer Organisation ausgeführt wird.

Mediathek fehlt

Wenn Sie Ihrem Skript eine häufig genutzte Bibliothek hinzufügen, erhalten Sie möglicherweise eine Fehlermeldung, dass die Bibliothek fehlt, obwohl die Bibliothek als Abhängigkeit für Ihr Skript aufgeführt ist. Das kann daran liegen, dass zu viele Personen gleichzeitig auf die Bibliothek zugreifen. Führen Sie eine der folgenden Lösungsvorschläge durch, um diesen Fehler zu vermeiden:

  • Kopieren Sie den Code der Bibliothek, fügen Sie ihn in Ihr Skript ein und entfernen Sie die Bibliotheksabhängigkeit.
  • Kopieren Sie das Bibliotheksskript und stellen Sie es als Bibliothek aus Ihrem Konto bereit. Achten Sie darauf, die Abhängigkeit in Ihrem ursprünglichen Skript auf die neue Bibliothek anstelle der öffentlichen zu aktualisieren.

Aufgrund einer fehlenden Bibliotheks- oder Bereitstellungsversion ist ein Fehler aufgetreten. Fehlercode Not_Found

Diese Fehlermeldung weist auf einen der folgenden Fehler hin:

  • Die bereitgestellte Version des Skripts wurde gelöscht. Informationen zum Aktualisieren der bereitgestellten Version Ihres Skripts finden Sie unter Versionierte Bereitstellung bearbeiten.
  • Die vom Skript verwendete Version einer Bibliothek wurde gelöscht. Wenn Sie prüfen möchten, welche Bibliothek fehlt, klicken Sie neben dem Namen der Bibliothek auf Mehr > In neuem Tab öffnen. Die fehlende Bibliothek gibt eine Fehlermeldung aus. Wenn Sie die zu aktualisierende Bibliothek gefunden haben, führen Sie eine der folgenden Aktionen aus:
    • Aktualisieren Sie die Bibliothek, um eine andere Version zu verwenden. Siehe Bibliothek aktualisieren.
    • Entfernen Sie die gelöschte Bibliothek aus Ihrem Skriptprojekt und -code. Weitere Informationen finden Sie unter Bibliothek entfernen.
  • Das von Ihrem Skript verwendete Skript einer Bibliothek enthält eine andere Bibliothek, die eine gelöschte Version verwendet. Führen Sie einen der folgenden Schritte aus:
    • Wenn Sie Bearbeitungszugriff auf die von Ihrem Skript verwendete Bibliothek haben, aktualisieren Sie die sekundäre Bibliothek in diesem Skript auf eine vorhandene Version.
    • Aktualisieren Sie die Bibliothek, um eine andere Version zu verwenden. Siehe Bibliothek aktualisieren.
    • Entfernen Sie die Bibliothek aus Ihrem Skriptprojekt und -code. Weitere Informationen finden Sie unter Bibliothek entfernen.

Error 400: invalid_scope beim Aufrufen der Google Chat API mit dem erweiterten Dienst

Wenn Error 400: invalid_scope mit der Fehlermeldung Some requested scopes cannot be shown angezeigt wird, haben Sie in der Datei appsscript.json des Apps Script-Projekts keine Autorisierungsbereiche angegeben. In den meisten Fällen ermittelt Apps Script automatisch, welche Bereiche ein Skript benötigt. Wenn Sie jedoch den erweiterten Chat-Dienst verwenden, müssen Sie die von Ihrem Skript verwendeten Autorisierungsbereiche manuell in die Manifestdatei Ihres Apps Script-Projekts einfügen. Weitere Informationen finden Sie unter Explizite Bereiche festlegen.

Fügen Sie der Datei appsscript.json des Apps Script-Projekts die entsprechenden Autorisierungsbereiche als Teil des Arrays oauthScopes hinzu, um den Fehler zu beheben. Fügen Sie beispielsweise Folgendes hinzu, um die Methode spaces.messages.create aufzurufen:

"oauthScopes": [
  "https://www.googleapis.com/auth/chat.messages.create"
]

Debugging

Nicht alle Fehler führen dazu, dass eine Fehlermeldung angezeigt wird. Möglicherweise liegt ein subtilerer Fehler vor, bei dem der Code technisch korrekt ist und ausgeführt werden kann, aber die Ergebnisse entsprechen nicht Ihren Erwartungen. Im Folgenden finden Sie einige Strategien für den Umgang mit solchen Situationen und die weitere Untersuchung eines Skripts, das nicht wie erwartet ausgeführt wird.

Logging

Beim Debuggen ist es oft hilfreich, Informationen während der Ausführung eines Skriptprojekts aufzuzeichnen. Google Apps Script bietet zwei Methoden zum Protokollieren von Informationen: den Cloud Logging-Dienst und die einfacheren Logger- und Konsolendienste, die in den Apps Script-Editor integriert sind.

Weitere Informationen finden Sie in der Anleitung zur Protokollierung.

Fehlerberichte

Ausnahmen, die aufgrund von Laufzeitfehlern auftreten, werden automatisch mit dem Google Cloud Error Reporting-Dienst aufgezeichnet. Mit diesem Dienst können Sie Ausnahmemeldungen suchen und filtern, die von Ihrem Skriptprojekt erstellt werden.

Informationen zum Zugriff auf Error Reporting finden Sie unter Cloud-Logs und Fehlerberichte in der Google Cloud Platform Console ansehen.

Ausführungen

Jedes Mal, wenn Sie ein Skript ausführen, zeichnet Apps Script die Ausführung auf, einschließlich der Cloud-Logs. Anhand dieser Datensätze können Sie nachvollziehen, welche Aktionen Ihr Skript ausgeführt hat.

Wenn Sie sich die Ausführungen Ihres Skripts im Apps Script-Projekt ansehen möchten, klicken Sie links auf Ausführungen .

Status des Apps Script-Dienstes wird geprüft

In seltenen Fällen treten bei bestimmten Google Workspace-Diensten (z. B. Gmail oder Drive) vorübergehende Probleme auf, die zu Dienstausfällen führen können. In diesem Fall funktionieren Apps Script-Projekte, die mit diesen Diensten interagieren, möglicherweise nicht wie erwartet.

Im Google Workspace-Status-Dashboard können Sie prüfen, ob es einen Ausfall des Google Workspace-Dienstes gibt. Wenn aktuell ein Ausfall auftritt, warten Sie entweder, bis er behoben ist, oder suchen Sie in der Google Workspace-Hilfe oder in der Dokumentation zu bekannten Problemen in Google Workspace nach weiteren Hilfe.

Debugger und Haltepunkte verwenden

Um Probleme in Ihrem Skript zu finden, können Sie es im Debug-Modus ausführen. Im Debug-Modus wird ein Script pausiert, sobald es einen Haltepunkt erreicht. Dies ist eine Zeile, die Sie in Ihrem Script markiert haben und die Ihrer Meinung nach ein Problem aufweist. Wenn ein Skript pausiert, wird der Wert jeder Variablen zu diesem Zeitpunkt angezeigt. So können Sie die Funktionsweise eines Skripts prüfen, ohne viele Logging-Anweisungen hinzufügen zu müssen.

Haltepunkt hinzufügen

Wenn Sie einen Haltepunkt hinzufügen möchten, bewegen Sie den Mauszeiger auf die Zeilennummer der Zeile, der Sie den Haltepunkt hinzufügen möchten. Klicken Sie links neben der Zeilennummer auf den Kreis. Die folgende Abbildung zeigt ein Beispiel für einen Haltepunkt, der einem Skript hinzugefügt wird:

Haltepunkt hinzufügen

Skript im Debug-Modus ausführen

Wenn Sie das Skript im Debug-Modus ausführen möchten, klicken Sie oben im Editor auf Fehler beheben.

Bevor das Skript die Zeile mit dem Haltepunkt ausführt, wird es pausiert und zeigt eine Tabelle mit Informationen zur Fehlerbehebung an. Sie können diese Tabelle verwenden, um Daten wie die Werte von Parametern und die in Objekten gespeicherten Informationen zu überprüfen.

Wenn Sie steuern möchten, wie das Skript ausgeführt wird, können Sie oben im Debugger-Bereich die Schaltflächen „Step in“, „Step over“ und „Step Out“ verwenden. Damit können Sie das Skript Zeile für Zeile ausführen und prüfen, wie sich Werte im Laufe der Zeit ändern.

Probleme mit mehreren Google-Konten

Wenn Sie gleichzeitig in mehreren Google-Konten angemeldet sind, können Sie möglicherweise nicht auf Ihre Add-ons und Webanwendungen zugreifen. Die Mehrfachanmeldung oder die gleichzeitige Anmeldung in mehreren Google-Konten wird für Apps Script, Add-ons und Webanwendungen nicht unterstützt.

  • Wenn Sie den Apps Script-Editor öffnen, während Sie in mehreren Konten angemeldet sind, werden Sie von Google aufgefordert, das Konto auszuwählen, mit dem Sie fortfahren möchten.

  • Wenn Sie eine Webanwendung oder ein Add-on öffnen und Probleme bei der Mehrfachanmeldung auftreten, probieren Sie eine der folgenden Lösungen aus:

    • Melden Sie sich von allen Google-Konten ab und melden Sie sich nur in dem Konto an, das das Add-on oder die Webanwendung enthält, auf die Sie zugreifen möchten.
    • Öffnen Sie ein Inkognitofenster in Google Chrome oder ein gleichwertiges Fenster zum privaten Surfen und melden Sie sich in dem Google-Konto an, in dem sich das Add-on oder die Webanwendung befindet, auf die Sie zugreifen möchten.

Unterstützung erhalten

Wenn Sie ein Problem mit den oben aufgeführten Tools und Techniken beheben, können Sie eine Vielzahl von Problemen lösen. Es können jedoch Probleme auftreten, deren Lösung etwas zusätzliche Hilfe erfordert. Auf unserer Supportseite finden Sie Informationen dazu, wo Sie Fragen stellen und Fehler melden können.