Here is a full Python script that can reproduce this problem:
from google import genai
from google.genai import types
res = genai.Client().models.generate_content(
model="gemini-2.5-flash-preview-04-17",
contents=[
"Translate the following text to English.",
"『ディシディア ファイナルファンタジー』(DISSIDIA FINAL FANTASY)は、スクウェア・エニックスより2008年に発売されたPSP専用のコンピュータゲームである。",
],
config=types.GenerateContentConfig(
response_mime_type="application/json",
response_schema={
"type": "object",
"properties": {
"translation": {"type": "STRING"},
},
"required": ["translation"],
},
thinking_config=types.ThinkingConfig(thinking_budget=0),
temperature=0.0,
),
)
print(res.text)
print(res.usage_metadata)
Output:
{"translation": "\"DISSIDIA FINAL FANTASY\" is a computer game exclusively for the PSP, released by Square Enix in 2008."}
cache_tokens_details=None cached_content_token_count=None candidates_token_count=141 candidates_tokens_details=None prompt_token_count=52 prompt_tokens_details=[ModalityTokenCount(modality=<MediaModality.TEXT: 'TEXT'>, token_count=52)] thoughts_token_count=107 tool_use_prompt_token_count=None tool_use_prompt_tokens_details=None total_token_count=193 traffic_type=None
As you can see, despite thinking_config=types.ThinkingConfig(thinking_budget=0), thinking was triggered (thoughts_token_count=107).
In some rare cases, the model still thinks a little even with thinking budget = 0, we are hoping to fix this before we make this model stable and you won’t be billed for thinking. The thinking budget = 0 is what triggers the billing switch.
Welcome to forum, I am trying to replicate the issue but I was not able to reproduce as per your provided code snippet. Is the issue still persists from your side?