Claude 3.5 Sonnet ainda existe? O que fazer se o seu projeto ainda aponta para ele

aviso de erro ao chamar o modelo Claude 3.5 Sonnet aposentado na API
Resposta rápida

O Claude 3.5 Sonnet foi aposentado (Retired) na API da Anthropic em 05/01/2026, e requisição pra ele volta erro. Se o seu projeto ainda aponta pro claude 3.5 sonnet, o caminho é: auditar o uso no Claude Console (Usage > Export) pra achar cada chave que ainda chama o modelo antigo, trocar o ID pro claude-sonnet-5 e conferir três pontos de comportamento: adaptive thinking ligado por padrão, temperature/top_p/top_k fora do padrão retornando erro 400 e o tokenizador novo, que gera cerca de 30% mais tokens e trunca saída em max_tokens calibrado pro modelo velho

Fala aí, beleza? Aquele serviço que rodava sozinho há meses começou a devolver erro do nada, ninguém mexeu em nada e o log não ajuda muito

Se ele chamava o Claude 3.5 Sonnet, o mistério acabou aqui: o modelo foi aposentado na API da Anthropic e requisição pra ele retorna erro

Então o problema não é mais "por que quebrou", é "como troco isso sem quebrar o resto"

E é exatamente isso que a gente vai destrinchar aqui: como descobrir onde a dependência está, o que testar antes de trocar e o que muda de comportamento quando você cai no modelo novo

O que "aposentado" significa no ciclo de vida dos modelos Claude

Antes de sair editando string de configuração, vale entender o vocabulário, porque ele explica o porquê da quebra

A Anthropic usa quatro estados no ciclo de vida dos modelos:

  • Active: suportado e recomendado, é onde você quer estar
  • Legacy: não recebe mais atualizações e pode ser depreciado a qualquer momento
  • Deprecated: ainda funciona, mas não é recomendado, já tem substituto e já tem data de aposentadoria definida
  • Retired: não está mais disponível, e a requisição retorna erro

Se você conhece aquele ciclo de versão de linguagem (suportada, em manutenção, fim de vida), é bem parecido

A diferença é que aqui não tem "deixa rodando na versão velha", beleza? Quando entra em Retired, acabou, não existe mais o endpoint pra aquele modelo

E dava pra prever? Dava

A Anthropic se compromete a dar no mínimo 60 dias de aviso antes de aposentar um modelo lançado publicamente, notificando os clientes que têm implantação ativa

Formação Claude Code
Formação Recomendada

Formação Claude Code

Domine Claude Code do absoluto zero até o avançado

  • 114 aulas
  • 4 projetos
  • 9h 18min

No caso do Sonnet 3.5, a notificação de deprecação saiu em 13 de agosto de 2025, e a aposentadoria efetiva na API veio em 5 de janeiro de 2026, depois de adiamentos em relação às datas anunciadas antes

Ou seja: teve aviso, teve prazo, e ainda teve prorrogação

O que costuma acontecer é o aviso cair na caixa de e-mail de quem criou a chave de API há dois anos e não mexe mais no projeto 😅

A Anthropic também publicou uma página de compromissos sobre depreciação e preservação de modelos, e a lista de deprecações vive na documentação oficial de model deprecations

Coloca essas duas no radar, é o jeito mais barato de não ser pego de surpresa na próxima

(Pra referência histórica: o Claude 3.5 Sonnet foi lançado em 20 de junho de 2024, então ele teve uma vida bem longa pro ritmo dessa indústria)

O que ter em mãos antes de mexer no código

Nada de sair trocando ID no braço direto na produção, se liga no checklist antes:

  • Acesso ao Claude Console, especificamente à página Usage, porque é de lá que sai a exportação do que cada chave andou chamando
  • Acesso ao repositório onde o ID de modelo está escrito, e de preferência a todos os repositórios, não só o principal
  • Saber por qual plataforma a chamada sai: API direta da Anthropic, Amazon Bedrock, Google Cloud, Microsoft Foundry, Claude Platform on AWS ou Claude Managed Agents
  • Um ambiente de teste separado da produção, porque tem mudança de comportamento no meio do caminho, não é só troca de nome

Esse ponto da plataforma é o que mais confunde

O mesmo modelo tem calendário diferente em cada lugar onde ele é servido, e data de uma plataforma não vale pra outra

Então a primeira pergunta não é "qual modelo", é "por onde essa requisição sai"

Passo a passo para migrar um projeto preso no Claude 3.5 Sonnet

Bora ver na prática

  1. Audite qual modelo o seu projeto realmente chama

A própria documentação da Anthropic indica o caminho: no Claude Console, vá em Usage e clique em Export

O CSV que baixa mostra o uso quebrado por chave de API e por modelo

Isso responde a pergunta que o código sozinho não responde: quem ainda estava batendo no modelo antigo, e por qual chave

  • O erro comum deste passo: olhar só o serviço principal e esquecer os jobs agendados, os scripts internos, o webhook que alguém subiu em 2024 e a integração de um time vizinho. O CSV por chave existe justamente pra isso, leia ele inteiro
  1. Mapeie no código onde o ID aparece e separe snapshot datado de alias

Os IDs com data no fim (tipo claude-sonnet-4-5-20250929) são snapshots fixos: aquele modelo, aquele comportamento, sem mudar debaixo de você

Já os aliases são ponteiros de conveniência: a Anthropic migra o alias pro snapshot mais recente, tipicamente em até uma semana depois de um lançamento novo

  • O erro comum deste passo: achar que usar alias te protege. É o contrário. O alias muda o modelo debaixo de você sem você pedir, e aí o comportamento vira de um dia pro outro
  1. Troque o ID de modelo

O modelo padrão hoje nos produtos da Anthropic é o Claude Sonnet 5, lançado em 30 de junho de 2026, com o model ID claude-sonnet-5, que entrou no lugar do Sonnet 4.6

Na prática, a mudança no seu código é isso aqui:

# antes
model = "claude-3-5-sonnet-..."

# depois
model = "claude-sonnet-5"

Esse é o ID divulgado no lançamento, e ele resolve o problema imediato: seu serviço volta a responder

Pra produção tem um passo a mais, e ele está no Passo 7, se liga lá embaixo

Tem também o caminho automatizado: a Anthropic oferece a migração pela skill Claude API, rodando dentro do Claude Code

/claude-api migrate

Ele aplica a troca do ID de modelo e, quando necessário, as mudanças de parâmetros que quebram, a substituição de prefill e a calibração de esforço na base de código

No fim, gera uma checklist de itens pra você verificar manualmente, e antes de editar arquivo ele pede confirmação do escopo

Em base grande isso é ouro, porque a varredura pega o que o grep da sua memória não pega

Só vale um cuidado de projeto legado: se o repositório tem convenção própria de configuração, ajuda muito fazer o agente respeitar o padrão antes de deixar ele editar arquivo em série

E se a rodada parecer arrastada numa base enorme, dá pra investigar por que o Claude Code fica lento antes de culpar a migração

  • O erro comum deste passo: tratar como migração idêntica à documentada. O Sonnet 5 é apresentado como substituição direta (drop-in) do Sonnet 4.6, não do 3.5. Vindo de um modelo muito mais antigo, conte com ajuste de prompt
  1. Ajuste os parâmetros que passaram a retornar erro 400

São as três mudanças de comportamento que a documentação lista pro Sonnet 5:

  • adaptive thinking vem ligado por padrão
  • extended thinking manual passa a retornar erro 400 (isso já tinha sido depreciado no Sonnet 4.6)
  • definir temperature, top_p ou top_k com valores fora do padrão retorna erro 400

E tem a regra que pega muita gente: requisição sem o campo thinking roda com adaptive thinking, e sempre que thinking está ativo a temperature precisa estar em 1 ou não definida, em todos os modelos

Traduzindo pro seu código: aquele temperature=0.2 que você botou lá em 2024 pra "deixar mais determinístico" é um candidato forte a derrubar a chamada

  1. Reconte os prompts e revise o max_tokens

Esse é o mais silencioso de todos

O Sonnet 5 usa um tokenizador novo, que produz cerca de 30% mais tokens pro mesmo texto (o aumento exato depende do conteúdo e do tipo de carga)

A orientação da documentação é recontar os prompts com a contagem de tokens e revisar os limites de max_tokens que foram dimensionados perto do tamanho esperado da saída

  • O erro comum deste passo: manter o max_tokens calibrado pro modelo antigo. Aí a chamada não dá erro, ela só corta a resposta no meio, e você descobre isso pelo cliente reclamando de JSON inválido 🙃
  1. Teste em ambiente separado antes de liberar

Como o thinking vem ligado por padrão, o formato e o ritmo da resposta podem mudar mesmo com o prompt igualzinho

Se o seu sistema faz parse rígido da saída, é aqui que aparece

  1. Fixe um snapshot datado em produção

A documentação recomenda usar versão específica de modelo (o ID com data) em aplicação de produção, em vez de alias, justamente pra garantir comportamento consistente

E aquele claude-sonnet-5 do Passo 3? Ele é o ID divulgado no lançamento, ótimo pra destravar o serviço e pra rodar em teste

Antes do rollout, confira na documentação de model IDs e versões qual é o snapshot datado correspondente e coloque ELE no código de produção

E se o seu Claude Code é implantado via Amazon Bedrock, Google Cloud, Microsoft Foundry ou Claude Platform on AWS, a orientação é fixar (pin) a versão do modelo antes de liberar pros usuários

Parece detalhe chato, mas é o que te salva de acordar com o comportamento diferente por causa de um lançamento que você nem viu acontecer

Erros mais comuns depois da troca de modelo e como resolver

Requisição ao 3.5 Sonnet voltando erro

Causa: o modelo está Retired, ele não existe mais como destino de requisição

O que fazer: não tem workaround, tem troca de ID mesmo

Como prevenir na próxima: acompanhar o estado do modelo no ciclo de vida e reagir quando ele entra em Deprecated, não quando vira Retired

Erro 400 ao enviar extended thinking manual

Causa: no Sonnet 5, extended thinking manual retorna erro 400, e isso já vinha depreciado desde o Sonnet 4.6

O que fazer: tirar a configuração manual e deixar rodar com adaptive thinking

Como prevenir: quando migrar de modelo, ler o guia de migração antes de subir, não depois do primeiro 400

Erro 400 ao definir temperature, top_p ou top_k

Causa: valores fora do padrão nesses parâmetros retornam erro 400 no Sonnet 5, e com thinking ativo a temperature precisa estar em 1 ou não definida

O que fazer: remover os valores customizados de amostragem

Como prevenir: procurar esses três nomes no repositório inteiro antes do rollout, inclusive em arquivo de config e variável de ambiente

Saída cortada no meio

Causa: tokenizador novo gerando cerca de 30% mais tokens pro mesmo texto, estourando um max_tokens calibrado pro modelo anterior

O que fazer: recontar os prompts com a contagem de tokens e redimensionar o limite

Como prevenir: nunca deixar max_tokens colado no tamanho esperado da saída, sempre com folga

Resposta com comportamento diferente do esperado

Causa: adaptive thinking ligado por padrão

O que fazer: revalidar os casos de uso mais sensíveis a formato antes de liberar

Como prevenir: snapshot datado em produção, pra que a troca de comportamento aconteça no dia em que VOCÊ decidir, e não no dia do lançamento seguinte

O caminho muda conforme onde a sua integração roda

Aqui mora a maior confusão da migração

O calendário do modelo é por plataforma, e data de uma não vale pra outra, ponto

Onde a chamada sai Situação do Claude 3.5 Sonnet O que isso significa
API direta da Anthropic Retired em 05/01/2026 Requisição retorna erro, migração obrigatória
Google Cloud v2 depreciado em 20/08/2025, desligado em 19/02/2026 Calendário próprio da plataforma
Amazon Bedrock Ciclo de vida próprio: Active, Legacy e EOL Valem as datas da página de model lifecycle do Bedrock
Claude Managed Agents Migração simples Basta atualizar o nome do modelo

O caso do Bedrock merece um parágrafo à parte, porque ele é o mais generoso de prazo

A AWS garante que um modelo permanece na plataforma por pelo menos 12 meses antes da data de EOL, e fica pelo menos 6 meses no estado Legacy antes do EOL

As datas publicadas pela AWS são as que valem pro uso no Bedrock, e elas podem divergir das datas publicadas pelo provedor do modelo

Tome cuidado com isso: ver "ainda funciona no Bedrock" e concluir que a API direta também aceita é o tipo de dedução que derruba serviço em produção

E quem usa Claude Managed Agents respira aliviado: ali não precisa de mudança além de atualizar o nome do modelo

Conclusão

No fim das contas, migrar um projeto preso no Claude 3.5 Sonnet é troca de ID mais a checagem de três pontos de comportamento: thinking, parâmetros de amostragem e contagem de tokens

O resto é disciplina de auditoria

Se eu pudesse sugerir um único próximo passo prático, seria esse: abra o Claude Console, vá em Usage, clique em Export e leia o CSV por chave de API e por modelo

É ali que aparece aquela chave esquecida ainda apontando pra modelo antigo, aquela que ninguém lembra que existe até ela quebrar num domingo 😀

Depois disso, fixe os snapshots datados em produção e você tira do caminho a categoria inteira de "mudou sozinho e ninguém sabe por quê"

Como referência de custo do destino, o Claude Sonnet 5 está em US$ 2 por milhão de tokens de entrada e US$ 10 por milhão de tokens de saída, valor introdutório que virou o preço padrão

Até o próximo post!

Perguntas frequentes

Claude 3.5 Sonnet ainda funciona em algum lugar, tipo Bedrock ou Google Cloud?

Depende da plataforma, cada uma tem calendário próprio. No Google Cloud, o Claude 3.5 Sonnet v2 foi depreciado em 20 de agosto de 2025 e desligado em 19 de fevereiro de 2026. No Amazon Bedrock as datas que valem são as da página de model lifecycle do Bedrock, com a regra de pelo menos 12 meses de plataforma e no mínimo 6 meses em Legacy antes do fim de vida. Já na API direta da Anthropic ele está Retired desde 5 de janeiro de 2026.

Quanto custa usar o Claude Sonnet 5, o modelo que substituiu o 3.5 Sonnet?

O Claude Sonnet 5 custa US$ 2 por milhão de tokens de entrada e US$ 10 por milhão de tokens de saída na API. Esse valor era pra ser introdutório e subir pra US$ 3 e US$ 15 em 1 de setembro de 2026, mas o aumento não vai acontecer. Então esse preço virou o padrão do modelo.

Usar alias em vez de ID datado protege meu projeto de quebrar de novo?

Não, é o contrário. O alias é um ponteiro que a Anthropic migra pro snapshot mais recente, tipicamente em até uma semana depois de um lançamento novo, então o comportamento pode mudar debaixo de você sem aviso. A documentação recomenda usar o ID datado (o snapshot fixo, tipo claude-sonnet-4-5-20250929) em produção, justamente pra manter comportamento consistente.

Quem usa Claude Managed Agents também precisa mexer no código pra migrar?

Não. Quem usa Claude Managed Agents não precisa de mudanças além de atualizar o nome do modelo. Não tem código de integração pra reescrever nesse caso.

O que muda de comportamento na API ao trocar do Claude 3.5 Sonnet pelo Sonnet 5?

São três mudanças que valem atenção. O adaptive thinking vem ligado por padrão em requisições sem o campo thinking, e a temperature precisa estar em 1 (ou não definida) sempre que thinking está ativo. Além disso, extended thinking manual e valores fora do padrão em temperature, top_p ou top_k passam a retornar erro 400.

Preciso recalcular limite de tokens ao migrar do Claude 3.5 Sonnet?

Sim, isso é importante. O Claude Sonnet 5 usa um tokenizador novo que produz cerca de 30% mais tokens pro mesmo texto, o que pode truncar saída em limites de max_tokens calibrados pro modelo anterior. A documentação orienta recontar os prompts com token counting e revisar esses limites antes de colocar em produção.



Escrito por | Matheus Battisti

Matheus Battisti
Fundador da Hora de Codar

Programador apaixonado pelo mundo das tecnologias, sempre buscando em aprender e se aprofundar em linguagens, frameworks e o que mais for necessário para executar um bom trabalho. Agora tem uma nova missão que é de passar seu conhecimento adiante para formar novos programadores e especializar mais os que já são.

Subscribe
Notify of
guest

0 Comentários
Oldest
Newest Most Voted

Formações

Formação Vibe Coding

Formação Vibe Coding

Do Prompt ao Produto: Crie Software Real com IA

  • 474 aulas
  • 20 projetos
  • 39h 27min

Blog | Mais populares