ThinkFacility

Error messages

PROHIBITED_CONTENT

The message

PROHIBITED_CONTENT
Gemini API as of September 15, 2026 read September 15, 2026GoogleAPI errors

What it means

Gemini returns PROHIBITED_CONTENT either as a block reason, when the prompt never ran, or as a finish reason, when generation stopped partway. It belongs to the built-in protections, so safety settings can't switch it off.

What to do

Check whether it arrived in promptFeedback or in the candidate's finishReason, then change the prompt or narrow what you asked the model to produce. Thresholds won't help: this isn't one of the four adjustable categories.

Gemini uses PROHIBITED_CONTENT in two places, and they don't mean the same thing. In promptFeedback it's a block reason: the prompt was refused and no candidates came back at all. In a candidate's finishReason it means generation had started and then stopped.

Where it appears
In promptFeedback and in a candidate's finishReason
Prompt blocked
Prompt was blocked due to prohibited content
Output stopped
Token generation stopped for potentially containing prohibited content
Adjustable
No, these types of harm are always blocked

What the API reference says

The block reason entry is one line, and it's about your input.

Prompt was blocked due to prohibited content.

From Generating content | Gemini API | Google AI for Developers

The finish reason carrying the same label is hedged, and the hedge is the useful part of it.

Token generation stopped for potentially containing prohibited content.

From Generating content | Gemini API | Google AI for Developers

Why turning the safety settings down doesn't clear it

The safety settings page lists four categories you can adjust: harassment, hate speech, sexually explicit and dangerous content. Each one takes a threshold, from Block none up to Block most. Prohibited content isn't among them, because "the Gemini API has built-in protections against core harms" that sit outside that system.

These types of harm are always blocked and cannot be adjusted.

From Safety settings | Gemini API | Google AI for Developers

A request that comes back with this label comes back the same way with every adjustable filter set to Block none. Google's example of a core harm is content that endangers child safety.

Labels that look like it

SAFETY is the adjustable one. Its candidate text reads "The response candidate content was flagged for safety reasons", and the safetyRatings field tells you which category did it. BLOCKLIST means "Token generation stopped because the content contains forbidden terms", which is your own terminology list rather than Google's. SPII covers Sensitive Personally Identifiable Information, and IMAGE_SAFETY and the image labels beside it apply to generated pictures.

What to do with it

Look at which field carried the label before you change anything. A block reason points at your prompt. A finish reason points at where the answer was heading, so the thing to narrow is what you asked the model to produce.

The docs name no setting that turns this one off. That makes a rewrite the only lever you have, and sending the same text again won't move it.