Error Handling GuideError Scenarios
Scenario 2: Generation Rejection
Handling finishReason != STOP
Scenario
Content passed initial review but rejected during generation.
Response Example
{
"candidates": [{
"content": { "parts": [] },
"finishReason": "PROHIBITED_CONTENT"
}],
"usageMetadata": { "candidatesTokenCount": 10 }
}finishReason Types
| finishReason | Meaning |
|---|---|
| PROHIBITED_CONTENT | Policy violation |
| SAFETY | Safety filter triggered |
| RECITATION | Copyright concerns |
| MAX_TOKENS | Content too long |
Detection
function detectGenerationRejection(data) {
const candidate = data.candidates?.[0];
const { finishReason } = candidate;
if (finishReason && finishReason !== 'STOP') {
return {
isRejected: true,
finishReason
};
}
return { isRejected: false };
}User Message
❌ Content Policy Violation
Content doesn't meet safety requirements.
Suggestions:
✓ Use positive descriptions
✓ Avoid sensitive topics
✓ Review content guidelinesRelated Docs
How is this guide?