Leçon 14 — Rag engine sync

09. Dépannage

6 min de lecture

Le but : retrouver vite la cause d'un problème. Chaque erreur ci-dessous a été rencontrée en vrai pendant les tests du kit (sauf mention), avec le message exact.

Où regarder d'abord :

source scripts/config.sh config/test.env
gcloud storage cat gs://$BUCKET/sync/last.json                                         # dernière synchro
gcloud logging read 'resource.type="cloud_run_revision" AND resource.labels.service_name="'$SERVICE'" AND severity>=ERROR' \
  --limit=20 --freshness=1h --format='value(textPayload)'                               # erreurs du service
gcloud logging read 'resource.type="cloud_run_job" AND resource.labels.job_name="'$SYNC_JOB'"' --limit=20 \
  --format='value(textPayload)'                                                        # journaux de la synchro

1. Déploiement

MessageCauseSolution
Cloud Resource Manager API has not been used in project … before or it is disabled (Terraform, sur google_project_service)Terraform a besoin de cette API pour activer les autresgcloud services enable cloudresourcemanager.googleapis.com --project=$PROJECT_ID, puis relancer
Publisher model is not allowed for use in Vertex RAG yet (création du corpus)Modèle d'embeddings non accepté par RAG Engine (vu avec gemini-embedding-001)Garder text-multilingual-embedding-002 (défaut)
Construction d'image : 403 au 1er essaiDroits d'un compte de construction tout neuf pas encore actifsRien : le déploiement réessaie 4 fois à 40 s d'intervalle
Après un 1er apply en échec : … is tainted, so must be replaced sur des APIRessources marquées « à refaire »Sans danger (disable_on_destroy = false)
Le service reçoit CORPUS=4611686018427387904(corrigé dans le kit) name du corpus Terraform = numéro seulLe kit utilise id (chemin complet)

2. Interface et réponses

Symptôme / messageCauseSolution
403 Forbidden dans le navigateurVous n'avez pas run.invoker sur le serviceAjouter votre compte à USERS puis apply
L'interface s'affiche mais le chat ne répond pas ; navigateur : 403 sur /apps/assistant_documents/users/…/sessions(corrigé dans le kit) ADK refuse une origine qui ne correspond pas à l'hôte : derrière le proxy, localhost:<port> ≠ …run.appLe kit autorise localhost (ALLOW_ORIGINS) ; avec IAP ou un autre domaine, ajoutez-le à ALLOW_ORIGINS
« La recherche dans les documents a échoué (RuntimeError) » ; journal : Permission 'discoveryengine.rankingConfigs.rank' deniedCompte du kit sans roles/discoveryengine.viewer (reranking). discoveryengine.user ne suffit pas (il ne contient pas cette permission, vérifié)Inclus dans le kit ; si vous venez de l'ajouter : attendre la propagation IAM (jusqu'à 7 min)
Réponse très lente puis Erreur 500 ; journal : 429 RESOURCE_EXHAUSTEDQuota partagé de Gemini saturé (fréquent sur un projet neuf)L'agent réessaie 6 fois (2 à 30 s) ; si ça persiste : revenir au défaut gemini-2.5-flash / europe-west4, ou demander du débit provisionné (Provisioned Throughput)
404 … Publisher model projects/…/locations/europe-west4/publishers/google/models/gemini-3.5-flashModèle indisponible dans la régionGemini 3.5 : MODEL_LOCATION=global ; ou le défaut gemini-2.5-flash en europe-west4
« Je ne trouve pas cette information » alors que le document existePas encore indexé, ou mal luVérifier qu'il est dans Documents indexés ; regarder le rapport (fichier en échec ?) ; PDF scanné : garder LAYOUT_PARSER=true
L'interface reste sur « Chargement… »Proxy arrêté, ou service en cours de démarrage (1re requête ≈ 10 s)Relancer bash scripts/ouvrir_interface.sh
« dépasse 30 Mo »Limite de requête de Cloud Run (32 Mo)Mettre le fichier dans le dossier Drive

3. Synchro

Symptôme / messageCauseSolution
À vérifier : « Drive « … » : N fichier(s) illisible(s) pour l'agent RAG (…). Partagez le dossier (lecteur) avec service-…@gcp-sa-vertex-rag… » (journal du job : 404 Unable to find some Google Drive resource(s))Agent de service RAG absent du partage du dossier (ou d'un fichier)Ajouter l'adresse au partage du dossier (04)
« Drive « … » illisible (introuvable : plus partagé avec rag-kit-sa@…, ou supprimé) »Le compte du kit ne voit plus le dossier. Cas vérifié : après destroy + apply, le compte recréé est une nouvelle identité pour DriveRepartager avec rag-kit-sa@…, ou retirer le dossier. Rien n'est supprimé de l'index tant que ça dure
403 … service-…@gcp-sa-vertex-rag… does not have storage.objects.create accessAgent RAG sans objectCreator sur le bucket (rapport d'import)Inclus dans le kit ; vérifier gcloud storage buckets get-iam-policy gs://$BUCKET
Journal du job : "statut": "occupe" répétéDeux passes en même temps (RAG Engine n'accepte qu'une opération par corpus)Normal : la passe attend 15 s et recommence (15 min au plus)
Fichier compté « en échec »Type non supporté (image, vidéo…), fichier protégé, trop grosDétail : gcloud storage cat "gs://$BUCKET/sync/runs/*.ndjson" | grep -v '"Status": "OK"'
Synchro qui ne passe plus toute seulePlanification en pause ou en échecgcloud scheduler jobs describe $SYNC_JOB --location=$REGION (état, dernier code)
Tout est réindexé à chaque passeRéglage de parsing/découpage changé entre deux passesNormal une fois après un changement ; sinon, vérifier que LAYOUT_PARSER est identique pour le service et le job

4. Connexion Google (v2)

MessageCauseSolution
« Connexion Google pas encore configurée »Pas de client OAuth dans le secret rag-kit-oauth-client04-bis, partie 2
Écran Google redirect_uri_mismatchInterface ouverte sur un autre port que 8080, ou URI absente du clientbash scripts/ouvrir_interface.sh (port 8080) ; sinon ajouter l'URI dans le client OAuth
Écran Google access_denied / « app non validée » bloquantCompte absent des utilisateurs test (application Externe en test)Ajouter le compte dans Google Auth Platform → Audience
« L'accès en lecture à Google Drive n'a pas été accordé »Case Drive décochée sur l'écran GoogleSe reconnecter et cocher l'accès Drive
Synchro : « Google Drive « … » : RefreshError … invalid_grant »Jeton expiré (7 jours en mode test) ou accès retiré dans le compte GoogleSe reconnecter ; pour éviter les 7 jours : publier l'application (04-bis, partie 5)
Le sélecteur ne s'ouvre pas ; console du navigateur : API key not valid / origine refuséeClé limitée à http://localhost:8080Ouvrir l'interface sur le port 8080, ou ajouter le référent à la clé rag-kit-picker
Journal rag-kit-hook : 403 répétésNotifications d'un ancien canal (source retirée, passe concurrente avant le verrou) : refusées, sans effetRien : le canal expire seul (7 jours au plus)
Fichier « non récupéré : … exportSizeLimitExceeded »Google Doc/Slides de plus de 10 Mo à l'exportLe scinder, ou l'exporter en PDF dans Drive

5. En local

MessageCauseSolution
Request had insufficient authentication scopes (Drive)Identifiants locaux sans le scope Drivegcloud auth application-default login --scopes=…cloud-platform,…drive.readonly (05)
FutureWarning: You are using a non-supported Python version (3.10…)Python trop ancien pour les bibliothèques GooglePython 3.12 (comme l'image)
vertexai.rag module is deprecatedAvertissement : ADK 2.10 impose google-cloud-aiplatform < 2Sans conséquence ; migrera vers agentplatform avec ADK
Suivant