# Interactions API: GET /v1beta/interactions/{id} returns 400 "API key not valid" since ~19:30 UTC Sep 21, while create still succeeds (gemini-omni-1.1-flash)

**URL:** <https://discuss.ai.google.dev/t/interactions-api-get-v1beta-interactions-id-returns-400-api-key-not-valid-since-19-30-utc-sep-21-while-create-still-succeeds-gemini-omni-1-1-flash/184417>\
**Category:** Gemini API\
**Tags:** api, bug, gemini\
**Created:** [September 23, 2026, 4:15am UTC](https://discuss.ai.google.dev/t/interactions-api-get-v1beta-interactions-id-returns-400-api-key-not-valid-since-19-30-utc-sep-21-while-create-still-succeeds-gemini-omni-1-1-flash/184417 "2026-09-23T04:15:03Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![seb](https://avatars.discourse-cdn.com/v4/letter/s/8edcca/32.png) [@seb](https://discuss.ai.google.dev/u/seb)\
**Post date:** [September 23, 2026, 4:15am UTC](https://discuss.ai.google.dev/t/interactions-api-get-v1beta-interactions-id-returns-400-api-key-not-valid-since-19-30-utc-sep-21-while-create-still-succeeds-gemini-omni-1-1-flash/184417/1 "2026-09-23T04:15:03Z")

</div>

Since about 19:30–19:50 UTC on Sep 21, every attempt to retrieve a Gemini Omni interaction fails with `400 API key not valid`. The same key keeps succeeding on `POST /v1beta/interactions` (the job is accepted) and on `generateContent`. It reproduces with three different keys, including one freshly created in AI Studio, and in the AI Studio playground itself. The key appears to be rejected only on the retrieval/stream path.

**Setup**

- Model: `gemini-omni-1.1-flash`, via the Interactions API (`POST /v1beta/interactions`, then polling `GET /v1beta/interactions/{id}`)
- Auth: `x-goog-api-key` header
- Paid tier, billing enabled, Generative Language API enabled
- Keys: auth keys (service-account-bound). One is ~5 months old and was working until today. Two new ones were created today, one in Cloud Console and one in AI Studio. All three fail the same way.
- No code or deploy changes on our side since Sep 18.

**Errors (verbatim)**

- REST, on retrieval: `{"error":{"message":"API key not valid. Please pass a valid API key.","code":"invalid_request"}}`
- AI Studio playground: `Agent finished with error: Failed to close Interaction stream: API key not valid. Please pass a valid API key.`

**Cloud Monitoring (serviceruntime request\_count, [generativelanguage.googleapis.com](http://generativelanguage.googleapis.com), 10-min windows, UTC)**

| Window | CreateInteractionHttp 200 | GetInteractionHttp 200 | GetInteractionHttp 400 | CreateInteractionStream 400 |
| --- | --- | --- | --- | --- |
| 18:10 – 19:30 | 9 | 57 | 1 | 0 |
| 19:40 – 20:30 | 9 | **0** | 9 | 9 |

- Since ~19:40 UTC there have been zero successful `GetInteractionHttp` calls with any key. Every create still returns 200.
- The failing `CreateInteractionStream` calls are attributed to credential `apikey:UNKNOWN`, so the key doesn’t seem to be resolved on that path.
- `GenerateContent` with the same key returned 200 throughout.

**Questions**

1. Is this a known regression on the Interactions retrieval/stream path for auth keys?
2. Are interactions that were created but can’t be retrieved being billed?
3. Will those interactions be retrievable once this is fixed?

Happy to share the project ID and interaction IDs privately.

---

<div class="post-metadata">

**Author:** ![Blinc\_Software](https://d1dlmcr85iqnpo.cloudfront.net/user_avatar/discuss.ai.google.dev/blinc_software/32/148965_2.png) [@Blinc\_Software](https://discuss.ai.google.dev/u/Blinc_Software)\
**Post date:** [September 23, 2026, 6:44pm UTC](https://discuss.ai.google.dev/t/interactions-api-get-v1beta-interactions-id-returns-400-api-key-not-valid-since-19-30-utc-sep-21-while-create-still-succeeds-gemini-omni-1-1-flash/184417/2 "2026-09-23T18:44:26Z")

</div>

I am having the same issue. Very frustrating as everything but the interaction polling works…

---

<div class="post-metadata">

**Author:** ![joeschneid09](https://d1dlmcr85iqnpo.cloudfront.net/user_avatar/discuss.ai.google.dev/joeschneid09/32/152343_2.png) [@joeschneid09](https://discuss.ai.google.dev/u/joeschneid09)\
**Post date:** [September 24, 2026, 3:31am UTC](https://discuss.ai.google.dev/t/interactions-api-get-v1beta-interactions-id-returns-400-api-key-not-valid-since-19-30-utc-sep-21-while-create-still-succeeds-gemini-omni-1-1-flash/184417/3 "2026-09-24T03:31:30Z")

</div>

I have the same issue today. Notably my API key works fine for non-background interaction API requests.

Here’s a bash script that runs the interactions API twice, first with background: true (fails), then normally without backgrounding (succeeds).

```bash
#!/usr/bin/env bash

echo "api key prefix: ${GEMINI_API_KEY::5}" &&
echo "api key len: $(echo -n "$GEMINI_API_KEY" | wc -c)" &&
echo "api key suffix byte: $(echo; echo -n "$GEMINI_API_KEY" | tail -c 1 | hd)" &&
echo "background interactions API:" &&
ID=$(curl -s -X POST https://generativelanguage.googleapis.com/v1beta/interactions \
    -H "x-goog-api-key: $GEMINI_API_KEY" \
    -H "Content-Type: application/json" \
    -H "Api-Revision: 2026-05-20" \
    -d '{"model": "gemini-3.8-flash", "input": "Reply with OK only.", "background": true}' |
  python3 -c "import json,sys; print(json.load(sys.stdin)['id'])") &&
echo "id=$ID" &&
curl -s -X GET -w "\nhttp_code: %{http_code}\n" "https://generativelanguage.googleapis.com/v1beta/interactions/$ID" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H "Api-Revision: 2026-05-20" &&
echo "interactions API:" &&
curl -s -X POST https://generativelanguage.googleapis.com/v1beta/interactions \
    -H "x-goog-api-key: $GEMINI_API_KEY" \
    -H "Content-Type: application/json" \
    -H "Api-Revision: 2026-05-20" \
    -d '{"model": "gemini-3.8-flash", "input": "Reply with OK only."}'

```

output:

```plaintext
api key prefix: AQ.Ab
api key len: 53
api key suffix byte: 
00000000 51 |Q|
00000001
background interactions API:
id=v1_ChdLWm0wYXYyR01OSG9xdHNQNU9yM3VBZxIXS1ptMGF2MkdNTkhvcXRzUDVPcjN1Q..
{"error":{"message":"API key not valid. Please pass a valid API key.","code":"invalid_request"}}
http_code: 400
interactions API:
{"id":"v1_ChZMSm0wYW9JbHRORFBzZy1lejRHZ0N3EhZMSm0wYW9JbHRORFBzZy1lejRHZ0..","status":"completed","usage":{"total_tokens":79,"total_input_tokens":6,"input_tokens_by_modality":[{"modality":"text","tokens":6}],"total_cached_tokens":0,"total_output_tokens":1,"total_tool_use_tokens":0,"total_thought_tokens":72,"raw_prompt_token":37,"model_invocation_token_counts":[{"prompt_tokens_details":[{"modality":"text","tokens":37}],"candidates_tokens_details":[{"modality":"text","tokens":5}],"thoughts_tokens_details":[{"modality":"text","tokens":72}]}],"non_grounding_model_invocation_token_counts":[{"prompt_tokens_details":[{"modality":"text","tokens":37}],"candidates_tokens_details":[{"modality":"text","tokens":5}],"thoughts_tokens_details":[{"modality":"text","tokens":72}]}]},"created":"2026-09-24T03:29:48Z","updated":"2026-09-24T03:29:48Z","service_tier":"standard","steps":[{"signature":"EvsCCvgCAWkUfRNjHYWcdcDOzZw6hmmSd9WCG/gFE+cJ72xxSVlefkeV5lKWbIvsv1Q10dDolePJg+kGBQmHKYmrO465xXKe78F9lSHZPkRep2LEkrNPh0Kx/evQce5NIIajWoWRiskSuusjL1/3zLoara8leJT6C7jJ9ABoP9ubd/lh/x4TnmV/6/62uN8Zzq3smKLhykHHsDDheXUGV/xl8iNJvQgxGFvSirj6c/TPipKDQFLcADOe2JZM4uxJU0IEdGyTepLYnqUI2gkq5yCxVdO36UvOJUio8JRHdM7v0niYOlU6lAy5cYZ0QsobdYVh6SzEAg0JqAbuV00XQQXH0VAFxlIOFlG3D0gSmnR0B16RCVvLgQCEKSpYP3PwzY3Dczrfb2mBasg4IwmbbifJJjkT7cavvSSH0yvwFFKTmKVO7aNTBYsUnY/6QfUWwThOtVBlKBTIbcwh4bGsJk5hJiZhAI3dy7uf1SMXCW4OxYCRzTB/DDXxmkcmoQ==","type":"thought"},{"content":[{"text":"OK","type":"text"}],"type":"model_output"}],"object":"interaction","model":"gemini-3.8-flash"}

```

---

<div class="post-metadata">

**Author:** ![Roi\_Izchak](https://d1dlmcr85iqnpo.cloudfront.net/user_avatar/discuss.ai.google.dev/roi_izchak/32/150047_2.png) [@Roi\_Izchak](https://discuss.ai.google.dev/u/Roi_Izchak)\
**Post date:** [September 24, 2026, 3:48am UTC](https://discuss.ai.google.dev/t/interactions-api-get-v1beta-interactions-id-returns-400-api-key-not-valid-since-19-30-utc-sep-21-while-create-still-succeeds-gemini-omni-1-1-flash/184417/4 "2026-09-24T03:48:10Z")

</div>

Same issue here. Still reproducing on Sep 23.

- Model: gemini-omni-1.1-flash (also seen on gemini-omni-flash-preview), Interactions API.
- POST /v1beta/interactions with background: true returns 200 in\_progress with an id.
- The first GET /v1beta/interactions/{id}, about 3 seconds later, returns  
400 “API key not valid. Please pass a valid API key.”  
Older failed ids now return 400 “Request contains an invalid argument.”
- Auth: x-goog-api-key header. The ?key= query parameter fails the same way.
- Same key still works for generateContent, files, models, and a synchronous  
(background: false) Omni request. A GET of an interaction created on Sep 21,  
before the incident, still returns 200.
- Last good background run: 2026-09-21 17:05 UTC.  
First failure: 2026-09-22 04:37 UTC. Latest repro: 2026-09-23 17:21 UTC.
- Latest failing id:  
v1\_ChdrQXEwYXVDVEE1cjZ2ZElQbjdXZnNRbxIXa0FxMGF1Q1RBNXI2dmRJUG43V2ZzU..
- Paid tier, billing enabled.

Question: are these failed background interactions billed? We cannot retrieve their output.

---

<div class="post-metadata">

**Author:** ![Isabel\_Tufano](https://d1dlmcr85iqnpo.cloudfront.net/user_avatar/discuss.ai.google.dev/isabel_tufano/32/150147_2.png) [@Isabel\_Tufano](https://discuss.ai.google.dev/u/Isabel_Tufano)\
**Post date:** [October 5, 2026, 4:59am UTC](https://discuss.ai.google.dev/t/interactions-api-get-v1beta-interactions-id-returns-400-api-key-not-valid-since-19-30-utc-sep-21-while-create-still-succeeds-gemini-omni-1-1-flash/184417/5 "2026-10-05T04:59:56Z")

</div>

Adding a reproduction from 2026-10-05 04:31 UTC with gemini-3.8-flash. A tiny text-only REST request (no video) to POST /v1beta/interactions used background: true, store: true, and input: “Reply OK”. Headers were x-goog-api-key and Api-Revision: 2026-05-20. Creation returned HTTP 200 with status in\_progress. GET /v1beta/interactions/{id} about 8 seconds later returned HTTP 400 with error code invalid\_request. Explicit store: true did not resolve it.

In a separate tiny background test, GET /v1beta/interactions/{id}?stream=true connected with HTTP 200 but emitted interaction.created, interaction.status\_update, then an error event with code invalid\_request rather than a completed result. The same API key succeeds on ordinary text requests and model metadata. We deleted the test interactions after these checks.

This appears similar to the retrieval/stream problem in this thread, but we cannot confirm it has the same root cause. Is there a known issue with background interaction retrieval for API keys, or a safe structured diagnostic that distinguishes authentication from an unavailable interaction result? We are intentionally omitting the key, interaction IDs, and provider message text from this public post.
