B — and the diagnostic sequence matters. Null-all-fields from a tool call is almost always a content or schema signal problem, not a temperature or prompt-forcing problem. Debug order: 1. Pull 3-5 failing emails — look for what they have in common (format, encoding, missing structure) 2. Compare your schema against the actual email patterns. Asking for ‘ticket_number’ when the email says ‘case_id’ is enough to null everything 3. Check for truncation — long emails can push the relevant content out of the extraction context Lowering temperature (A) increases consistency but won’t fix null-all-field returns. Retrying (C) won’t help because schema mismatch is deterministic. Adding ‘must populate’ instructions (D) is the worst option — it teaches the model to hallucinate values rather than return honest nulls.