Error Handling Guide
Key Code Snippets
Reusable code blocks for error handling
Check candidatesTokenCount
function checkCandidatesToken(data) {
if (data.usageMetadata?.candidatesTokenCount === 0) {
return {
hasError: true,
errorType: 'ZERO_CANDIDATES_TOKEN',
message: 'Content review rejected'
};
}
return { hasError: false };
}Check finishReason
function checkFinishReason(candidate) {
if (!candidate.finishReason || candidate.finishReason === 'STOP') {
return { hasError: false };
}
return {
hasError: true,
errorType: 'FINISH_REASON',
finishReason: candidate.finishReason
};
}Extract Images
function extractImages(parts) {
return parts
.filter(p => p.inlineData?.data)
.map(p => `data:${p.inlineData.mimeType};base64,${p.inlineData.data}`);
}Detect Rejection Text
function isRejectionText(text) {
const rejectionPatterns = [
"i can't generate",
"i cannot generate",
"i'm unable to"
];
const lowerText = text.toLowerCase();
return rejectionPatterns.some(p => lowerText.includes(p));
}Generate User Message
function generateUserMessage(errorType) {
const messages = {
'ZERO_CANDIDATES_TOKEN': {
title: 'Content Review Failed',
suggestions: [
'Check prompt for sensitive content',
'Ensure reference images are appropriate'
]
},
'FINISH_REASON': {
title: 'Generation Rejected',
suggestions: [
'Use positive descriptions',
'Avoid sensitive topics'
]
}
};
return messages[errorType] || { title: 'Error', suggestions: [] };
}Related Docs
How is this guide?