元渊 API元渊 API
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

finishReasonMeaning
PROHIBITED_CONTENTPolicy violation
SAFETYSafety filter triggered
RECITATIONCopyright concerns
MAX_TOKENSContent 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 guidelines

How is this guide?