Setup: Gemini Developer API (generativelanguage) via the Vercel AI SDK (@ai-sdk/google), streamText. Model: gemini-3-flash-preview. Use case: a legal assistant that summarizes/analyzes documents that our users upload themselves (contracts, leases, official police/court reports), these are the user’s own documents, not third-party copyrighted material.
Problem: We get finishReason: “RECITATION” recurrently (with a growing trend), mid-stream, on these self-uploaded legal documents. The prompts are large (we pass a lot of the document verbatim,▎ promptTokenCount ~255k in one case). When this happens, the response is cut off and the user sees a generic error.
A second, related issue: on RECITATION the API returns the candidate with content: {} (no role field):
{
“candidates”: [{
“content”: {},
“finishReason”: “RECITATION”,
“index”: 0,
“finishMessage”: “The generated content was filtered because it may contain material that resembles existing copyrighted works…”
}],
“usageMetadata”: { “promptTokenCount”: 255707, “candidatesTokenCount”: 347, … },
“modelVersion”: “gemini-3-flash-preview”
}
Because candidates[0].content.role is missing, strict client parsers (the AI SDK’s Zod schema) throw AI_TypeValidationError instead of surfacing a clean RECITATION result.
Questions:
- Why does RECITATION trigger on a user’s own uploaded documents (no third-party copyright involved)? Is this expected?
- Does passing large amounts of the document verbatim in the prompt increase the likelihood of RECITATION? Any best practices to reduce it (chunking, instructing the model to paraphrase, system-prompt▎ patterns)?
- Is there any way to disable or tune the recitation/copyright check on the Developer API, or is that only possible on Vertex AI?
- Is returning content: {} without a role the intended payload shape for RECITATION? It breaks strict schemas, would expect either a role or a clearer blocked-response structure.
- Is gemini-3-flash-preview more prone to RECITATION than the stable models (e.g. gemini-2.5-pro)?
- Does a high rate of RECITATION finish reasons have any impact on account standing, quotas, or rate limits? We want to make sure normal legal-document usage isn’t seen as abuse.
Any guidance appreciated
thanks!
Daniel