Messages d'erreur

Découvrez comment résoudre certaines erreurs générées par Document AI. Cette rubrique traite des erreurs dont la résolution nécessite un nombre d'étapes ne pouvant pas être indiqué facilement dans un message d'erreur.

Consultez la documentation de l'API Cloud pour connaître les bonnes pratiques de gestion des exceptions.

Autorisations

Pour résoudre le problème, vous devez suivre quelques étapes, comme indiqué dans le message d'erreur.

Les identifiants par défaut de l'application ne sont pas disponibles

Si vous recevez ce message :

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 utilise les identifiants par défaut de l'application pour l'authentification.

Vous devez disposer d'un compte de service pour votre projet, télécharger la clé (fichier JSON) de votre compte de service dans votre environnement de développement, puis définir l'emplacement de ce fichier JSON sur une variable d'environnement nommée GOOGLE_APPLICATION_CREDENTIALS.

En outre, la variable d'environnement GOOGLE_APPLICATION_CREDENTIALS doit être disponible dans le contexte d'appel de l'API Document AI. Par exemple, si vous définissez la variable à partir d'une session de terminal, mais exécutez le code dans le débogueur de votre IDE, le contexte d'exécution du code peut ne pas avoir accès à la variable. Dans ce cas, la requête à Document AI pourrait échouer faute d'authentification appropriée.

Pour en savoir plus sur la définition de la variable d'environnement GOOGLE_APPLICATION_CREDENTIALS, consultez le guide de démarrage rapide Document AI ou la documentation sur l'utilisation des identifiants par défaut de l'application.

Autorisation refusée

Si vous recevez ce message :

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"
  }
}

Vérifiez que vous disposez d'un fichier JSON de clé de compte de service valide à l'emplacement stocké dans la variable d'environnement GOOGLE_APPLICATION_CREDENTIALS et que cette dernière pointe vers l'emplacement approprié.

Pour diagnostiquer cette erreur, essayez d'ouvrir le fichier de clé du compte de service depuis le dossier à partir duquel vous tentez d'appeler l'API Document AI.

cat $GOOGLE_APPLICATION_CREDENTIALS

Interdit : 403 La méthode POST de l'API n'est pas utilisée ou est désactivée

Si vous recevez le message suivant :

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. Accédez au lien indiqué dans le message d'erreur et activez l'API Document AI. Patientez quelques minutes, puis réessayez.
  2. Vérifiez que vous disposez d'un fichier JSON de clé de compte de service valide stocké dans la variable d'environnement GOOGLE_APPLICATION_CREDENTIALS. Pour diagnostiquer cette erreur, essayez d'ouvrir le fichier de clé du compte de service depuis le dossier à partir duquel vous tentez d'appeler l'API Document AI.
    cat $GOOGLE_APPLICATION_CREDENTIALS
    

Erreur lors de l'écriture du résultat final

Si vous recevez un message semblable à celui-ci lorsque vous recevez les résultats d'une requête de traitement par lot :

{
  "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"
  }
}

Il est possible que votre compte de service ne dispose pas des autorisations nécessaires pour créer des objets dans votre bucket Cloud Storage. Assurez-vous d'avoir attribué les autorisations appropriées à votre compte de service, comme décrit dans le guide de démarrage rapide.

Il est également possible que vous ayez mal orthographié le nom de votre bucket Cloud Storage. Vérifiez que le bucket auquel vous essayez d'accéder existe.

P4SA n'a pas accès à Cloud Storage

Lorsque le compte de service par produit (P4SA) Document AI n'est pas autorisé à accéder à certaines ressources Cloud Storage.

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

Le compte de service ne peut pas créer d'objet dans Cloud Storage

Lorsque le compte de service par produit (P4SA) Document AI n'est pas autorisé à créer un objet dans 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."

Il est possible que le compte de service Document AI ne dispose pas des autorisations nécessaires pour créer des objets dans votre bucket Cloud Storage. Assurez-vous d'avoir attribué les autorisations appropriées au compte de service Document AI, comme décrit dans la configuration de l'accès aux fichiers entre projets.

Il est également possible que vous ayez mal orthographié le nom de votre bucket Cloud Storage. Vérifiez que le bucket auquel vous essayez d'accéder existe.

L'appelant ne peut pas obtenir d'objets dans Cloud Storage

Lorsque l'appelant de l'API Document AI n'est pas autorisé à obtenir des objets dans Cloud Storage.

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

Il se peut que l'appelant de l'API ne dispose pas des autorisations nécessaires pour obtenir des objets dans votre bucket Cloud Storage. Assurez-vous d'avoir attribué les autorisations appropriées à l'appelant.

Il est également possible que vous ayez mal orthographié le nom de votre bucket Cloud Storage. Vérifiez que le bucket auquel vous essayez d'accéder existe.

Arguments non valides

Pour résoudre le problème, vous devez suivre quelques étapes, comme indiqué dans le message d'erreur.

Version de l'API non compatible

Lorsqu'une requête est envoyée à une version d'API qui ne prend pas en charge l'opération.

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

Type de processeur non compatible

Lorsqu'une requête est envoyée à une méthode d'API qui ne prend pas en charge le type de processeur donné.

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

Requête incorrecte

Lorsqu'une requête API est envoyée, mais que les champs de la requête comportent une ou plusieurs infractions. Chaque cas de non-respect est enregistré en tant que field_violations dans les détails de google.rpc.BadRequest.

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

Échec du traitement par lot de tous les documents

Lorsque le traitement de chaque document d'une requête de traitement par lot échoue.

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

Aucun document

Lorsque des documents sont requis ou attendus, mais qu'aucun n'est fourni, par exemple lors de l'importation de documents par URI 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"
  }
}

Les paramètres gcsUriPrefix et gcsOutputConfig.gcsUri doivent commencer par gs:// et se terminer par une barre oblique inverse (/). Vérifiez la configuration des URI de bucket.

Exemple : gs://bucket/directory/

L'entraînement n'est pas accepté

Lorsqu'une demande de version de processeur d'entraînement est effectuée sur un type de processeur qui ne prend pas en charge l'entraînement.

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

Aucun document sélectionné

Lorsque des documents sont attendus, mais qu'aucun n'est sélectionné dans l'ensemble de données, par exemple lors de la création de tâches d'étiquetage de données.

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"
  }
}

Type de document introuvable

Lorsque la classe d'un document (comme une licence, un passeport ou une facture) ne correspond pas à la classification nécessaire pour le type de processeur. Par exemple, lorsque l'étape de classification du parseur W2 ne trouve pas d'éléments dans une facture.

Il peut également s'afficher sous la forme Couldn't preview the document: Unable to find a document of type: 'foo' dans la console Google Cloud . Ce message d'erreur s'applique aux anciens processeurs.

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"
  }
}

La taille limite du document a été dépassée

Lorsque la limite supérieure de la taille de fichier d'un document a été dépassée lors de l'importation d'un ensemble de données ou de l'exécution d'une prédiction.

message: "Document size (2) exceeds limit: 1 (bytes)."
details {
  [type.googleapis.com/google.rpc.ErrorInfo] {
    reason: "DOCUMENT_SIZE_LIMIT_EXCEEDED"
    domain: "documentai.googleapis.com"
    metadata { key: "limit" value: "1" }
    metadata { key: "size" value: "2" }