Histórico e resolução de problemas

Todas as solicitações que chegam a um webhook são registadas - quer sejam aceites, quer sejam rejeitadas. O histórico é o primeiro local onde se deve procurar quando algo não ocorreu.

Leitura de uma invocação

Abra o «Histórico» e clique numa entrada. Obterá a data e hora, o estado, o remetente, a duração, o payload, os cabeçalhos da solicitação (mascarados), a cadeia de consulta e, em caso de falhas, o erro e todas as tentativas de repetição.

Estado Significado
Em espera Aceite e colocado em fila, ainda não entregue a Shopify Flow
Sucesso Shopify Flow aceitou o gatilho
Falha A entrega falhou definitivamente - a página de detalhes indica o motivo

A coluna «Invoked by» indica-lhe de onde provém uma chamada: User (um sistema externo), Flow (uma ação do Shopify Flow que chama o webhook), Test (o botão «Testar») ou CURL.

Histórico de webhooks filtrado para um único webhook, apresentando as chamadas com o estado «Sucesso» e a origem «Sistema Externo»
Histórico de webhooks, filtrado para um único webhook. Cada pedido é apresentado com o seu estado e a sua origem.
Uma invocação foi aberta no «History», com os seus cabeçalhos de pedido, payload, estado, duração e identificadores
Uma invocação, aberta: os cabeçalhos do pedido (o token está ocultado), a payload, o tempo que demorou e o Webhook de Repetição no canto superior direito.

Recusas e o que cada uma delas significa

Um pedido rejeitado nunca chega ao Shopify Flow. O corpo da resposta contém um código de estado code, legível por máquina:

Código HTTP O que correu mal Corrigir
webhook_not_found 404 Código abreviado desconhecido Verifique o URL; o webhook poderá ter sido eliminado
webhook_disabled 400 O Webhook está desativado Ative-o na página do webhook
unauthorized 401 O token está em falta ou está incorreto Verifique o token e o nome do cabeçalho
missing_signature 401 Modo HMAC, sem cabeçalho de assinatura Envie o cabeçalho de assinatura que a sua predefinição espera
invalid_signature 401 A assinatura não correspondeu Confirme o segredo de assinatura e verifique se o corpo da mensagem não foi alterado durante a transmissão
auth_not_configured 401 O modo de autenticação está definido, mas não foi guardado nenhum token Guarde um token no webhook
invalid_json 400 O corpo da mensagem não é um JSON válido Envie JSON válido ou defina o tipo de conteúdo (Content-Type) que o corpo da mensagem efetivamente possui (os dados de formulário e o XML também são lidos)
invalid_body 400 Não foi possível ler um formulário ou o corpo XML, ou o corpo corresponde ao valor literal null Envie um objeto JSON ou um corpo que corresponda ao seu Content-Type
mapping_field_missing 400 Falta um campo mapeado na payload Envie o campo ou anule a sua atribuição
unexpected_fields 400 O corpo contém campos que não estão mapeados Mapeie-os, elimine-os ou ative a opção «Permitir corpo de pedido personalizado»
ip_not_allowed 403 O endereço do autor da chamada não consta da lista de endereços IP autorizados do webhook Consulte Listas de endereços IP autorizados
invalid_proxy_signature 401 O endereço do proxy da aplicação foi acedido diretamente, em vez de ser acedido através do domínio da sua loja Utilize o URL do webhook exatamente tal como é apresentado na aplicação - consulte CORS, o URL do proxy da aplicação e as chamadas do navegador
payload_too_large 413 Shopify Flow payload superior a 50 KB Envie menos dados ou desative os botões de ativação/desativação dos dados de pedido
quota_exceeded 400 Limite do plano atingido Consulte Planos e utilização

Inspecionador de Pedidos em Tempo Real

Enquanto tiver um webhook aberto no editor, o inspetor mostra os pedidos que chegam em tempo real - incluindo os rejeitados, com a respetiva justificação. Esta é, de longe, a forma mais rápida de depurar um remetente: envie um pedido e observe o seu destino.

As duplicatas suprimidas também aparecem aqui, identificadas como tal - consulte Proteção contra entregas duplicadas.

Repetição

Qualquer invocação anterior pode ser reproduzida a partir da respetiva página de detalhes. A reprodução reenvia a mesma payload através do mesmo webhook.

Há duas coisas para as quais é muito bom:

  • Criar um fluxo de trabalho no Flow. Registe eventos no «Webhook Trigger» e, em seguida, reproduza um evento real Efetue essa chamada para que o Shopify Flow aprenda os nomes reais dos seus campos.
  • Recuperação após uma falha no fluxo de trabalho. Corrija o fluxo de trabalho e, em seguida, repita os eventos que foram executados embora estivesse errado.

As repetições são identificadas como tal no histórico e não são contabilizadas no seu plano.

Situações comuns

Recebem-se chamadas, mas o fluxo de trabalho não é executado. Quase sempre, a condição relativa ao ID do Webhook. Um fluxo de trabalho com o gatilho «Webhook» recebe eventos de todos os Webhooks de que é titular, pelo que necessita de uma condição que corresponda ao ID específico do Webhook - consulte Crie o seu primeiro webhook.

O fluxo de trabalho é executado duas vezes. Ou dois fluxos de trabalho utilizam o «Webhook Trigger» sem condições distintas, ou o seu remetente está a tentar novamente. O histórico indica-lhe qual das situações se verifica: duas entradas significam que chegaram dois pedidos. Ative a opção Proteção contra entregas duplicadas.

Não consta absolutamente nada no Histórico. O pedido nunca nos chegou. Verifique o URL e o código curto, e certifique-se de que o remetente não está a falhar no TLS ou no DNS da sua parte.

O estado permanece em «Pendente». A entrega é repetida com um período de espera; uma falha permanente altera o estado para «Falha», indicando o motivo. Se permanecer pendente durante um período invulgarmente longo, consulte status.codecreationlabs.cloud.