Fehlerbehebung

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

Fehlermeldungen

Wenn in Ihrem Skript ein Fehler auftritt, wird eine Fehlermeldung angezeigt. Die Meldung wird durch eine Zeilennummer für die Fehlerbehebung begleitet. Es gibt zwei grundlegende Fehlertypen, die auf diese Weise angezeigt werden: Syntaxfehler und Laufzeitfehler.

Syntaxfehler

Syntaxfehler werden durch das Schreiben von Code verursacht, der nicht der JavaScript-Grammatik folgt. Die Fehler 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 gefunden 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 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. Beim Aufrufen von MailApp.sendEmail wird jedoch der Wert „john“ als 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-Adresse: max (Zeile 5)

Was die Fehlerbehebung bei diesen Fehlern erschwert, ist, dass die Daten, die Sie an eine Funktion übergeben, oft nicht im Code geschrieben sind, sondern aus einer Tabelle, einem Formular oder einer anderen externen Datenquelle abgerufen werden. Mit den folgenden Techniken zur Fehlerbehebung können Sie die Ursache dieser Fehler ermitteln.

Häufige Fehler

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

Dienst zu oft aufgerufen: <Aktionsname>

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

Der Server ist nicht verfügbar. oder Ein Serverfehler ist aufgetreten. 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 einen Moment und versuchen Sie dann noch einmal, das Skript auszuführen.
  • Ihr Skript enthält einen Fehler, für den es keine entsprechende Fehlermeldung gibt. Versuchen Sie, den Fehler in Ihrem Skript zu beheben. So können Sie das Problem eingrenzen.
  • Dieser Fehler wird durch einen Programmfehler in Google Apps Script verursacht. Eine Anleitung zum Suchen und Einreichen von Fehlerberichten finden Sie unter Fehlerberichte. Bevor Sie einen neuen Fehler melden, prüfen Sie, ob andere ihn bereits gemeldet haben.

Zum Ausführen dieser Aktion ist eine Autorisierung erforderlich.

Dieser Fehler weist darauf hin, dass dem Skript die erforderliche Autorisierung zum Ausführen fehlt. Wenn ein Skript im Skripteditor oder über einen benutzerdefinierten Menüpunkt ausgeführt wird, wird dem Nutzer ein Dialogfeld zur Autorisierung angezeigt. Wenn ein Skript jedoch über einen Trigger, eingebettet in eine Google Sites-Seite 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 beliebige Funktion aus. Die Autorisierungsaufforderung wird angezeigt, damit 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, weil der Fehler beispielsweise bei einem von Ihnen verwendeten Add-on auftritt, können Sie das Skript in der Regel wieder autorisieren. 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, wodurch ihre Nutzer daran gehindert werden, Google Drive-Anwendungen zu installieren und zu verwenden. Außerdem wird durch diese Einstellung verhindert, dass Nutzer Apps Script-Add-ons verwenden können, die den Drive-Dienst oder den erweiterten Drive-Dienst verwenden. Dies gilt auch dann, wenn das Skript autorisiert wurde, bevor der Administrator die Drive API deaktiviert hat.

Wenn jedoch ein Add-on oder eine Webanwendung, die Google Drive 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 dann, 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 E-Mail-Adresse des aktiven Nutzers für das Skript nicht 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 das Attribut authMode des Ereignisparameters e bereitgestellt.

  • In AuthMode.FULL können Sie stattdessen Session.getEffectiveUser() verwenden.
  • Prüfen Sie in AuthMode.LIMITED, ob der Inhaber das Skript autorisiert hat.
  • Vermeiden Sie es bei anderen Autorisierungsmodi, eine der beiden Methoden aufzurufen.
  • Wenn Sie als Google Workspace Kunde diese Warnung neu von einem installierbaren Trigger erhalten, muss der Trigger als Nutzer in Ihrer Organisation ausgeführt werden.

Mediathek fehlt

Wenn Sie Ihrem Skript eine beliebte Bibliothek hinzufügen, erhalten Sie möglicherweise eine Fehlermeldung, dass diese Bibliothek fehlt, obwohl die Bibliothek als Abhängigkeit für Ihr Skript aufgeführt ist. Möglicherweise greifen zu viele Personen gleichzeitig auf die Bibliothek zu. Um diesen Fehler zu vermeiden, versuchen Sie eine der folgenden Lösungen:

  • 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 im ursprünglichen Skript auf die neue Bibliothek und nicht auf die öffentliche zu aktualisieren.

Ein Fehler ist aufgrund einer fehlenden Bibliotheks- oder Bereitstellungsversion aufgetreten. Fehlercode „Not_Found“

Diese Fehlermeldung deutet auf einen der folgenden Fälle 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 du prüfen möchtest, welche Bibliothek fehlt, klicke neben dem Namen der Bibliothek auf das Dreipunkt-Menü > In neuem Tab öffnen. Die fehlende Bibliothek gibt eine Fehlermeldung aus. Wenn du die Bibliothek gefunden hast, die du aktualisieren musst, führe 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 Skript einer Bibliothek, die Ihr Skript verwendet, 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 keine Autorisierungsbereiche in der Datei appsscript.json des Apps Script-Projekts 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 zur Manifestdatei Ihres Apps Script-Projekts hinzufügen. Siehe Explizite Bereiche festlegen.

Fügen Sie der Datei appsscript.json des Apps Script-Projekts die entsprechenden Autorisierungsbereiche als Teil des oauthScopes-Arrays 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 zu einer Fehlermeldung. Es kann ein subtilerer Fehler vorliegen, bei dem der Code technisch korrekt ist und ausgeführt werden kann, aber die Ergebnisse entsprechen nicht Ihren Erwartungen. Im Folgenden finden Sie Strategien zum Umgang mit solchen Situationen und zur weiteren Untersuchung eines Skripts, das nicht wie erwartet ausgeführt wird.

Logging

Bei der Fehlerbehebung ist es oft hilfreich, Informationen bei der Ausführung eines Skriptprojekts aufzuzeichnen. Google Apps Script bietet zwei Methoden zur Protokollierung von Informationen: den Cloud-Logging-Dienst und die einfacheren Protokollierungs- und Konsolendienste, die in den Apps Script-Editor integriert sind.

Weitere Informationen finden Sie im Leitfaden für die 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 Ihr Skriptprojekt erstellt.

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 Script ausgeführt hat.

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

Apps Script-Dienststatus prüfen

In seltenen Fällen treten bei bestimmten Google Workspace-Diensten wie 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 ein Google Workspace-Dienstausfall vorliegt. Wenn ein Ausfall derzeit auftritt, warten Sie entweder auf dessen Behebung oder suchen Sie in der Google Workspace-Hilfe oder in der Dokumentation zu bekannten Problemen in Google Workspace weitere Hilfe.

Debugger und Haltepunkte verwenden

Wenn Sie in Ihrem Script Probleme finden möchten, können Sie es im Debug-Modus ausführen. Im Debug-Modus wird ein Script angehalten, wenn es einen Haltepunkt erreicht. Das ist eine Zeile, die Sie in Ihrem Script markiert haben und die Ihrer Meinung nach ein Problem haben könnte. Wenn ein Skript pausiert wird, wird zu diesem Zeitpunkt der Wert jeder Variablen angezeigt. So können Sie die Funktionsweise eines Skripts untersuchen, 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 wurde:

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, pausiert es 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.

Über die Schaltflächen „Step In“, „Step Over“ und „Step Out“ können Sie oben im Debugger-Bereich steuern, wie das Script ausgeführt wird. Damit können Sie das Skript zeilenweise ausführen und prüfen, wie sich die Werte im Laufe der Zeit ändern.

Probleme mit mehreren Google-Konten

Wenn Sie in mehreren Google-Konten gleichzeitig angemeldet sind, haben Sie möglicherweise Probleme beim Zugriff auf Ihre Add-ons und Webanwendungen. 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 mehr als einem Konto 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 bei der Mehrfachanmeldung Probleme auftreten, versuchen Sie es mit einer der folgenden Lösungen:

    • Melden Sie sich von allen Google-Konten ab und melden Sie sich nur in dem Konto an, in dem sich das Add-on oder die Webanwendung befindet, auf die Sie zugreifen möchten.
    • Öffnen Sie in Google Chrome oder ein entsprechendes privates Browserfenster ein Inkognitofenster 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 auch Probleme auftreten, die zusätzliche Hilfe erfordern. Auf unserer Supportseite erfahren Sie, wo Sie Fragen stellen und Fehler melden können.