Lyria 3 family: 19/19 HTTP 500 on byte-identical request that previously returned 200
Summary
Both lyria-3-pro-preview and lyria-3-clip-preview return HTTP 500 INTERNAL on 100% of requests from our project, including a byte-identical request that returned HTTP 200 on 2026-05-27 22:52 UTC. Failure has been continuous since that timestamp. The same API key returns HTTP 200 from gemini-2.5-flash (3/3 control), ruling out key, account, billing, or rate-limit issues. No incident is listed on the public status page; Lyria preview models do not appear to be tracked there.
We’ve already worked through the documented 500 INTERNAL remediation steps in the Gemini API troubleshooting guide (input length, blocked key, switch model, status page) — all ruled out by the evidence below.
Affected endpoints
Timeline (all times UTC)
| Date |
Event |
| 2026-05-16 |
Current prompt template deployed |
| 2026-05-16 → 2026-05-27 22:52 |
Intermittent operation: 5 successful generations / 13 failed (~28% success on this prompt template) |
| 2026-05-27 22:52 |
Last observed successful generation |
| 2026-05-28 ~14:00 |
Investigation begins; 100% failure rate confirmed across multiple prompt shapes and both Lyria 3 siblings |
| 2026-05-28 (controlled probes) |
19 trials, 19 failures |
Reproduction
Equivalent curl (key redacted as $GEMINI_API_KEY):
curl -sS -X POST \
"https://generativelanguage.googleapis.com/v1beta/models/lyria-3-pro-preview:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H "Content-Type: application/json" \
--data-binary '{"contents":[{"parts":[{"text":"<prompt body — available on request>"}]}]}'
Identical headers and request shape to the request that returned 200 on 2026-05-27 22:52.
Probe results
All probes from the same API key, same project, same headers. Lyrics held byte-identical to the known-good 2026-05-27 22:52 request unless noted.
| Probe |
Model |
Prompt variant |
Trials |
Result |
Latency to 500 |
| A0 (control) |
lyria-3-pro-preview |
Byte-identical to 2026-05-27 22:52 success |
5 |
5/5 fail (500) |
26–41s |
| A3 |
lyria-3-pro-preview |
Different lyrics + bare style descriptor |
2 |
2/2 fail (500) |
26–30s |
| A1.1 |
lyria-3-pro-preview |
Style + known-good lyrics, no other instructions |
2 |
2/2 fail (500) |
~30s |
| A1.2 |
lyria-3-pro-preview |
A1.1 with [Section] tags stripped |
2 |
2/2 fail (500) |
~30s |
| A1.3 |
lyria-3-pro-preview |
Style + meta-instruction + lyrics |
2 |
2/2 fail (500) |
~30s |
| A4.1 |
lyria-3-clip-preview |
Byte-identical known-good prompt |
5 |
5/5 fail (500) |
6–8s |
| A4.2 |
lyria-3-clip-preview |
Minimal style + minimal lyrics |
5 |
5/5 fail (500) |
5–8s |
| Cross-model control |
gemini-2.5-flash |
Trivial text prompt |
3 |
3/3 success (200) |
-– |
Total: 19/19 fail on Lyria 3 family. 3/3 success on Gemini text on the same key.
Verbatim response body (identical across all 19 failures)
{"error":{"code":500,"message":"Internal error encountered.","status":"INTERNAL"}}
No additional diagnostic information returned.
Latency signature is itself diagnostic
-
lyria-3-pro-preview: 26–41s per failed attempt
-
lyria-3-clip-preview: 5–8s per failed attempt
-
A separate diagnostic using a malformed request (literal \n instead of newlines) failed instantly — indicating that our well-formed requests are accepted and processed, then fail during generation, not at request validation.
This argues against request validation, rate limiting, quota, or deadline issues. The model accepts the request, begins inference, and errors internally.
Documented 500 INTERNAL causes — ruled out
-
“Input context too long”: ruled out. The 19 failures span prompt sizes from ~50 characters (minimal style + minimal lyrics on clip) to ~1,600 characters (full production prompt on pro). If length were the trigger, minimal variants would have succeeded.
-
Blocked / leaked API key: ruled out. Same key returns 200 on gemini-2.5-flash 3/3. No “API key was reported as leaked” message returned.
-
Active status-page incident: no relevant entry. Lyria preview models do not appear on the tracked status page.
-
Switch to another model: attempted with lyria-3-clip-preview; affected identically. No working sibling within Lyria 3.
-
504 DEADLINE_EXCEEDED: not occurring. Latency well within any reasonable deadline.
What we’ve changed on our side
-
Identified and fixed an unrelated edge-worker parse error that masked these failures for ~24 hours.
-
Reduced retry attempts (5 → 2) and per-attempt timeout (75s → 30s) to limit wasted load during the incident.
-
**No changes to model selection, request format, headers, payload schema, or API key.
What we’re asking for**
-
Acknowledgment that this matches a known internal issue, or confirmation that it’s been added to the incident queue.
-
Visibility into status or expected timeline for any fix in progress for the Lyria 3 family.
-
Workaround, if any exists, that doesn’t require leaving Lyria 3 — since both pro-preview and clip-preview are affected identically.
-
Notification when resolved so we can verify the byte-identical request returns to 200.