Mensajes de error
En este documento se describen los mensajes de error que pueden aparecer al trabajar con BigQuery, como códigos de error de HTTP y pasos sugeridos para solucionar problemas.
Para obtener más información sobre los errores de consulta, consulta el artículo Solucionar errores de consulta.
Para obtener más información sobre los errores de inserción de transmisión, consulta el artículo Solucionar problemas de inserciones de transmisión.
Tabla de errores
Las respuestas de la API BigQuery incluyen un código de error HTTP y un objeto de error en el cuerpo de la respuesta. Un objeto de error suele ser uno de los siguientes:
- Un objeto
errors, que contiene una matriz de objetosErrorProto. - Un
errorResultsobjeto, que contiene un soloErrorProtoobjeto.
La columna Mensaje de error de la siguiente tabla se corresponde con la propiedad reason de un objeto ErrorProto.
La tabla no incluye todos los errores HTTP posibles ni otros errores de red. Por lo tanto, no supongas que un objeto de error está presente en todas las respuestas de error de BigQuery. Además, es posible que recibas errores u objetos de error diferentes si usas las bibliotecas de cliente de Cloud para la API de BigQuery. Para obtener más información, consulta las bibliotecas de cliente de la API de BigQuery.
Si recibes un código de respuesta HTTP que no aparece en la siguiente tabla, significa que hay un problema o un resultado esperado con la solicitud HTTP. Los códigos de respuesta del intervalo 5xx indican que se ha producido un error del lado del servidor. Si recibes el código de respuesta 5xx, vuelve a intentar la solicitud más tarde. En algunos casos, un servidor intermedio, como un proxy, puede devolver un código de respuesta 5xx. Examina el cuerpo y los encabezados de la respuesta para obtener información sobre el error. Para ver una lista completa de códigos de respuesta HTTP, consulta Códigos de respuesta HTTP.
Si usas la herramienta de línea de comandos bq para comprobar el estado de un trabajo, el objeto de error no se devuelve de forma predeterminada. Para ver el objeto de error y la propiedad reason correspondiente que se asigna a la siguiente tabla, usa la marca --format=prettyjson. Por ejemplo, bq --format=prettyjson show -j
*<job id>*. Para ver los registros detallados de la herramienta bq, usa
--apilog=stdout. Para obtener más información sobre cómo solucionar problemas con la herramienta bq, consulta Depuración.
| Mensaje de error | Código HTTP | Descripción | Solución de problemas |
|---|---|---|---|
| accessDenied | 403 |
Este error se devuelve cuando intentas acceder a un recurso, como un conjunto de datos, una tabla, una vista o un trabajo, al que no tienes acceso. Este error también se devuelve cuando intentas modificar un objeto de solo lectura. |
Ponte en contacto con el propietario del recurso y solicita acceso al recurso para el usuario identificado por el valor |
| attributeError | 400 |
Este error se devuelve cuando hay un problema con el código de usuario en el que se llama a un atributo de objeto determinado, pero no existe. |
Asegúrate de que el objeto con el que estás trabajando tenga el atributo al que intentas acceder. Para obtener más información sobre este error, consulta AttributeError. |
| backendError | 500, 503 o 504 |
Este error indica que el servicio no está disponible en este momento. Esto puede deberse a varios problemas transitorios, como los siguientes:
|
Los errores 5xx son problemas del lado del servicio y el cliente no puede corregirlos ni controlarlos. Desde el lado del cliente, para mitigar el impacto de los errores 5xx, debes volver a enviar las solicitudes mediante retardos exponenciales truncados. Para obtener más información sobre los tiempos de espera exponenciales, consulta el artículo Tiempo de espera exponencial. Sin embargo, hay dos casos especiales para solucionar este error: las llamadas
Si los reintentos no son eficaces y los problemas persisten, puedes calcular la tasa de solicitudes fallidas y ponerte en contacto con el equipo de Asistencia. |
| badRequest | 400 |
El error |
Espera unos minutos y vuelve a intentarlo, o filtra el extracto para que solo se aplique a los datos más antiguos que estén fuera del búfer de streaming. Para comprobar si hay datos disponibles para las operaciones de DML de tablas, consulta la También puedes transmitir datos con la API Storage Write de BigQuery, que no tiene esta limitación. |
| billingNotEnabled | 403 |
Este error se devuelve cuando la facturación no está habilitada en el proyecto. |
Habilita la facturación del proyecto en la Google Cloud consola. |
| billingTierLimitExceeded | 400 |
Este error se devuelve cuando el valor de
|
Este error suele producirse al ejecutar combinaciones cruzadas ineficientes, ya sea de forma explícita o implícita, por ejemplo, debido a una condición de combinación inexacta. Estos tipos de consultas no son adecuados para los precios bajo demanda debido al alto consumo de recursos y, en general, es posible que no se escalen bien. Para resolver este error, puede optimizar la consulta o cambiar al modelo de precios basado en la capacidad (slots). Para obtener información sobre cómo optimizar las consultas, consulta Evitar antipatrones de SQL. |
| bloqueado | 403 |
Este error se devuelve cuando BigQuery ha incluido temporalmente en una lista de denegación la operación que has intentado realizar, normalmente para evitar una interrupción del servicio. |
Ponte en contacto con el equipo de Asistencia para obtener más información. |
| duplicar | 409 |
Este error se devuelve al intentar crear un trabajo, un conjunto de datos o una tabla que ya existen. El error también se devuelve cuando la propiedad |
Cambia el nombre del recurso que estás intentando crear o modifica el valor de |
| internalError | 500 |
Este error se devuelve cuando se produce un error interno en BigQuery. |
Espera según los requisitos de retardo que se describen en el Acuerdo de Nivel de Servicio de BigQuery y, a continuación, vuelve a intentar la operación. Si el error persiste, ponte en contacto con el equipo de Asistencia o registra un error mediante el sistema de seguimiento de problemas de BigQuery. También puedes reducir la frecuencia de este error usando Reservas. |
| no válido | 400 |
Este error se devuelve cuando hay algún tipo de entrada no válida que no sea una consulta no válida, como campos obligatorios que faltan o un esquema de tabla no válido.
Las consultas no válidas devuelven un error |
|
| invalidQuery | 400 |
Este error se devuelve cuando intentas ejecutar una consulta no válida. |
Comprueba si hay errores de sintaxis en tu consulta. La referencia de consulta contiene descripciones y ejemplos de cómo crear consultas válidas. |
| invalidUser | 400 |
Este error se devuelve cuando intentas programar una consulta con credenciales de usuario no válidas. |
Actualiza las credenciales de usuario, tal como se explica en Programar consultas. |
| jobBackendError | 400 |
Este error se devuelve cuando el trabajo se ha creado correctamente, pero ha fallado debido a un error interno. Es posible que veas este error en |
Vuelve a intentar ejecutar el trabajo con un nuevo |
| jobInternalError | 400 |
Este error se devuelve cuando el trabajo se ha creado correctamente, pero ha fallado debido a un error interno. Es posible que veas este error en |
Vuelve a intentar ejecutar el trabajo con un nuevo |
| jobRateLimitExceeded | 400 |
Este error se devuelve cuando el trabajo se ha creado correctamente, pero ha fallado con un error rateLimitExceeded. Es posible que veas este error en |
Usa un tiempo de espera exponencial para reducir la frecuencia de las solicitudes y, a continuación, vuelve a intentar la tarea con un nuevo |
| notFound | 404 |
Este error se devuelve cuando haces referencia a un recurso (un conjunto de datos, una tabla o una tarea) que no existe o cuando la ubicación de la solicitud no coincide con la del recurso (por ejemplo, la ubicación en la que se está ejecutando una tarea). Esto también puede ocurrir al usar decoradores de tablas para hacer referencia a tablas eliminadas que se hayan transmitido recientemente. |
Corrija los nombres de los recursos, especifique correctamente la ubicación o espere al menos 6 horas después de la transmisión antes de consultar una tabla eliminada. |
| notImplemented | 501 |
Este error de trabajo se devuelve cuando intentas acceder a una función que no se ha implementado. |
Ponte en contacto con el equipo de Asistencia para obtener más información. |
| proxyAuthenticationRequired | 407 |
Este error se devuelve entre el entorno del cliente y el servidor proxy cuando la solicitud no tiene credenciales de autenticación válidas para el servidor proxy. Para obtener más información, consulta el artículo 407 Proxy Authentication Required. |
La solución de problemas es específica de tu entorno. Si recibes este error mientras trabajas en Java, asegúrate de haber definido las propiedades |
| quotaExceeded | 403 |
Este error se devuelve cuando tu proyecto supera una cuota de BigQuery o una cuota personalizada, o cuando no has configurado la facturación y has superado el nivel gratuito de consultas. |
Consulta la propiedad |
| rateLimitExceeded | 403 |
Este error se devuelve si tu proyecto supera un límite de frecuencia a corto plazo al enviar demasiadas solicitudes demasiado rápido. Por ejemplo, consulta los límites de frecuencia de los trabajos de consulta y los límites de frecuencia de las solicitudes de la API. |
Reduce la frecuencia de las solicitudes. |
| resourceInUse | 400 |
Este error se devuelve cuando intentas eliminar un conjunto de datos que contiene tablas o cuando intentas eliminar un trabajo que se está ejecutando. |
Vacía el conjunto de datos antes de intentar eliminarlo o espera a que se complete un trabajo antes de eliminarlo. |
| resourcesExceeded | 400 |
Este error se devuelve cuando tu trabajo usa demasiados recursos. |
Este error se devuelve cuando tu trabajo usa demasiados recursos. Para obtener información sobre cómo solucionar problemas, consulta Solucionar errores de recursos superados. |
| responseTooLarge | 403 |
Este error se devuelve cuando los resultados de la consulta superan el tamaño máximo de respuesta. Algunas consultas se ejecutan en varias fases y este error se devuelve cuando alguna de las fases devuelve un tamaño de respuesta demasiado grande, aunque el resultado final sea inferior al máximo. Este error se suele devolver cuando las consultas usan una cláusula
|
A veces, añadir una cláusula |
| detenida | 200 |
Este código de estado se devuelve cuando se cancela un trabajo. |
|
| tableUnavailable | 400 |