Messaggi di errore

Questo documento descrive i messaggi di errore che potresti riscontrare quando utilizzi BigQuery, inclusi i codici di errore HTTP e i passaggi per la risoluzione dei problemi suggeriti.

Per maggiori informazioni sugli errori delle query, consulta Risolvere gli errori delle query.

Per maggiori informazioni sugli errori di inserimento di flussi di dati, consulta Risoluzione dei problemi relativi all'inserimento di flussi di dati.

Tabella degli errori

Le risposte dell'API BigQuery includono un codice di errore HTTP e un oggetto di errore nel corpo della risposta. Un oggetto errore è in genere uno dei seguenti:

La colonna Messaggio di errore nella seguente tabella è mappata alla proprietà reason in un oggetto ErrorProto.

La tabella non include tutti i possibili errori HTTP o altri errori di rete. Pertanto, non dare per scontato che sia presente un oggetto di errore in ogni risposta di errore di BigQuery. Inoltre, potresti ricevere errori o oggetti di errore diversi se utilizzi le librerie client di Cloud per l'API BigQuery. Per ulteriori informazioni, vedi Librerie client delle API BigQuery.

Se ricevi un codice di risposta HTTP che non appare nella seguente tabella, il codice di risposta indica un problema o un risultato previsto con la richiesta HTTP. I codici di risposta compresi nell'intervallo 5xx indicano un errore lato server. Se ricevi un codice di risposta 5xx, riprova a inviare la richiesta in un secondo momento. In alcuni casi, un codice di risposta 5xx potrebbe essere restituito da un server intermedio, ad esempio un proxy. Esamina il corpo e le intestazioni della risposta per i dettagli sull'errore. Per un elenco completo dei codici di risposta HTTP, consulta la sezione Codici di risposta HTTP.

Se utilizzi lo strumento a riga di comando bq per controllare lo stato del job, per impostazione predefinita l'oggetto errore non viene restituito. Per visualizzare l'oggetto di errore e la proprietà reason corrispondente mappata alla seguente tabella, utilizza il flag --format=prettyjson. Ad esempio: bq --format=prettyjson show -j <job id>. Per visualizzare il logging dettagliato per lo strumento bq, utilizza --apilog=stdout. Per scoprire di più sulla risoluzione dei problemi dello strumento bq, consulta Debug.

Messaggio di errore codice HTTP Descrizione Risoluzione dei problemi
accessDenied 403 Questo errore viene restituito quando provi ad accedere a una risorsa come un set di dati, una tabella, una vista o un job a cui non hai accesso. Questo errore viene restituito anche quando provi a modificare un oggetto di sola lettura. Contatta il proprietario della risorsa e richiedi l'accesso alla risorsa per l'utente identificato dal valore principalEmail nell'audit log dell'errore.
backendError 500 o 503 Questo errore viene restituito in caso di errore temporaneo del server, ad esempio un problema di connessione di rete o un sovraccarico del server. In genere, attendi qualche secondo e riprova. Se il problema si è verificato di nuovo, riprova con il backoff esponenziale. Tuttavia, esistono due casi speciali per risolvere questo errore: chiamate jobs.get e chiamate jobs.insert.

jobs.get chiamate

  • Se hai ricevuto un errore 503 durante il polling jobs.get, attendi qualche secondo e poi esegui di nuovo il sondaggio.
  • Se il job viene completato ma include un oggetto di errore che contiene backendError, il job non è riuscito. Puoi riprovare a eseguire il job in tutta sicurezza senza preoccuparti della coerenza dei dati.

jobs.insert chiamate

Se ricevi questo errore quando effettui una chiamata a jobs.insert, non è chiaro se il job è riuscito. In questa situazione, dovrai riprovare a eseguire il job.

badRequest 400 L'errore 'UPDATE or DELETE statement over table <project.dataset.table> would affect rows in the streaming buffer, which is not supported' può verificarsi quando alcune righe di una tabella trasferite di recente potrebbero non essere disponibili per le operazioni DML (DELETE, UPDATE, MERGE), in genere per alcuni minuti ma in rari casi fino a 90 minuti. Per maggiori informazioni, consulta Disponibilità dei flussi di dati e Limitazioni DML. Per verificare se i dati sono disponibili per le operazioni DML delle tabelle, controlla la risposta tables.get per la sezione streamingBuffer. Se non è presente la sezione streamingBuffer, i dati della tabella sono disponibili per le operazioni DML. Puoi anche utilizzare il campo streamingBuffer.oldestEntryTime per identificare l'età dei record nel buffer del flusso.
billingNotEnabled 403 Questo errore viene restituito quando la fatturazione non è abilitata per il progetto. Abilita la fatturazione per il progetto nella console Google Cloud.
billingTierLimitExceeded 400 Questo errore viene restituito quando il valore di statistics.query.billingTier per un job on demand supera 100. Questo si verifica quando le query on demand utilizzano troppa CPU rispetto alla quantità di dati analizzati. Per istruzioni su come esaminare le statistiche dei job, consulta Gestione dei job. Questo errore molto spesso deriva dall'esecuzione di cross-join inefficienti, in modo esplicito o implicito, ad esempio a causa di una condizione di join inesatta. Questi tipi di query non sono adatti ai prezzi on demand a causa dell'elevato consumo di risorse e in generale potrebbero non essere scalabili correttamente. Puoi ottimizzare la query o passare al modello a costo fisso per risolvere questo errore. Per informazioni sull'ottimizzazione delle query, consulta Evitare gli anti-pattern SQL.
bloccato 403 Questo errore viene restituito quando BigQuery ha inserito temporaneamente nella lista bloccata l'operazione che hai tentato di eseguire, in genere per evitare un'interruzione del servizio. Per ulteriori informazioni, contatta l'assistenza.
duplicare 409 Questo errore viene restituito quando si cerca di creare un job, un set di dati o una tabella già esistente. L'errore viene restituito anche quando la proprietà writeDisposition di un job è impostata su WRITE_EMPTY e la tabella di destinazione a cui accede il job esiste già. Rinomina la risorsa che stai cercando di creare oppure modifica il valore writeDisposition nel job.
internalError 500 Questo errore viene restituito quando si verifica un errore interno in BigQuery. Attendi in base ai requisiti di backoff descritti nell'Accordo sul livello del servizio di BigQuery, quindi riprova a eseguire l'operazione. Se l'errore persiste, contatta l'assistenza o segnala un bug utilizzando lo strumento di monitoraggio dei problemi di BigQuery. Puoi anche provare a ridurre la frequenza di questo errore utilizzando Prenotazioni.
non valido 400 Questo errore viene restituito quando è presente un qualsiasi tipo di input non valido diverso da una query non valida, ad esempio campi obbligatori mancanti o uno schema di tabella non valido. Le query non valide restituiscono un errore invalidQuery.
invalidQuery 400 Questo errore viene restituito quando tenti di eseguire una query non valida. Controlla che nella query non siano presenti errori di sintassi. Il riferimento alle query contiene descrizioni ed esempi di come creare query valide.
invalidUser 400 Questo errore viene restituito quando tenti di pianificare una query con credenziali utente non valide. Aggiorna le credenziali utente, come spiegato in Pianificazione delle query.
jobBackendError 400 Questo errore viene restituito quando il job è stato creato, ma non è riuscito, a causa di un errore interno. Potresti visualizzare questo errore in jobs.query o jobs.getQueryResults. Riprova a eseguire il job con un nuovo jobId. Se l'errore persiste, contatta l'assistenza.
jobInternalError 400 Questo errore viene restituito quando il job è stato creato, ma non è riuscito, a causa di un errore interno. Potresti visualizzare questo errore in jobs.query o jobs.getQueryResults. Riprova a eseguire il job con un nuovo jobId. Se l'errore persiste, contatta l'assistenza.
notFound 404 Questo errore viene restituito quando fai riferimento a una risorsa (un set di dati, una tabella o un job) che non esiste o quando la località nella richiesta non corrisponde a quella della risorsa (ad esempio la località in cui è in esecuzione un job). Questo problema può verificarsi anche quando si utilizzano decoratori di tabelle per fare riferimento a tabelle eliminate di cui è stato recentemente inviato un flusso di dati. Correggi i nomi delle risorse, specifica correttamente la località o attendi almeno 6 ore dopo il flusso di dati prima di eseguire una query su una tabella eliminata.
notImplemented 501 Questo errore del job viene restituito quando provi ad accedere a una funzionalità non implementata. Per ulteriori informazioni, contatta l'assistenza.
quotaExceeded 403 Questo errore viene restituito quando il progetto supera una quota BigQuery o una quota personalizzata oppure quando non hai configurato la fatturazione e hai superato il livello gratuito per le query. Visualizza la proprietà message dell'oggetto di errore per ulteriori informazioni su quale quota è stata superata. Per reimpostare o aumentare una quota BigQuery, contatta l'assistenza. Per modificare una quota personalizzata, invia una richiesta dalla pagina della console Google Cloud. Se ricevi questo errore utilizzando la sandbox di BigQuery, puoi eseguire l'upgrade dalla sandbox.

Per maggiori informazioni, consulta la sezione Risoluzione degli errori di quota di BigQuery.

rateLimitExceeded 403 Questo errore viene restituito se il progetto supera un limite di frequenza a breve termine inviando troppe richieste troppo rapidamente. Ad esempio, consulta i limiti di frequenza per i job di query e i limiti di frequenza per le richieste API. Rallenta la tasso di richieste.

Se ritieni che il tuo progetto non abbia superato uno di questi limiti, contatta l'assistenza.

Per maggiori informazioni, consulta la sezione Risoluzione degli errori di quota di BigQuery.

resourceInUse 400 Questo errore viene restituito quando provi a eliminare un set di dati contenente tabelle o quando provi a eliminare un job attualmente in esecuzione. Svuota il set di dati prima di tentare di eliminarlo o attendi il completamento di un job prima di eliminarlo.
resourcesExceeded 400 Questo errore viene restituito quando il job utilizza troppe risorse. Questo errore viene restituito quando il job utilizza troppe risorse. Per informazioni sulla risoluzione dei problemi, consulta la pagina Risolvere gli errori di superamento delle risorse.
responseTooLarge 403 Questo errore viene restituito quando i risultati della query superano la dimensione massima della risposta. Alcune query vengono eseguite in più fasi e questo errore viene restituito quando ogni fase restituisce una risposta di dimensioni troppo grandi, anche se il risultato finale è inferiore al limite massimo. In genere questo errore viene restituito quando le query utilizzano una clausola ORDER BY. A volte l'aggiunta di una clausola LIMIT può essere d'aiuto, mentre la rimozione della clausola ORDER BY. Se vuoi assicurarti che vengano restituiti risultati di grandi dimensioni, puoi impostare la proprietà allowLargeResults su true e specificare una tabella di destinazione. Per maggiori informazioni, consulta la sezione Scrittura di risultati di query di grandi dimensioni.
operazione interrotta 200 Questo codice di stato viene restituito quando un job viene annullato.
tableUnavailable 400 Alcune tabelle BigQuery sono supportate da dati gestiti da altri team di prodotto Google. Questo errore indica che una di queste tabelle non è disponibile. Quando visualizzi questo messaggio di errore, puoi ritentare la richiesta (vedi i suggerimenti per la risoluzione dei problemi di internalError) o contattare il team di prodotto di Google che ti ha concesso l'accesso ai suoi dati.
timeout 400 Timeout del job. Valuta la possibilità di ridurre la quantità di lavoro eseguita dalla tua operazione in modo che possa essere completata entro il limite impostato. Consulta Quote e limiti.

Esempio di risposta di errore

GET https://bigquery.googleapis.com/bigquery/v2/projects/12345/datasets/foo
Response:
[404]
{
  "error": {
  "errors": [
  {
    "domain": "global",
    "reason": "notFound",
    "message": "Not Found: Dataset myproject:foo"
  }],
  "code": 404,
  "message": "Not Found: Dataset myproject:foo"
  }
}

Errori di autenticazione

Gli errori generati dal sistema di generazione dei token OAuth restituiscono il seguente oggetto JSON, come definito dalla specifica OAuth2.

{"error" : "description_string"}

L'errore è accompagnato da un errore HTTP 400 Richiesta non valida o da un errore HTTP 401 Non autorizzato. description_string è uno dei codici di errore definiti dalla specifica OAuth2. Ad esempio:

{"error":"invalid_client"}

Torna all'inizio

Messaggi di errore della console Google Cloud

La seguente tabella elenca i messaggi di errore che potresti visualizzare mentre utilizzi la console Google Cloud.

Messaggio di errore Descrizione Risoluzione dei problemi
Risposta di errore sconosciuta del server. Questo errore viene visualizzato quando la console Google Cloud riceve un errore sconosciuto dal server, ad esempio quando fai clic su un set di dati o su un altro tipo di link e la pagina non può essere visualizzata. Prova a passare alla modalità di navigazione in incognito o privata del browser e a ripetere l'azione che ha generato l'errore. Se nella modalità di navigazione in incognito non si verifica alcun errore, l'errore potrebbe essere dovuto a un'estensione del browser, ad esempio un blocco degli annunci. Prova a disattivare le estensioni del browser in modalità di navigazione in incognito e controlla se il problema si risolve.

Torna all'inizio