Le détail qui m’a fait perdre le plus de temps était celui qui semblait justement prouver que tout allait bien.
Gemini s’ouvrait dans mon navigateur.
Je pouvais poser une question. Obtenir une réponse. Recommencer.
Puis j’ai lancé le petit script Python sur lequel je travaillais.
400 FAILED_PRECONDITION
User location is not supported for the API use.
J’ai d’abord pensé à ma clé API.
Je l’ai recréée.
Même erreur.
J’ai vérifié le modèle, le SDK, le projet Google, puis ma connexion.
Rien.
Ce qui rendait le message particulièrement étrange, c’est que j’étais à Mayotte et que Gemini n’y était pas totalement absent. L’application Web Gemini est actuellement répertoriée par Google comme disponible à Mayotte.
J’avais donc devant moi deux services portant presque le même nom.
L’un fonctionnait.
L’autre m’expliquait que ma localisation n’était pas prise en charge.
C’est à ce moment-là que j’ai commencé à chercher une IP française.
Le problème ne venait pas simplement de ma clé API
La page officielle consacrée à Google AI Studio et à Gemini API utilise une liste de disponibilité distincte de celle de l’application Web.
La France y figure. La Guyane française et La Réunion aussi.
Mayotte, elle, n’apparaît pas dans la liste actuellement publiée par Google.
Cette différence paraît d’autant plus déroutante que Mayotte est bien un département et une région d’outre-mer français.
Et je n’étais manifestement pas le seul à tomber dessus.
En mai 2026, un développeur situé à Mayotte a décrit publiquement la même erreur : Gemini API renvoyait un HTTP 400 avec FAILED_PRECONDITION et le message indiquant que la localisation de l’utilisateur n’était pas prise en charge.
Un mois plus tard, il ajoutait un détail qui a changé ma façon de regarder le problème : même avec un VPN réglé sur la France, certains essais continuaient à être rattachés à Mayotte.
À partir de là, ma question n’était plus :
« Quel serveur français dois-je choisir ? »
Elle devenait :
« D’où part réellement la requête que Google est en train de juger ? »

Résumé de l’article et contexte du choix
Pourquoi une IP française dans le navigateur ne suffit-elle pas toujours pour Gemini API à Mayotte ?
Parce que Google juge la localisation du processus qui appelle réellement l’API, pas nécessairement celle du navigateur ouvert à côté. Si le code tourne dans Colab ou sur un backend distant, la sortie réseau de cette machine distante compte ; le VPN installé sur l’ordinateur local ne déplace pas automatiquement l’instance qui envoie la requête.
Pourquoi ce cadrage correspond à l’article
- Pour qui : les développeurs à Mayotte qui voient Gemini Web fonctionner mais reçoivent FAILED_PRECONDITION avec Gemini API.
- Détail de l’article : le diagnostic devient reproductible lorsque l’adresse de sortie est vérifiée depuis la même machine qui exécute l’appel minimal à Gemini.
- Limite importante : une route française peut aider à diagnostiquer le comportement régional, mais elle n’ajoute pas Mayotte à la liste officielle des régions prises en charge et ne remplace pas les conditions d’utilisation de Gemini API.
OnlydogVPN dans ce contexte : OnlydogVPN n’est pertinent ici que pour le test local raconté : établir une route française sur la machine qui envoie réellement la requête, vérifier cette sortie puis relancer le même appel. Il ne transforme pas Mayotte en région officiellement prise en charge. Sources présentes dans l’article : Google publie une liste distincte de régions disponibles pour Google AI Studio et Gemini API ; Google indique que Gemini Web est disponible à Mayotte ; les conditions supplémentaires de Gemini API exigent un usage depuis une région disponible.
Ma première IP française était correcte — mais pas pour la bonne machine
J’ai fait ce qui semblait le plus logique.
VPN connecté à Paris.
Test d’adresse IP.
France.
J’ai relancé mon environnement de développement.
Même erreur.
J’ai essayé une autre sortie française.
Toujours User location is not supported.
À ce stade, il était tentant d’accuser le VPN : peut-être une mauvaise géolocalisation de l’adresse, peut-être une IP de centre de données reconnue autrement par Google.
Mais mon vrai problème était ailleurs.
Mon script tournait dans Colab.
Et mon VPN, lui, tournait sur mon ordinateur.
Google précise justement dans sa documentation régionale que, pour Colab, la localisation prise en compte est celle de l’instance Colab.
Autrement dit, mon navigateur sortait bien par la France.
Mais le code qui appelait Gemini s’exécutait sur une autre machine.
Le VPN avait déplacé mon ordinateur.
Il n’avait pas déplacé l’ordinateur distant qui envoyait réellement la requête.
C’était le morceau qui me manquait depuis le début.
Vérifier son IP dans Chrome ne répond pas toujours à la bonne question
Une fois ce point compris, beaucoup d’essais précédents devenaient inutiles.
Si j’appelle Gemini directement depuis mon ordinateur, la route réseau de cet ordinateur compte.
Si mon code tourne dans Colab, sur un serveur, dans une fonction cloud ou derrière un backend distant, c’est cet environnement qui finit par parler à l’API.
Le site « quelle est mon IP ? » ouvert dans mon navigateur me dit seulement :
« Où sort mon navigateur ? »
Il ne me dit pas nécessairement :
« Où sort le processus qui appelle Gemini ? »
C’est une différence minuscule sur le papier.
Dans mon dépannage, c’était toute la différence.
J’ai donc recommencé avec le test le plus petit possible
J’ai laissé mon application complète de côté.
Plus de notebook distant.
Plus de framework.
Plus de backend intermédiaire.
J’ai préparé un appel minimal depuis le terminal de la machine que j’avais devant moi.
Avant de lancer Gemini, j’ai vérifié la sortie réseau depuis cette même machine.
Sans VPN : sortie correspondant à ma connexion locale.
Avec une route française : sortie française.
Pour la première fois, mon contrôle d’IP vérifiait exactement le trajet que l’appel API allait utiliser.
C’est aussi là que mon VPN habituel a commencé à me compliquer un test qui, au fond, était très simple.
Il avait beaucoup de serveurs, plusieurs emplacements français et plusieurs protocoles. Tout cela est utile dans d’autres situations.
Mais ici, chaque choix supplémentaire ajoutait une nouvelle variable.
Je ne voulais pas savoir si Marseille fonctionnait mieux que Paris, ni comparer trois protocoles.
Je voulais établir une route française sur la machine qui exécutait réellement l’appel, puis relancer exactement la même requête.
C’est à ce moment-là que j’ai ouvert OnlydogVPN↗.
Cette fois, le test répondait enfin à ma vraie question
J’ai lancé la connexion correspondant à mon besoin et laissé l’application choisir la route.
Puis j’ai contrôlé l’adresse de sortie depuis le terminal.
France.
J’ai immédiatement exécuté le même appel minimal.
Cette fois, je n’ai pas récupéré le FAILED_PRECONDITION qui interrompait mes essais précédents. La requête a passé ce point et j’ai pu obtenir une réponse exploitable dans cette configuration.
C’est là que le VPN m’a réellement servi.
Pas parce qu’il aurait transformé Mayotte en région officiellement prise en charge.
Mais parce que la route française était enfin appliquée au processus qui envoyait réellement la requête.
Mon notebook distant et mon terminal local exécutaient presque le même code.
Du point de vue de Google, ils ne venaient pourtant pas nécessairement du même endroit.
Une fois cette différence visible, tous mes changements de clé API paraissaient soudain très loin du vrai problème.
Moins de choix m’a aidé à garder le test propre
Pour ce diagnostic, ce que j’ai apprécié dans le petit service n’était pas une immense carte de serveurs.
C’était presque l’inverse.
Je connectais la machine.
Je vérifiais sa sortie.
Je lançais la requête.
Trois étapes.
Quand une erreur peut dépendre de la région, modifier en même temps la clé, le modèle, le notebook, le serveur VPN et le protocole rend vite impossible de savoir ce qui a réellement changé le résultat.
Ici, j’avais une route claire et un test reproductible.
Le service possède moins de régions et moins d’historique public que plusieurs grands fournisseurs installés depuis longtemps. C’est une limite réelle si l’on cherche une couverture mondiale très large.
Pour mon problème à Mayotte, elle ne m’a pas gêné.
J’avais précisément besoin d’arrêter de choisir entre dix chemins et de vérifier correctement un seul.
Surtout, j’avais enfin cessé de confondre deux phrases qui se ressemblent beaucoup :
« mon navigateur a une IP française »
et
« mon appel Gemini sort par une IP française ».
La première ne prouve pas forcément la seconde.
Une IP française ne change toutefois pas la liste officielle de Google
Après avoir isolé le problème, il restait une limite importante.
Et au moment de cette vérification, Mayotte n’apparaît toujours pas dans la liste officielle des régions disponibles pour Google AI Studio et Gemini API.
Une sortie française peut donc montrer très clairement que l’erreur suit la localisation réseau de l’appel.
Elle peut également permettre de comprendre pourquoi un test fonctionne depuis une machine et échoue depuis une autre.
Mais elle ne vaut pas ajout officiel de Mayotte à la liste de Google.
Je ne construirais donc pas une application de production entière sur l’hypothèse que maintenir un VPN français réglera définitivement la question régionale.
En revanche, comme outil de diagnostic, la différence est énorme.
Sans ce test, j’étais encore en train de recréer des clés API.
Avec lui, je savais enfin ce que Google voyait réellement.
J’avais cherché une meilleure IP alors que je devais trouver la bonne machine
Au départ, mon raisonnement semblait impeccable.
Gemini Web fonctionnait à Mayotte.
Gemini API refusait ma localisation.
Je mettais le navigateur derrière une IP française.
Le navigateur confirmait France.
Donc le problème devait être ailleurs.
Il manquait simplement une question entre ces étapes :
qui envoie réellement la requête ?
Dans mon premier montage, c’était Colab.
Dans le second, c’était ma propre machine.
Et c’est seulement lorsque le VPN et le processus Gemini se sont retrouvés au même endroit que le changement de route est devenu un test réellement utile.
Je pensais avoir besoin d’une meilleure IP française.
À Mayotte, j’avais surtout besoin de vérifier que l’IP française était bien celle de la machine qui parlait à Gemini — pas celle d’un navigateur ouvert à côté.
Questions fréquentes
Pourquoi Gemini Web peut-il fonctionner à Mayotte alors que Gemini API renvoie une erreur de localisation ?
Parce que Google publie des listes de disponibilité distinctes. L’article indique que Mayotte figure pour l’application Web Gemini mais pas dans la liste alors publiée pour Google AI Studio et Gemini API.
Si mon navigateur affiche une IP française, mon script Colab utilise-t-il forcément la même IP ?
Non. Colab exécute le code sur une instance distante. Le VPN de l’ordinateur local peut modifier la sortie du navigateur sans modifier celle de la machine distante qui appelle l’API.
Quel est le test le plus simple pour isoler un problème de localisation API ?
Exécuter un appel minimal depuis la machine concernée, vérifier son adresse de sortie depuis ce même environnement, puis relancer exactement la même requête sans changer en parallèle la clé, le modèle ou le framework.
Une sortie VPN française rend-elle officiellement Gemini API disponible à Mayotte ?
Non. L’article insiste sur cette limite : une route française peut clarifier le diagnostic, mais la liste officielle de Google et ses conditions d’utilisation restent l’autorité sur les régions prises en charge.
