Since its launch, developers have encountered frustrating errors about “User location not supported” when trying to use Google’s powerful new Gemini API. This stems from Google not having enabled Gemini access globally yet. Certain regions like the EU, Africa, and parts of Asia cannot directly call the API at present.
When your user location is not supported, you may see errors like:
400 User location is not supported for the API use
This guide will explore the main causes of this error and some possible workarounds until Google expands availability.
Why Does This Error Occur?
There are two key reasons you may encounter this error with the Gemini API:
1. Google has not enabled API access in your country yet
As of December 2022, Gemini is only available in a limited set of regions including the US, Canada, parts of Europe, India, Australia, and more.
If you check the enabled APIs in your Cloud Console and don’t see the Generative AI API, your location is likely unsupported currently.
2. Your code is inadvertently routing requests through an unsupported region
Some platforms like Vercel deploy functions globally by default. So even if you are in a supported country, your requests could get routed through servers in an unsupported region, triggering the error.
You can inspect your code to check if the API endpoint or edge function location is set to a region that Gemini is not enabled in yet.
Possible Workarounds
While waiting for expanded access, developers have come up with some tricky workarounds like:
Using a VPN
Setting up a VPN connection to a supported country will make your requests appear to come from there. Some popular options are NordVPN, ExpressVPN, and Surfshark.
Downsides: Adds cost, latency, and may violate Terms of Service.
Switching Region via Vertex AI Library
The Vertex AI library allows selecting a region, unlike the main Generative AI SDK:
# Set region like us-central1
vertexai.init(project=PROJECT, location=LOCATION, credentials=google_credentials)model = GenerativeModel(“gemini-pro”)
Downsides: More complex setup, may still have functionality restrictions based on actual location.
Deploying Proxy Service
On Vercel, you can deploy the Palm Proxy service and route your API requests through it to a supported region.
Downsides: Hacky workaround, no guarantee Google won’t block in future.
Identifying Your User Location
To check if your calls are coming from an unsupported area, use:
- Cloud Console – Check Enabled APIs and locations
- Code Inspector – Print and validate API endpoint location
- GEOIP Service – Get your public IP’s approximate location
When Will Access Expand?
Google has stated they are working on rolling out Gemini to more regions soon. Broad availability may take some time due to regulatory hurdles.
The workarounds discussed can help cover the gap for now, but may come with limitations. There is no guarantee you will get full functionality in unsupported regions even with proxy methods.
I hope this gives some clarity on why the “User location is not supported” error occurs and potential temporary solutions while we await expanded access. Let me know if you have any other questions!