Gemma 4 31B suddenly unavailable in EU — 403 inference_region_restricted

Hi,

We have been using google/gemma-4-31b-it through LiveKit Inference successfully from our EU workload.

Today (September 1), the same project/model was working normally until at least 17:33 UTC. Starting at approximately 18:08 UTC, requests suddenly began returning:

HTTP 403
type=inference_region_restricted
retryable=false
region=eu

model google/gemma-4-31b-it is not available in the data region
serving this request (eu)

We made no changes to the model, project, region, or inference configuration.

To rule out our voice/PSTN pipeline, we reproduced the issue with a minimal standalone request directly through livekit.agents.inference.LLM.chat() using:

  • model: google/gemma-4-31b-it
  • prompt: Responde únicamente OK.
  • no tools

We repeated the probe about 11 minutes later and received the exact same 403.

LiveKit’s documentation currently lists Gemma 4 31B as available through LiveKit Inference, while the status page shows Global Inference as operational.

Has the availability or regional routing policy for google/gemma-4-31b-it in EU changed today, or is there currently an issue affecting this model in the EU data region?

I have also submitted a Service Outage report with the relevant session IDs.

same, along with my deepgram for me as well. suddenly with no warnings or a heads up!

We are looking into it.

@proyecto.reservasia, This is server-side, not your config. The docs list google/gemma-4-31b-it as the default Inference LLM with no region caveat and the model ID is valid, so a 403 inference_region_restricted is the gateway refusing the model in your data region (Inference LLMs). It is also not just you: another user in this thread reports the same EU 403 today, with Deepgram down too, so it reads as a broader EU Inference event.

Inference serves US-hosted models first and is still expanding coverage, so a model can be US-served but not EU (regional deployments). Whether EU availability actually changed today is Cloud-internal, so the team must confirm it. Your outage report is the right channel; since the status page still shows Inference operational and no GitHub issue tracks this, make sure it landed.

While you wait, retrying will not help a hard region 403. Fail over to your own provider key, which calls the provider directly and skips the Inference gateway:

import os
from livekit.agents import AgentSession, inference, llm
from livekit.plugins import google

session = AgentSession(
    llm=llm.FallbackAdapter([
        inference.LLM(model="google/gemma-4-31b-it"),
        google.LLM(model="gemini-2.5-flash", api_key=os.environ["GOOGLE_API_KEY"]),  # bypasses the gateway
    ]),
)

The fallback must be a direct-provider plugin, not a second inference.LLM, since another Inference model can hit the same region gate. Same for STT: deepgram.STT(model="nova-3", api_key=...) with your own key…

A fix to resolve this issue has been applied.

We completed a rollout of stricter data-region enforcement in LiveKit Inference. Gemma 4 31B is served from an EU deployment, but that deployment was missing the region label the check looks for, so the gateway saw no eligible EU backends.

@Adrian_Cowham shall we expect a fix soon? I migrated my cloud agent to a U.S. region, but my local dev environment remains broken as I’m located outside north america.

Fix is rolled out, let me know if you’re still having issues.

@Adrian_Cowham I’m having issues locally with deepgram/nova-3 and xai/tts-1. gemma looks like it recovered.

Did EU availability for deepgram and xai models change / is it expected to change?

heres a rough list of what we support

LLM

gemma was just added

  • OpenAI EUopenai_eu
    • gpt-4o, gpt-4o-mini
    • gpt-4.1, gpt-4.1-mini, gpt-4.1-nano
    • gpt-5, gpt-5-mini, gpt-5-nano
    • gpt-5.1, gpt-5.2
    • gpt-5.4, gpt-5.4-mini, gpt-5.4-nano
    • gpt-5.5
    • gpt-5.6-luna, gpt-5.6-sol, gpt-5.6-terra
  • Azure France Central datazone — behind
    • gpt-4.1, gpt-5.1, gpt-5.4
  • Vertex EU
    • eu_vertex — gemini-3.1-flash-lite, gemini-3.5-flash, gemini-3.5-flash-lite, gemini-3.6-flash, gemini-3.7-flash
    • europe_west1/4/8/9, europe_north1, europe_central2, europe_southwest1 — gemini-2.5-pro, gemini-2.5-flash, gemini-2.5-flash-lite
    • europe_west2, europe_west3 — gemini-2.5-flash

STT

  • Deepgrameu + eu_flux
    • nova-3 — general, medical
    • nova-2 — general, conversationalai, phonecall, medical
    • flux — en, multi
  • AssemblyAIeu
    • universal-streaming (+english, +multilingual)
    • universal-3-5-pro, u3-rt-pro
  • Speechmatics (new)
    • standard eu.rt — enhanced, standard
    • agent-eu — linden-1

TTS

  • Cartesiaeu: sonic family :white_flag:
  • Deepgram
    • eu — aura-2
    • eu_flux — flux-tts
  • Gradiumeu, default

there might be a bug then because I’m continuing to get this with with deepgram/nova-3

‘message’: ‘failed to create session: failed to create provider instance for session 461bd617-0efa-4544-a182-a51c60bad46b: STT model deepgram/nova-3 is not available in the data region serving this request (eu)’, ‘code’: 2006}

but this confirms I should move away from xai tts. thanks. Please let me know about deepgram nova 3

Yup, looking into deepgram/nova-3 right now.

@n do you have Inference Region Restrictions enabled in settings? that is whats causing the filter to happen. if you don’t intend to use it you can disable

@n deepgram/nova-3 should be good, let us know if you see any issues.

@Shawn_Feldman that fixed it thank you.

Confirmed fixed on our side.

The same minimal EU probe that was consistently returning 403 inference_region_restricted is now succeeding again with 200 OK, with no configuration changes on our side.

Thanks for the quick investigation and fix.

Thanks, really appreciate the detailed explanation and the fallback suggestion.

Gemma is working again on our side after LiveKit rolled out the fix. We repeated the exact same minimal EU probe with no configuration changes and it now returns 200 OK.

The direct-provider fallback is a very useful point as well — especially to avoid having LiveKit Inference itself as a single point of failure. We’ll definitely take that into account for production.

Thanks again!

How can we pin an EU region for a specific model? Or does it automatically happen based on caller/user location/region? And it chooses the closest model?

The team are still working on public documentation for this, until that is ready I am hesitant to say anything absolute.

Or does it automatically happen based on caller/user location/region? And it chooses the closest model?

The media path is actually from the agent <----> LLM, so it’s where your agent is hosted, not where your users are located that is the decision-maker.

Is Gemma 4 now accessible via EU region? I still cant find documentation on this