Erros e motivos

Toda resposta de envio traz um codigo_motivo estável, para o agente decidir o que fazer, e uma message, para pessoas. Os erros de acesso e de servidor vêm com error.code e retryable (se vale tentar de novo).

Envio adiado (adiar): tente de novo depois de quando

CódigoPor quê
outside_send_windowfora do horário de envio que o dono ligou (padrão 08:00 às 21:00 no WhatsApp; 07:00 às 23:00 no Telegram; no fuso da conexão). A mensagem diz a hora: "tente de novo depois das HH:MM"
pacing_waitainda no intervalo mínimo entre envios
burst_pausepausa depois de uma rajada de envios
cap_hour_reached / cap_day_reachedteto da hora ou do dia atingido
cadence_variationritmo regular demais; adiado alguns instantes
reply_other_chat_needs_confirmationenvio para outra conversa logo depois de ler mensagem de outra pessoa: aprove no painel e repita com o confirmation_id

Envio negado (negar): não insista igual

CódigoO que fazer
destination_not_allowedo destino não está na lista permitida. Inclua no painel, se fizer sentido
session_pauseda conexão está pausada (pelo disjuntor, por você ou pelo agente). Retome no painel
scope_missinga chave não tem a permissão para essa ação
action_disabled_by_defaultação de risco alto, desligada por padrão
first_contact_daily_capchegou ao teto de primeiras mensagens do dia (para quem nunca falou com o número; o dono escolhe o teto em Regras de envio, até 3). Tente de novo depois do horário do campo quando; responder a quem já escreveu continua normal
cold_requires_optin / cold_mass_denied / cold_cap_reachedcontato frio, só no modo local: no hospedado quem está fora da lista recebe destination_not_allowed
duplicate_content_deniedo mesmo texto já foi para muitas pessoas. Varie o texto
too_many_linksmais de 1 link na mensagem
auto_reply_cap_conversation3 respostas seguidas sem a pessoa escrever de novo. Espere ela responder
conversation_cap_hour / conversation_cap_dayteto de respostas nessa conversa
conversation_paused_pingpongvai e volta automático demais. A conversa volta quando você falar nela
new_conversations_cap_hour / new_conversations_cap_dayteto de conversas novas atendidas
forward_deniedreencaminhar link ou mídia de outra pessoa: aprove no painel e repita com o confirmation_id
queue_horizon_exceededsó poderia sair daqui a mais de 48 horas
idempotent_replayesse mesmo pedido já foi decidido; nada foi reenviado. Para repetir de propósito, mande outra idempotency_key
idempotency_conflicta mesma idempotency_key foi usada com outro texto

Envio que falhou

CódigoO que fazer
send_failedo envio falhou e nada foi entregue. Pode tentar de novo
send_uncertainnão sabemos se saiu (o WhatsApp não respondeu a tempo). Confira no chat antes de reenviar; para reenviar mesmo assim, use outra idempotency_key
wa_not_connected / telegram_not_connecteda conexão não está de pé. Veja o status e, se preciso, pareie de novo no painel

Histórico, mídia e áudio (ainda não disponíveis)

CódigoO que significa
history_disableda importação de histórico está desligada. Ainda não dá para ligar pelo painel
media_disableda busca de mídia recebida está desligada. Ainda não dá para ligar pelo painel

Editar e apagar

CódigoO que fazer
message_not_foundnão achamos essa mensagem nessa conversa
not_your_messagesó dá para editar ou apagar mensagem que o Felku enviou nessa conversa
key_bound_to_other_channela chave está presa à outra conexão (WhatsApp ou Telegram). Use uma chave da conexão certa
edit_window_closedo WhatsApp só deixa editar até ~15 minutos depois do envio
delete_window_closedo WhatsApp só deixa apagar para todos até ~2 dias depois do envio

Acesso

HTTPCódigoO que fazer
401unauthorizedchave ausente, errada, vencida ou revogada. Confira o cabeçalho Authorization: Bearer ...
403connection_requireda chave é válida, mas a conta ainda não conectou o WhatsApp nem o Telegram. Conecte um canal no painel
403not_your_connectiona chave não pode usar essa conexão (é de outra conta)
405method_not_alloweduse POST

Protocolo MCP

CódigoO que significa
-32602 "Unknown tool"a ferramenta não existe ou a chave não tem a permissão dela
-32602 "Invalid arguments"argumento faltando, a mais ou fora do tamanho
-32020 "Header mismatch"na revisão 2026-07-28, os cabeçalhos MCP-Protocol-Version, Mcp-Method ou Mcp-Name não batem com o corpo
-32022 "Unsupported protocol version"versão do MCP que o servidor não conhece; a resposta lista as aceitas

Avisos de conexão

CódigoO que fazer
linked_devices_others / linked_devices_unofficialo número tem outros aparelhos vinculados. No celular, em Dispositivos conectados, remova os que não usa: aparelhos demais derrubam a conexão

Erros comuns

  • "O agente não vê as ferramentas." Confira a URL, o cabeçalho Authorization e se a chave não foi revogada. Se a resposta for connection_required, conecte um canal no painel. Peça "liste as ferramentas do felku-connect". Se aparecerem só algumas, a chave tem poucas permissões.

  • "O agente lê as mesmas mensagens toda vez." Ele não está mandando o next_cursor anterior em after.

  • "A mensagem não saiu e não deu erro." Veja o acao: adiar quer dizer "ainda não"; o servidor não envia sozinho depois.

  • "Fora do horário" à noite. O horário de envio vale no fuso da conexão; a mensagem diz qual é.

  • "Dois agentes responderam a mesma mensagem." Cada chave lê pelo próprio cursor. Deixe só um agente com permissão de envio por conexão.

  • "A conexão caiu." O WhatsApp derruba aparelhos vinculados de vez em quando. Veja o estado com felku_get_connection_status ou no painel e pareie de novo em Conexões.

Lista completa de códigos

Todos os códigos que o servidor pode devolver, com o texto que acompanha cada um. A lista é gerada do código do servidor; alguns são raros ou internos.

Códigos de acesso, conta e servidor (error.code)

CódigoTexto
unauthorizedChave ausente ou inválida.
forbidden_originOrigem não permitida.
forbidden_hostHost não permitido.
bad_requestPedido malformado.
not_foundNão encontrado.
method_not_allowedMétodo HTTP não permitido aqui.
payload_too_largeCorpo grande demais.
risk_not_acceptedÉ preciso aceitar o aviso de risco antes de conectar.
risk_version_outdatedO aviso de risco mudou. Leia a versão atual e aceite de novo antes de conectar.
allowlist_missingNenhum número está liberado para o agente conversar. Adicione os números com quem ele pode falar (no painel; no modo local, em FELKU_CONNECT_WA_ALLOW_NUMBERS). Enquanto isso, nada é lido nem enviado.
invalid_numberNúmero ou identificador inválido. Use o telefone com DDI (ex.: +55 11 91234-5678).
allowlist_limitVocê chegou ao limite de números do seu plano. Remova um para adicionar outro.
trial_one_chatNo teste grátis o agente conversa com 1 chat do Telegram. Remova o atual para adicionar outro, ou assine.
trial_contacts_limitNo teste grátis o agente conversa com você e mais <limite> contatos. Remova um para adicionar outro, ou assine para liberar mais.
state_unreadableestado de segurança ilegível depois de reiniciar; confira a atividade e retome no painel, em Conexões
trial_person_onlyNo teste grátis o agente só conversa com uma pessoa (chat privado do Telegram). Grupos e canais do Telegram não são aceitos em nenhum plano.
already_in_listEsse número já está na lista.
allowlist_entry_not_foundEsse item não está na sua lista.
wa_adapter_unavailableO adaptador de WhatsApp não está disponível neste servidor.
wa_not_connectedO WhatsApp não está conectado.
telegram_not_connectedO Telegram não está conectado. Conecte o seu bot no painel, em Conexões › Nova conexão › Telegram.
unavailable_shared_botLeitura de mensagens indisponível: este bot é compartilhado com a produção do Felku e o recebimento está desligado de propósito.
invalid_tokenToken do bot inválido.
telegram_unreachableNão consegui falar com o Telegram agora.
webhook_conflictEste bot tem um webhook ativo; receber por polling entraria em conflito. O recebimento foi parado e nada foi apagado.
unknown_toolFerramenta desconhecida.
bad_argumentsArgumentos inválidos para esta ferramenta.
send_failedO envio falhou. Nada foi entregue.
send_uncertainNão sabemos se a mensagem saiu (tempo esgotado). Confira no chat antes de reenviar; para reenviar mesmo assim, use outra idempotency_key.
message_not_foundNão achei essa mensagem na caixa de entrada deste chat (ou ela já passou do prazo de guarda).
not_your_messageSó dá para editar ou apagar mensagens que o Felku enviou para este chat.
edit_window_closedEsta mensagem não pode mais ser editada: no <canal>, a edição vale até <janela> depois do envio.
delete_window_closedEsta mensagem não pode mais ser apagada para todos: no <canal>, isso vale até <janela> depois do envio.
history_disabledO histórico importado está desligado para esta conexão.
history_notice_requiredPara ligar o histórico é preciso aceitar o aviso.
history_notice_outdatedO aviso do histórico mudou: leia a versão atual e aceite de novo.
history_chat_not_allowedSó dá para ler o histórico de conversas que estão na lista de permitidos.
history_no_anchorAinda não há histórico deste chat para usar como ponto de partida.
media_disabledO recebimento de mídia está desligado para esta conexão.
media_too_largeEssa mídia é grande demais para ser entregue.
media_expiredA mídia já expirou: ela só fica disponível por alguns minutos depois de chegar.
media_unsupportedEste tipo de mídia não pode ser baixado (só imagem, documento, vídeo, áudio e figurinha).
media_unavailableNão foi possível obter essa mídia.
notice_requiredPara ligar isto é preciso aceitar o aviso.
notice_outdatedO aviso mudou: leia a versão atual e aceite de novo.
transcription_unavailableA transcrição de áudio não está configurada neste servidor.
transcription_not_in_planO seu plano não inclui transcrição de áudio.
rate_limitedMuitas chamadas. Tente de novo em instantes.
internal_errorErro interno.
header_mismatchOs cabeçalhos HTTP não batem com o corpo do pedido.
unsupported_protocol_versionVersão do protocolo MCP não suportada.
invalid_credentialsE-mail ou senha incorretos.
too_many_attemptsMuitas tentativas. Aguarde um pouco e tente de novo.
weak_passwordA senha precisa ter entre 10 e 128 caracteres.
invalid_emailEsse e-mail não parece válido.
terms_not_acceptedÉ preciso aceitar os Termos e a Política de Privacidade.
terms_version_outdatedOs Termos mudaram. Recarregue a página para ver a versão atual e aceite de novo.
invalid_or_expired_tokenEste link é inválido ou expirou. Peça um novo.
invalid_or_expired_codeCódigo inválido ou expirado. Peça um novo.
check_emailSe o e-mail puder ser usado, enviamos um código para ele.
session_requiredEntre na sua conta para continuar.
email_not_verifiedConfirme o seu e-mail para continuar.
checkout_in_progressJá existe um pagamento em andamento. Conclua-o ou aguarde um minuto para tentar de novo.
withdrawal_window_closedO prazo de <days> dias para desistir da compra já passou.
plan_requiredEscolha um plano para continuar.
billing_state_blocks_actionO estado da sua assinatura não permite esta ação.
delete_confirmation_requiredConfirme a exclusão digitando a palavra pedida e a senha.
not_your_connectionEsta conexão pertence a outra conta.
connection_requiredSua chave é válida, mas nenhum canal está conectado ainda. Conecte o WhatsApp ou o Telegram no painel (Conexões › Nova conexão) antes de usar a chave.
key_bound_to_other_channelEsta chave está presa a outra conexão (WhatsApp ou Telegram) e não pode usar as ferramentas deste canal.
key_not_foundChave não encontrada.
accounts_disabledAs contas não estão ligadas neste servidor.
service_busyServidor ocupado. Tente de novo em instantes.
downgrade_requires_choiceEscolha quais números continuam antes de descer de plano.
same_planEste já é o seu plano.

Motivos do envio (codigo_motivo)

CódigoTexto
okPode enviar.
invalid_requestPedido inválido: campo <campo>.
kill_switch_sessionEsta conexão foi desligada pelo interruptor de emergência.
kill_switch_keyEsta chave foi desligada pelo interruptor de emergência.
profile_unknownO perfil de limites <perfil> não existe. Nada é enviado sem limites.
scope_missingEsta chave não tem o escopo <escopo>.
idempotency_key_requiredEnvio real exige uma chave de idempotência (o servidor gera uma sozinho quando você não manda).
idempotent_replayEste pedido já foi decidido antes. Nada será reenviado. Para repetir a mesma mensagem de propósito, mande outra idempotency_key.
idempotency_conflictA mesma chave de idempotência foi usada com outro conteúdo.
action_disabled_by_defaultA ação <acao> (risco <nivel>) vem desligada. Só um escopo específico da chave a libera.
channel_requires_dedicated_numberEsta ação só é permitida em um número dedicado.
session_pausedA conexão está pausada (<motivo>). Só uma pessoa pode retomar.
destination_not_allowedEste número não está na sua lista de contatos. Para o agente falar com ele, adicione-o no painel, em Conexões, na tela do canal (Com quem o agente pode conversar).
allowlist_wildcard_not_allowedEste perfil não permite liberar todos os destinos.
cold_requires_optinPrimeira mensagem para quem nunca escreveu exige a confirmação de que a pessoa pediu o contato.
cold_mass_deniedEnvio para lista fria foi negado: já houve <destinos> destinos frios na janela.
duplicate_content_deniedEste conteúdo já foi enviado a <destinos> destinos nas últimas 24 h. O limite existe contra envio em massa.
conversation_paused_pingpongEsta conversa foi pausada por trocas automáticas repetidas. O dono precisa falar para liberar.
auto_reply_cap_conversationLimite de <max> respostas automáticas seguidas sem uma nova mensagem da pessoa.
conversation_cap_hourLimite de <teto> respostas por hora nesta conversa.
conversation_cap_dayLimite de <teto> respostas por dia nesta conversa.
new_conversations_cap_hourLimite de <teto> conversas novas atendidas por hora. Quem já está em conversa continua.
new_conversations_cap_dayLimite de <teto> conversas novas atendidas por dia. Quem já está em conversa continua.
cadence_variationO ritmo dos envios estava regular demais; o envio foi adiado alguns instantes para variar.
linked_devices_unofficialEste número já tem <count> aparelho(s) vinculado(s) não oficial(is). Remova os que não usa: aparelhos demais derrubam a conexão.
linked_devices_othersEste número tem <count> outro(s) aparelho(s) vinculado(s). Confira em Dispositivos conectados e remova os que não usa: aparelhos demais derrubam a conexão.
reply_other_chat_needs_confirmationResponder a um terceiro em outro chat exige confirmação do dono.
forward_deniedLink ou mídia recebidos de terceiro não são reenviados para outro chat sem confirmação.
outside_send_windowFora do horário de envio. Tente de novo depois das <hora> (<fuso>).
pacing_waitAguardando o intervalo mínimo entre envios.
burst_pausePausa depois de uma rajada de envios.
cap_hour_reachedTeto por hora atingido (<usado> de <teto>).
cap_day_reachedTeto diário atingido (<usado> de <teto>).
cold_cap_reachedTeto de primeiras mensagens atingido (<usado> de <teto>).
first_contact_daily_capVocê já mandou <usado> primeiras mensagens hoje (o teto é <teto> por dia, igual em todos os planos). Volta a liberar às <volta> (<fuso>). Responder quem já escreveu continua normal.
group_rate_limitedLimite de <max> operações de grupo na janela. Aguarde.
limit_zeroEste limite está em zero neste perfil: a ação está desativada.
queue_horizon_exceededA espera passaria do limite da fila. O pedido foi negado.
too_many_linksMensagem com <links> links; o máximo é <max>.
loop_echo_discardedEco de uma mensagem enviada por nós, descartado.
owner_outbound_ignoredMensagem do dono para um terceiro não é entrada para o agente.
history_not_deliveredHistórico ou mensagem offline não é entregue ao agente.
inbound_expiredA mensagem é antiga demais para ser entregue ao agente.
duplicate_inboundMensagem repetida, ignorada.
inbound_filteredEste tipo de entrada não é entregue ao agente (grupo, status, canal, reação, edição ou chamada).
already_claimedOutro agente já assumiu a resposta a esta mensagem.
lid_unresolvedNão foi possível identificar o remetente (identificador LID sem correspondência).

Idioma e tema