False-positive PROHIBITED_CONTENT on non-explicit text — gemini-2.5-flash-tts

I’m using gemini-2.5-flash-tts (paid tier, generateContent API) to generate read-aloud audio for a published romance novel I own. Twenty chapters generated without issues.

One 751-character section failed 4 times in a row with identical results: HTTP 200, no audio part, candidate.finishReason: UNKNOWN, promptFeedback.blockReason: PROHIBITED_CONTENT. Deterministic, not transient.

Here’s the full blocked passage:

She looks at me expectantly; I remember it vividly. If I wasn’t doing triple salchows, I was shooting a puck. I was always exhausted, and it sucked. I had no life.

I continue to glare.

Uncomfortable, my mother looks away. “Anyway, I thought I would share it with you and Violet. I suppose I should’ve knocked.”

“Damn right you should have!”

She tosses the dishtowel on the counter. “Don’t you take that tone with me! I didn’t expect your little girlfriend to be parading around half-naked!”

Her implication is clear: she believes Violet is trying to take advantage of me. I don’t get it. My mother has always had her head so far up her ass when it comes to me. It’s as if I’m still a teenager, not a grown man who can make his own damn decisions.

There is no sexual content in this text. It’s a character arguing with his mother.

Why this is a false positive rather than a policy disagreement:

• The three sections immediately before this one — which contain explicit sexual language — generated successfully.

• Five other chapters in the same book, each with a higher density of explicit terms than this chapter, generated successfully.

• The most explicit passage in this very chapter was never even reached; generation stopped at this section.

The filter blocked a non-explicit family argument while passing actually-explicit content in the same book. That points to a classifier misfire, not the policy working as intended. Could someone on the team review this?

Hi @Julie_David,

The configurable safetySettings thresholds only apply to the four adjustable categories covered in our Safety filters documentation, whereas PROHIBITED_CONTENT is returned by built-in core harm protections that remain active regardless of safetySettings.

Could you please test whether you still encounter this issue using gemini-3.8-flash-tts?