Mensajes de error

Aprende a solucionar algunos errores que genera Document AI. En este tema, se analizan errores cuyas resoluciones requieren más pasos de los que se pueden describir en un mensaje de error.

Consulta la documentación de la API de Cloud para conocer las prácticas recomendadas de manejo de errores.

Permisos

La resolución requiere que se lleven a cabo algunos pasos, como se indica en el mensaje de error.

Las credenciales predeterminadas de la aplicación no están disponibles

Si recibes este mensaje, haz lo siguiente:

The Application Default Credentials are not available. They are
available if running in Compute Engine. Otherwise, the
environment variable GOOGLE_APPLICATION_CREDENTIALS must be defined
pointing to a file defining the credentials.
See https://developers.google.com/accounts/docs/application-default-credentials
for more information.

Document AI usa credenciales predeterminadas de la aplicación para la autenticación.

Debes tener una cuenta de servicio para tu proyecto, descargar la clave (archivo JSON) para tu cuenta de servicio en tu entorno de desarrollo y, luego, establecer la ubicación de ese archivo JSON en una variable de entorno llamada GOOGLE_APPLICATION_CREDENTIALS.

Además, la variable de entorno GOOGLE_APPLICATION_CREDENTIALS debe estar disponible dentro del contexto en que llamas a la API de Document AI. Por ejemplo, si configuras la variable a partir de una sesión de terminal, pero ejecutas tu código en el depurador del IDE, el contexto de ejecución del código podría no tener acceso a la variable. En ese caso, tu solicitud a Document AI podría fallar por falta de autenticación adecuada.

Para obtener más información sobre cómo configurar la variable de entorno GOOGLE_APPLICATION_CREDENTIALS, consulta la guía de inicio rápido de Document AI o la documentación sobre cómo usar las credenciales predeterminadas de la aplicación.

Permiso denegado

Si recibes este mensaje, haz lo siguiente:

ERROR: (gcloud.auth.application-default.print-access-token) File
(pointed by GOOGLE_APPLICATION_CREDENTIALS environment variable) does not exist!
{
  "error": {
    "code": 403,
    "message": "The request is missing a valid API key.",
    "status": "PERMISSION_DENIED"
  }
}

Verifica que tienes un archivo JSON de clave de cuenta de servicio válido en la ubicación almacenada en la variable de entorno de GOOGLE_APPLICATION_CREDENTIALS y que la variable apunta al lugar correcto.

Para diagnosticar este error, intenta abrir el archivo de claves de la cuenta de servicio desde la carpeta a partir de la que intentas llamar a la API de Document AI.

cat $GOOGLE_APPLICATION_CREDENTIALS

Prohibido: 403 POST la API no se usó o está inhabilitada

Si recibes el siguiente mensaje:

Forbidden: 403 POST Document AI API has not been used in
project # before or it is disabled.
Enable it by visiting [url], then retry.
If you enabled this API recently, wait a few minutes for the action to
propagate and retry.
  1. Visita el vínculo especificado en el mensaje de error y habilita la API de Document AI. Espera varios minutos y vuelve a intentarlo.
  2. Verifica que tienes un archivo JSON de clave de cuenta de servicio válido almacenado en la variable de entorno GOOGLE_APPLICATION_CREDENTIALS. Para diagnosticar este error, intenta abrir el archivo de claves de la cuenta de servicio desde la carpeta a partir de la que intentas llamar a la API de Document AI.
    cat $GOOGLE_APPLICATION_CREDENTIALS
    

Se produjo un error al escribir el resultado final

Si recibes un mensaje como el siguiente cuando recibes los resultados de una solicitud de proceso por lotes:

{
  "name": "projects/project-name/operations/operation-id",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.document.v1beta1.OperationMetadata",
    "state": "SUCCEEDED",
    "createTime": "2019-09-19T02:02:15.885267760Z",
    "updateTime": "2019-09-19T02:02:31.896425001Z"
  },
  "done": true,
  "error": {
    "code": 5,
    "message": "Error writing final output to: gs://bucket-name/filename.json"
  }
}

Es posible que tu cuenta de servicio no tenga los permisos correctos para crear objetos en tu bucket de Cloud Storage. Asegúrate de haber asignado los permisos correctos a tu cuenta de servicio, como se describe en la guía de inicio rápido.

También es posible que hayas escrito mal el nombre de tu bucket de Cloud Storage. Verifica que exista el bucket al que intentas acceder.

P4SA no tiene acceso a Cloud Storage

Cuando la cuenta de servicio por producto (P4SA) de Document AI no tiene permiso para acceder a algunos recursos de Cloud Storage

message: "Cloud DocumentAI P4SA doesn't have access to this Cloud Storage resource:"

La cuenta de servicio no puede crear objetos en Cloud Storage

Cuando la cuenta de servicio por producto (P4SA) de Document AI no tiene permiso para crear objetos en Cloud Storage.

message: "Service account service-123@gcp-sa-prod-dai-core.iam.gserviceaccount.com
         does not have permission storage.objects.create to create
         Google Cloud Storage object in bucket gs://foo."

Es posible que la cuenta de servicio de Document AI no tenga los permisos correctos para crear objetos en tu bucket de Cloud Storage. Asegúrate de haber asignado los permisos correctos a la cuenta de servicio de Document AI, como se describe en la configuración del acceso a archivos entre proyectos.

También es posible que hayas escrito mal el nombre de tu bucket de Cloud Storage. Verifica que exista el bucket al que intentas acceder.

El llamador no puede obtener objetos en Cloud Storage

Cuando el llamador de la API de Document AI no tiene permiso para obtener objetos en Cloud Storage.

message: "The caller does not have permission storage.objects.get to get Google
         Cloud Storage objects in bucket gs://foo."

Es posible que el llamador de la API no tenga los permisos correctos para obtener objetos en tu bucket de Cloud Storage. Asegúrate de haber asignado los permisos correctos a la entidad que llama.

También es posible que hayas escrito mal el nombre de tu bucket de Cloud Storage. Verifica que exista el bucket al que intentas acceder.

Argumentos no válidos

La resolución requiere que se lleven a cabo algunos pasos, como se indica en el mensaje de error.

Versión de API no compatible

Cuando se realiza una solicitud a una versión de API que no admite la operación.

message: "The requested operation is unsupported for the API version."

No se admite el tipo de procesador

Cuando se realiza una solicitud a un método de API que no admite el tipo de procesador determinado.

message: "The requested operation is unsupported for the processor type: ${PROCESSOR_TYPE}."

Solicitud incorrecta

Se produce cuando se realiza una solicitud a la API, pero los campos de la solicitud tienen uno o más incumplimientos. Cada incumplimiento se captura como un field_violations en los detalles de google.rpc.BadRequest.

message: "Request contains an invalid argument."
details {
  [type.googleapis.com/google.rpc.BadRequest] {
    field_violations { field: "foo" description: "bar" }
  }
}

No se pudieron procesar todos los documentos por lotes

Cuando no se puede procesar ningún documento en una solicitud de procesamiento por lotes.

message: "Failed to process all documents."
details {
  [type.googleapis.com/google.rpc.ErrorInfo] {
    reason: "FAILED_TO_PROCESS_ALL_DOCUMENTS"
    domain: "documentai.googleapis.com"
  }
}

No se encontraron documentos

Cuando se requieren o esperan documentos, pero no se proporciona ninguno, como cuando se importan documentos por URI de Cloud Storage

message: "No valid documents found in ${training|test} directory. Ensure files are in a supported MIME type. For details, see https://cloud.google.com/document-ai/docs/file-types."
details {
  [type.googleapis.com/google.rpc.ErrorInfo] {
    reason: "NO_DOCUMENTS"
    domain: "documentai.googleapis.com"
  }
}

Los parámetros gcsUriPrefix y gcsOutputConfig.gcsUri deben comenzar con gs:// y terminar con un carácter de barra inversa final (/). Verifica la configuración de los URI del bucket.

Ejemplo: gs://bucket/directory/

No se admite el entrenamiento

Cuando se realiza una solicitud de versión del procesador de entrenamiento en un tipo de procesador que no admite el entrenamiento.

message: "Training is not supported on processor type: ${DOCUMENT_TYPE}_PROCESSOR."

No se seleccionó ningún documento

Cuando se esperan documentos, pero no se selecciona ninguno en el conjunto de datos, como cuando se crean trabajos de etiquetado de datos.

message: No documents selected. Please select at least one document."
details {
  [type.googleapis.com/google.rpc.ErrorInfo] {
    reason: "NO_DOCUMENTS_SELECTED"
    domain: "documentai.googleapis.com"
  }
}

No se encontró el tipo de documento

Cuando la clase de un documento (como licencia, pasaporte o factura) no coincide con la clasificación necesaria para el tipo de procesador. Un ejemplo es cuando el paso del clasificador en el analizador de W2 no encuentra elementos de una factura.

También puede aparecer como Couldn't preview the document: Unable to find a document of type: 'foo' en la consola de Google Cloud . Este mensaje de error se aplica a los procesadores heredados.

message: "Unable to find a document of type: 'foo'"
details {
  [type.googleapis.com/google.rpc.ErrorInfo] {
    reason: "DOCUMENT_OF_TYPE_NOT_FOUND"
    domain: "documentai.googleapis.com"
  }
}

Se superó el límite de tamaño del documento

Se superó el límite superior para el tamaño de archivo de un documento durante la importación del conjunto de datos o la ejecución de la predicción.

message: "Document size (2) exceeds limit: 1 (bytes)."
details {
  [type.googleapis.com/google.rpc.ErrorInfo] {