Convide e ganhe

Como funcionam as recompensas

Compartilhe seu link. Quando um amigo se cadastrar por ele e adicionar saldo, você receberá a recompensa exibida nas recargas posteriores.

Claude Code com DeepSeek: como recuperar a sessão após Input length exceeds maximum

Salve o diff e o estado da tarefa fora do modelo, tente um /compact direcionado e, se ele também falhar, volte a um checkpoint ou abra uma sessão limpa antes de revisar modelo, gateway e limiar de compactação.

Conteúdo
Claude Code com DeepSeek: como recuperar a sessão após Input length exceeds maximum

Você envia uma instrução curta no Claude Code e recebe status_code=400, Input length 1048609 exceeds the maximum length 1048566. Não repita a mesma chamada e não presuma que apagar 43 caracteres resolverá. O caminho mais seguro é: preservar o código e o estado da tarefa fora do modelo, tentar um /compact focado, recorrer a um checkpoint ou a uma sessão limpa se a compactação também falhar e só então identificar se quem rejeitou a requisição foi o modelo, o Claude Code ou um gateway intermediário.

A mensagem comprova apenas que alguma camada considerou a entrada 43 unidades não especificadas acima do limite. Ela não informa se a unidade é token, caractere ou byte, nem confirma que a requisição chegou ao DeepSeek. Sem model ID real, Base URL, versão do Claude Code, cadeia de proxies e resposta original, não dá para atribuir a falha a um modelo específico.

Preserve o trabalho antes de chamar o modelo outra vez

Pare de reenviar a requisição na conversa lotada. As alterações de código normalmente já estão no disco; o que pode se perder é o estado que existe só no chat: o que mudou, o que foi verificado e qual deveria ser o próximo passo.

Abra outro terminal e registre o estado sem pedir ao modelo estourado para resumir:

claude --version
git status --short
git diff --stat
git diff > claude-context-recovery.patch
git diff --cached > claude-context-recovery-staged.patch

Se o projeto não usa Git, copie os arquivos alterados ou crie um snapshot pelo histórico local do editor. Em seguida, escreva manualmente um RECOVERY.md curto:

Objetivo:
Arquivos alterados:
Já verificado:
Ainda com problema:
Decisões importantes:
Próxima ação única:
Não recarregar: logs completos, repositório inteiro, histórico sem relação

Essa passagem de contexto não precisa ser elegante. Ela serve para uma sessão limpa retomar a tarefa com alguns parágrafos, em vez de reconstruir centenas de milhares de tokens.

Ao coletar diagnóstico, mantenha apenas dados não secretos: claude --version, model ID, domínio do Base URL, nomes dos proxies e erro exato. Não imprima API keys, cabeçalhos de autorização, prompts de negócio completos nem variáveis de ambiente que contenham credenciais.

Descubra qual limite foi atingido

Mensagens parecidas podem representar limites diferentes.

Formato do erroO que pode significarPrimeira ação
Input length X exceeds the maximum length YUma camada limita a entrada ou o tamanho da requisição; a unidade pode não ser tokenReduzir histórico e tool output e localizar a camada que rejeitou
input length and max_tokens exceed context limit: A + B > CEntrada mais saída reservada superam o orçamento total de contextoCompactar antes; reduzir saída apenas se essa causa estiver confirmada
HTTP 413 ou request body too largeLimite de corpo HTTP ou do reverse proxyRevisar anexos, codificação e body-size do proxy
All target providers failed ou outro wrapper genéricoO gateway pode ter escondido a causa upstreamConsultar tentativa original, logs e request ID

No Claude Code #42, um usuário relatou um 400 em que entrada e max_tokens juntos ultrapassavam a janela. No #8136, outro usuário relatou que o próprio /compact podia falhar perto do limite porque a compactação precisava reservar espaço de saída. São relatos independentes, não prova da causa no seu ambiente.

Por isso, a diferença de 43 não justifica remover exatamente 43 caracteres. O Claude Code também envia instruções do sistema, histórico, definições de ferramentas, conteúdo de arquivos e resultados. Crie uma folga real em vez de tentar ficar uma unidade abaixo da fronteira.

Ramo A: /compact ainda funciona

Se os slash commands respondem, veja o uso do contexto e compacte dizendo claramente o que deve permanecer.

/context

Depois execute:

/compact Preserve o objetivo atual, os arquivos alterados, os resultados verificados, as decisões importantes, o problema pendente e a próxima ação. Remova logs completos, conteúdo repetido de arquivos, caminhos abandonados e discussões sem relação.

Após a compactação, não escaneie o repositório inteiro de novo. Faça uma verificação estreita e observável:

Leia apenas RECOVERY.md e src/auth/session.ts. Diga qual função deve ser alterada em seguida. Não procure em outros diretórios e não modifique arquivos.

Considere a recuperação concluída quando quatro sinais aparecerem juntos:

  1. /context mostra uso bem menor;
  2. uma requisição pequena não retorna mais 400;
  3. o modelo repete corretamente objetivo, arquivos alterados e próxima ação;
  4. git diff e testes continuam de acordo com a nota de recuperação.

A compactação pode eliminar detalhes. Coloque regras permanentes do projeto em CLAUDE.md e mantenha o estado crítico da tarefa em arquivos, não só em uma conversa longa.

Ramo B: /compact também retorna Conversation too long ou o mesmo 400

Não fique repetindo /compact no mesmo histórico acima do limite. No Claude Code #26317, um usuário relatou que, depois de atingir o limite, a própria compactação passou a responder Conversation too long. O issue estar fechado como not planned não significa que todas as versões e endpoints compatíveis estejam livres desse comportamento.

Volte para antes do log ou tool output muito grande

A documentação oficial de checkpointing permite usar /rewind ou pressionar Esc duas vezes com o campo de entrada vazio. Entre as opções estão:

  • Restore conversation: recua a conversa, mas mantém o código atual;
  • Summarize from here: resume as mensagens depois do checkpoint;
  • Summarize up to here: resume o histórico anterior e preserva as mensagens mais recentes.

Escolha um checkpoint anterior à leitura de um arquivo enorme, à colagem de um log completo ou a um resultado de ferramenta muito grande. Recuar a conversa mantendo o código e enviar uma tarefa estreita costuma ser mais seguro do que compactar a cauda já lotada.

A sumarização ainda pode exigir uma chamada ao modelo. Se o upstream rejeitar essa chamada também, passe para a recuperação com contexto vazio.

Se o rewind não funcionar, use /clear ou uma sessão nova

/clear

A referência oficial de comandos diz que /clear inicia uma conversa com contexto vazio e mantém a sessão anterior disponível. Ele não desfaz arquivos no disco nem apaga o Git diff.

Comece a sessão limpa com uma instrução limitada:

Leia RECOVERY.md, git diff --stat e os dois arquivos listados ali. Primeiro verifique o estado atual. Não escaneie o repositório inteiro. Proponha apenas o próximo passo e espere confirmação antes de editar.

Não rode imediatamente claude --continue, claude --resume ou /resume. Segundo a documentação oficial de sessões, retomar restaura o histórico completo e os resultados de ferramentas. Se eles causaram o excesso, a próxima chamada pode falhar de novo.

Localize a camada que rejeita com quatro testes baratos

Depois de proteger o trabalho, altere uma variável de cada vez e reutilize a mesma tarefa pequena e somente leitura.

TesteResultadoInterpretação mais útil
Mesmo endpoint e modelo, sessão limpa, tarefa mínimaFuncionaHistórico acumulado ou tool output grande são mais prováveis
A mesma tarefa mínima falha em sessão limpaFalhaRevise model mapping, envelope da requisição, versão do cliente ou cap do servidor
Quando permitido, compare endpoint oficial e gatewayDireto funciona, gateway falhaRevise limites, conversão e agregação de erros do gateway
/compact falha, mas tarefa pequena após /clear funcionaFuncionaA compactação não coube na janela real ou o cliente assumiu janela incorreta

Registre a rota sem expor segredos:

printf 'BASE_URL=%s\nMODEL=%s\nOPUS=%s\nSONNET=%s\nHAIKU=%s\nSUBAGENT=%s\n' \
  "${ANTHROPIC_BASE_URL:-<unset>}" \
  "${ANTHROPIC_MODEL:-<unset>}" \
  "${ANTHROPIC_DEFAULT_OPUS_MODEL:-<unset>}" \
  "${ANTHROPIC_DEFAULT_SONNET_MODEL:-<unset>}" \
  "${ANTHROPIC_DEFAULT_HAIKU_MODEL:-<unset>}" \
  "${CLAUDE_CODE_SUBAGENT_MODEL:-<unset>}"

O comando omite de propósito ANTHROPIC_AUTH_TOKEN. Anote também se a requisição passa por Claude Code Router, switcher, gateway corporativo, reverse proxy ou fallback entre provedores.

No Claude Code Router #1799, um usuário relatou que o gateway substituía um erro de contexto upstream por All target providers failed. O patch local do autor não é uma correção universal, mas o caso mostra por que logs de suporte devem preservar status, body e request ID originais.

Verifique a rota real do DeepSeek, não apenas o rótulo [1m]

Em 30 de setembro de 2026, o exemplo de variáveis de ambiente do cliente na página oficial de integração do DeepSeek com Claude Code configura:

  • ANTHROPIC_MODEL, ANTHROPIC_DEFAULT_OPUS_MODEL e ANTHROPIC_DEFAULT_SONNET_MODEL como deepseek-flash[1m];
  • ANTHROPIC_DEFAULT_HAIKU_MODEL e CLAUDE_CODE_SUBAGENT_MODEL como deepseek-flash;
  • CLAUDE_CODE_AUTO_COMPACT_WINDOW=786432.

A mesma página documenta separadamente um mapeamento no serviço para nomes de modelo no formato Claude: nomes iniciados por claude-opus são mapeados para deepseek-v4-pro, enquanto os iniciados por claude-haiku ou claude-sonnet são mapeados para deepseek-flash. Essa regra do serviço e os valores explícitos do exemplo do cliente são fatos distintos; não devem ser unidos em uma única conclusão sobre a rota real.

Nenhuma das duas seções comprova qual modelo ou janela processou esta solicitação específica. Consulte os registros de request/usage disponíveis, o campo model original, o provider ou a route selecionados e o request ID upstream, em vez de inferir isso pela interface ou por um tutorial antigo.

O rótulo [1m] também não garante que todas as camadas aceitem um milhão de tokens. Claude Code, API de compatibilidade, gateway, provedor de fallback e modelo final podem impor limites diferentes. A saída reservada ainda ocupa parte do contexto.

Compacte mais cedo em vez de inflar a janela

O exemplo atual do DeepSeek inclui:

export CLAUDE_CODE_AUTO_COMPACT_WINDOW="786432"

Esse é um limiar de compactação do lado do cliente, não uma forma de ampliar o limite rígido do provedor. A referência de variáveis de ambiente do Claude Code informa que o valor deve ser um inteiro, fica limitado à janela do modelo e tem precedência sobre /autocompact, flags de inicialização e settings.

Se o modelo ou gateway aceitar menos, use um valor menor que tenha sido confirmado. CLAUDE_AUTOCOMPACT_PCT_OVERRIDE serve para disparar compactação mais cedo, não para elevar o limite.

Não trate CLAUDE_CODE_MAX_CONTEXT_TOKENS como botão de “desbloquear contexto”. Ela informa ao Claude Code o tamanho real e verificado da janela de uma rota personalizada ou não reconhecida. Um valor acima do cap do servidor atrasa a compactação e torna outro 400 mais provável.

Práticas cotidianas costumam ajudar mais:

  • filtre logs grandes com grep, rg, tail ou script;
  • leia arquivos extensos por função ou faixa de linhas;
  • use /clear entre tarefas sem relação;
  • delegue pesquisa ampla a um subagent e traga só o resumo;
  • execute /compact focado antes de uma nova fase;
  • evite repetir schemas, build logs completos e diffs inteiros.

Teste novamente com uma tarefa pequena e real

Depois da recuperação ou da mudança de configuração:

  1. abra uma sessão limpa;
  2. leia apenas RECOVERY.md e um arquivo pequeno;
  3. peça uma resposta curta e limitada;
  4. confirme que o 400 desapareceu;
  5. acrescente arquivos e tool calls aos poucos.

Se até a tarefa mínima falhar, pare de aparar a conversa antiga e investigue endpoint, model mapping, proxy e formato da requisição. Se apenas a sessão longa falhar, foque no momento da compactação, no tamanho dos resultados e na separação entre tarefas.

Perguntas frequentes

Por que reiniciar o Claude Code não resolveu?

Reiniciar não garante histórico vazio. --continue, --resume e o seletor de sessões recuperam a conversa anterior. Para isolar a causa, use uma sessão realmente nova e uma tarefa mínima.

Reduzir output tokens ajuda?

Só quando a mensagem diz que entrada mais max_tokens excedem o orçamento combinado. Se houver um limite independente de input, reduzir a saída não garante correção.

Trocar de gateway sempre resolve?

Não. Pode ajudar quando o gateway atual tem body limit menor ou esconde erros upstream. Nenhum gateway ultrapassa o limite rígido do modelo final.

/clear apaga o código?

Não. Ele limpa o contexto da conversa, não os arquivos já gravados. Mesmo assim, confira git status e salve patch, commit ou snapshot antes.

Por que não apagar exatamente 43 caracteres?

A unidade não foi informada, e a requisição inclui conteúdo invisível: instruções de sistema, tools e histórico. Criar folga é mais confiável do que mirar exatamente o limite.

A sequência de recuperação para guardar

Para Input length exceeds maximum, siga esta ordem: salve o diff e um handoff manual em outro terminal → rode /context → tente /compact focado → se falhar, use /rewind para antes do output grande → se ainda falhar, faça /clear ou abra nova sessão → use uma tarefa mínima para localizar o limite → configure a compactação abaixo da janela real confirmada.

Esse processo não depende de adivinhar o que o número 43 significa e não promete que um proxy ultrapasse o limite rígido do modelo. Primeiro ele protege o que já foi feito; depois transforma um 400 vago em um diagnóstico reproduzível, camada por camada.

Quer otimizar seu fluxo de trabalho com LLMs?

Conecte modelos por uma única API, gerencie chaves e controle os gastos com IA.

Começar grátis