[BUG] Claude Code fails to run on Sonnet 3.5 due to thinking issue

Resolved 💬 2 comments Opened Jun 18, 2025 by ron-clover Closed Jun 18, 2025

Environment

  • Platform (select one):
  • [X] Anthropic API
  • [ ] AWS Bedrock
  • [ ] Google Vertex AI
  • [ ] Other: <!-- specify -->
  • Claude CLI version: 1.0.21 (Claude Code)
  • Operating System: macOS 15.1
  • Terminal: Terminal App

Bug Description

Im running a prompt with claude code with sonnet 3.5 and get the following error:
API Error: 400 {"type":"error","error":{"type":"invalid_request_error","message":"'claude-3-5-sonnet-20241022' does not support thinking."}}

I know that including the word 'think' will automatically force claude to append the thinking block..
Notice that my prompt below does not include the word 'think' whatsoever.
A few days ago my prompt worked fine, which raises my suspicioun that perhaps a bug was introduced in the api layer ?

Steps to Reproduce

  1. Run claude code with following prompt using the command:

Command - claude --model claude-3-5-sonnet-20241022

Then paste the following prompt:

You are a security auditing specialist tasked with evaluating how a code repository meets a set of defined security requirements.

Each requirement is provided in the following format:
{
  "RequirementId": "<string - unique requirement identifier>",
  "CategoryName": "<string - the name of the category of the requirement>",
  "Content": "<string - a short description of the requirement>",
  "ControlName": "<string - the name of the security control the requirement is associated with>",
  "SecurityFrameworkName": "<string - the name of the security framework the requirement is associated with>",
}

The security requirements are:
[
{
   "RequirementId": "00e5808a-9afb-44aa-a27b-44f4c66d3ce0",
   "CategoryName": "2.9 Cryptographic Verifier",
   "Content": "Verify that cryptographic keys used in verification are stored securely and protected against disclosure, such as using a Trusted Platform Module (TPM) or Hardware Security Module (HSM), or an OS service that can use this secure storage."
   "ControlName": "",
   "SecurityFrameworkName": "OWASP ASVS"
}
]

Your Task

For each requirement, do the following:
1. Search the repository for files which implement or should implement the requirement - Be thorough in your search, don't leave loose ends.
2. Analyze those files and return a detailed report with the fields specified below (Output Instructions).
 
Output Instructions

* Return ONLY the JSON array as your response.
* Do NOT include any explanations, markdown, headings, or introductory text.
* Include every requirement provided in the input — no omissions.

Notes:
* The useCases field below is meant to be an array of objects, such that each object tells a story about how the requirement is implemented in the repository.
* Each use case could incorporate a single file or multiple files according to how the code is structured - and reflects a coherent flow of execution.
* If you do not find any use case of implementation for the requirement, return an empty useCases array.

Ensure the final response is valid JSON array and follows this schema exactly:
{
    "results":
    [
      {
        "requirementId": <string> - the unique requirement id from the input,
        "coverageSummary": <string> - a general summary of how the requirement is implemented (or missing) in the repository,
        "generalImplementationStatus":  "Implemented" | "RequirementCodeImplementationStatus.PartiallyImplemented" | "Missing",
        "score": <int> - a score between 0 and 100 regarding the requirement implementation. If there is no implemented use case - return 0. If all use cases are implemented - return 100. For partial implementations, return a score between 0 and 100,
        "confidence": <int> - a score between 0 and 10 regarding the confidence you have in your own analysis accuracy,
        "useCases": [
            {
                "filePaths": [], // array of relevant file paths (strings)
                "implementationStatus": "Implemented" | "PartiallyImplemented" | "Missing",
                "reasoning": <string> - reasoning for the status regarding how the files implement the requirement.
            }

            // additional evidences if needed.
            ]
        }
      // next requirement...
    ]
}

Expected Behavior

The prompt should run and complete successfully (as it did yesterday)

Actual Behavior

Starting today, it returned the following error:

API Error: 400 {"type":"error","error":{"type":"invalid_request_error","message":"'claude-3-5-sonnet-20241022' does not support thinking."}}

I'd appreciate any help here !
Thx

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗