Anche lo sviluppatore più esperto raramente scrive codice corretto al primo tentativo, il che rende la risoluzione dei problemi una parte importante del processo di sviluppo. Questa sezione illustra le tecniche per trovare, comprendere ed eseguire il debug degli errori negli script.
Messaggi di errore
Quando lo script rileva un errore, viene visualizzato un messaggio di errore con un numero di riga. Esistono due tipi di errori di base: errori di sintassi ed errori di runtime.
Errori di sintassi
Gli errori di sintassi si verificano quando il codice non segue la grammatica JavaScript e vengono rilevati quando salvi lo script. Ad esempio, il seguente snippet contiene un errore di sintassi:
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);
}
Il problema è un carattere ) mancante alla fine della riga 4. Quando salvi lo script, viene visualizzato il seguente errore:
Manca ) dopo l'elenco degli argomenti. (riga 4)
Questi errori vengono rilevati immediatamente, il che ne semplifica la risoluzione. Nel progetto viene salvato solo il codice valido.
Errori di runtime
Gli errori di runtime si verificano quando una funzione o una classe viene utilizzata in modo errato e vengono rilevati durante l'esecuzione dello script. Ad esempio, il seguente codice causa un errore di runtime:
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);
}
Anche se il codice è formattato correttamente, "john" non è un indirizzo email valido. Viene visualizzato il seguente errore:
Indirizzo email non valido: john (riga 5)
Questi errori sono difficili da risolvere perché i dati vengono spesso estratti da fonti esterne come fogli di lavoro o moduli. Utilizza tecniche di debug per identificare la causa.
Errori comuni
Di seguito è riportato un elenco degli errori più comuni e delle relative cause.
Servizio richiamato troppe volte: <nome azione>
Questo errore indica che hai superato la quota giornaliera per un'azione, ad esempio l'invio di un numero eccessivo di email. Le quote variano in base al tipo di account e sono soggette a modifiche. Visualizza i limiti nella documentazione relativa alla quota di Apps Script.
Server non disponibile. o Si è verificato un errore del server. Riprova.
Le possibili cause includono:
- Un server Google non è al momento disponibile. Attendi e riprova.
- Un errore nello script non ha un messaggio corrispondente. Prova a eseguire il debug per isolare il problema.
- Esiste un bug in Google Apps Script. Cerca e invia segnalazioni di bug in Bug.
Per eseguire questa azione è richiesta l'autorizzazione.
Lo script non dispone dell'autorizzazione necessaria per essere eseguito. Quando uno script viene eseguito da un trigger o come servizio, non è possibile presentare una finestra di dialogo di autorizzazione.
Per autorizzare lo script, apri l'editor di script ed esegui una funzione qualsiasi. Se lo script utilizza nuovi servizi non autorizzati, devi autorizzarlo di nuovo.
I trigger che vengono attivati prima dell'autorizzazione o dopo la scadenza spesso causano questo errore. Se la causa è un componente aggiuntivo, utilizzalo di nuovo per autorizzarlo. Rimuovi gli attivatori problematici:
- Nel progetto Apps Script, fai clic su Trigger .
- Accanto al trigger, fai clic su Altro > Elimina trigger.
In alternativa, disinstalla il componente aggiuntivo.
Anche le autorizzazioni granulari possono causare questi errori. Consulta la pagina Ambiti di autorizzazione per proteggere le esecuzioni dei trigger.
Accesso negato: DriveApp o The domain policy has disabled third-party Drive apps
Gli amministratori di Google Workspace possono disattivare l'API Drive per il proprio dominio, impedendo agli utenti di utilizzare app Drive o componenti aggiuntivi di Apps Script che utilizzano il servizio Drive.
Se un componente aggiuntivo o un'app web viene pubblicato per l'installazione a livello di dominio e installato da un amministratore, le funzioni dello script vengono eseguite anche se l'API Drive è disattivata.
Lo script non è autorizzato a ottenere l'identità dell'utente attivo.
L'identità e l'email dell'utente attivo non sono disponibili. Ciò è dovuto alle chiamate
a Session.getActiveUser()
o Session.getEffectiveUser()
in modalità di autorizzazione diverse da AuthMode.FULL.
Se lo script viene eseguito su un trigger, puoi trovare la modalità di autorizzazione nella proprietà
authMode dell'oggetto evento Apps Script.
Risolvi il problema in base alla modalità di autorizzazione:
- In
AuthMode.FULL, valuta la possibilità di utilizzareSession.getEffectiveUser()in alternativa. - In
AuthMode.LIMITED, assicurati che il proprietario abbia autorizzato lo script. - Nelle altre modalità di autorizzazione, evita di chiamare entrambi i metodi.
- Se sei un cliente Google Workspace che ha iniziato a visualizzare questo avviso da un trigger installabile, assicurati che il trigger venga eseguito come utente all'interno della tua organizzazione.
Libreria mancante
Una libreria potrebbe essere segnalata come mancante se troppe persone vi accedono contemporaneamente. Per risolvere questo problema:
- Copia il codice della libreria direttamente nello script.
- Copia e implementa la libreria dal tuo account.
- Se la libreria non è necessaria per il funzionamento dello script, rimuovila dal progetto di script.
Si è verificato un errore a causa di una versione mancante della libreria o di una versione del deployment. Codice di errore Not_Found
Questo messaggio di errore indica una delle seguenti condizioni:
- La versione dello script utilizzata da un deployment è stata eliminata. Per risolvere il problema, modifica il deployment e seleziona una versione dello script diversa.
- Una versione della libreria utilizzata dallo script è stata eliminata. Per risolvere il problema, nell'editor di script, in "Librerie", trova la libreria e aggiornala a una versione diversa o rimuovila. Per eseguire l'aggiornamento, fai clic sul numero di versione e seleziona una versione diversa. Per rimuovere, fai clic su Altro > Rimuovi.
- Una biblioteca include un'altra biblioteca e la versione di quest'ultima è stata eliminata. Per risolvere il problema, contatta l'autore della libreria o utilizza una versione diversa della libreria utilizzata dallo script.
Errore 400: invalid_scope durante la chiamata all'API Google Chat con il servizio avanzato
Se riscontri Error 400: invalid_scope con il messaggio di errore
Some requested scopes cannot be shown,
significa che non hai specificato ambiti di autorizzazione nel
file appsscript.json del progetto Apps Script. Nella maggior parte dei casi,
Apps Script determina automaticamente gli ambiti necessari a uno script,
ma quando utilizzi il servizio avanzato Chat, devi aggiungere manualmente
gli ambiti di autorizzazione utilizzati dallo script al
file manifest del progetto Apps Script. Consulta Impostazione di ambiti espliciti.
Per risolvere l'errore, aggiungi gli ambiti di autorizzazione appropriati
al file appsscript.json del progetto Apps Script come parte
dell'array oauthScopes. Ad esempio, per chiamare il metodo
spaces.messages.create, aggiungi quanto segue:
"oauthScopes": [
"https://www.googleapis.com/auth/chat.messages.create"
]
Le chiamate UrlFetch a <URL> non sono consentite dal tuo amministratore
Gli amministratori di Google Workspace possono utilizzare una lista consentita per controllare l'accesso ai domini esterni. Contatta l'amministratore per aggiungere l'URL alla lista consentita.
Debug
Alcuni errori sono sottili e non attivano messaggi. Ad esempio, il codice potrebbe essere eseguito, ma i risultati sono inaspettati. Utilizza le seguenti strategie per esaminare gli script che si comportano in modo imprevisto.
Logging
Registra le informazioni durante l'esecuzione di uno script utilizzando il servizio Cloud Logging o i servizi Logger e console nell'editor di script.
Error Reporting
Per utilizzare Error Reporting in Google Cloud, utilizza un progetto standard gestito dall'utente anziché un progetto predefinito.
Quando utilizzi un progetto standard, gli errori di runtime vengono registrati automaticamente in Google Cloud Error Reporting. Visualizza i log di Cloud e i report sugli errori nella console Google Cloud.
Esecuzioni
Google Apps Script registra ogni esecuzione, inclusi i log Cloud. Per visualizzare le esecuzioni, fai clic su Esecuzioni .
Controllo dello stato del servizio in corso…
Verifica la presenza di interruzioni del servizio Google Workspace nella Dashboard dello stato di Google Workspace.
Utilizzare il debugger e i punti di interruzione
Per individuare i problemi nello script, puoi eseguirlo in modalità di debug. Quando viene eseguito in modalità di debug, uno script si interrompe quando raggiunge un punto di interruzione, ovvero una riga che hai evidenziato nello script e che ritieni possa presentare un problema. Quando uno script viene messo in pausa, mostra il valore di ogni variabile in quel momento, consentendoti di esaminare il funzionamento interno di uno script senza dover aggiungere molte istruzioni di logging.
Aggiungere un punto di interruzione
Per aggiungere un punto di interruzione, passa il mouse sopra il numero di riga della riga a cui vuoi aggiungere il punto di interruzione. A sinistra del numero di riga, fai clic sul cerchio. L'immagine seguente mostra un esempio di punto di interruzione aggiunto a uno script:

Esegui uno script in modalità di debug
Per eseguire lo script in modalità di debug, fai clic su Debug nella parte superiore dell'editor.
Prima che lo script esegua la riga con il punto di interruzione, si interrompe e mostra una tabella di informazioni di debug. Puoi utilizzare questa tabella per esaminare dati come i valori dei parametri e le informazioni memorizzate negli oggetti.
Per controllare l'esecuzione dello script, utilizza i pulsanti "Esegui passo passo", "Salta" ed "Esci" nella parte superiore del riquadro del debugger. Questi ti consentono di eseguire lo script una riga alla volta e di esaminare come cambiano i valori nel tempo.
Errore: il codice sorgente per la riga corrente non è disponibile

Questo errore viene visualizzato quando non è disponibile un file di debug attivo.
Google Apps Script non supporta la visualizzazione di script JavaScript (JS) generati dinamicamente nell'editor di script, come quelli generati utilizzando eval() e new Function(). Questi script vengono creati ed eseguiti
all'interno del motore V8, ma non sono rappresentati come file autonomi nell'editor.
Se esegui il debug di questi script, si verifica questo errore.
Ad esempio, considera il seguente codice:
function myFunction() {
eval('a=2');
}
Quando viene richiamato eval(), il relativo argomento viene trattato come codice JS ed eseguito come
script creato dinamicamente all'interno del motore V8. Se esegui il debug passo passo di eval(), viene visualizzato questo
errore. Se lo script include un commento //# sourceURL, il relativo nome
viene visualizzato nello stack di chiamate. In caso contrario, viene visualizzato come voce senza nome.
Nonostante il messaggio di errore, la sessione di debug rimane attiva e l'esecuzione può continuare. Per procedere, continua con l'esecuzione di step in, step out o riprendi. Tuttavia, questo errore continua a essere visualizzato finché l'esecuzione rimane nell'ambito dello script dinamico. Dopo che l'esecuzione esce dallo script dinamico, il debug continua senza questo errore.
Problemi con più Account Google
Se hai eseguito l'accesso a più Account Google contemporaneamente, potresti avere difficoltà ad accedere ai tuoi componenti aggiuntivi e alle tue app web. L'accesso multiplo o l'accesso a più Account Google contemporaneamente non è supportato per Apps Script, i componenti aggiuntivi o le app web.
Se apri l'editor Apps Script dopo aver eseguito l'accesso a più di un account, Google ti chiede di scegliere l'account che vuoi utilizzare.
Se apri un'app web o un componente aggiuntivo e riscontri problemi di accesso multiplo, prova una delle seguenti soluzioni:
- Esci da tutti i tuoi Account Google e accedi solo a quello che contiene il componente aggiuntivo o l'app web a cui vuoi accedere.
- Apri una finestra di navigazione in incognito in Google Chrome o una finestra di navigazione privata equivalente e accedi all'Account Google che contiene il componente aggiuntivo o l'app web a cui vuoi accedere.
Richiesta di aiuto
Visita la nostra pagina di assistenza per porre domande o segnalare bug.