Cronologia e risoluzione dei problemi

Ogni richiesta che giunge a un webhook viene registrata, sia che venga accettata sia che venga rifiutata. La cronologia è il primo posto in cui consultare quando qualcosa non si è verificato.

Lettura di un’invocazione

Aprire la sezione "Cronologia" e fare clic su una voce. Verranno visualizzati l'ora e la data, lo stato, il mittente, la durata, il payload, le intestazioni della richiesta (mascherate), la stringa di query e, in caso di errori, il messaggio di errore e ogni tentativo di riprova.

Stato Significato
In sospeso Accettato e inserito in coda, non ancora consegnato a Shopify Flow
Successo Shopify Flow ha accettato il trigger
Non riuscito Consegna non riuscita in modo definitivo: la pagina dei dettagli ne illustra il motivo

La colonna "Invoked by" indica la provenienza di una chiamata: User (un sistema esterno), Flow (un'azione di Shopify Flow che richiama il webhook), Test (il pulsante "Test") o CURL.

Cronologia dei webhook filtrata su un solo webhook, con l’elenco delle chiamate con stato “Success” e origine “Sistema esterno”
Cronologia dei webhook, filtrata per un singolo webhook. Ogni richiesta è elencata con il relativo stato e la provenienza.
Un'invocazione aperta in History con le intestazioni della richiesta, il payload, lo stato, la durata e gli identificatori
Una richiesta, visualizzata in dettaglio: le intestazioni della richiesta (il token è mascherato), il payload, il tempo impiegato e il pulsante “Replay Webhook” in alto a destra.

I rifiuti e il significato di ciascuno di essi

Una richiesta respinta non raggiunge mai Shopify Flow. Il corpo della risposta contiene un codice di errore leggibile dal sistema (code):

Codice HTTP Cosa è andato storto Correzione
webhook_not_found 404 Codice breve sconosciuto Verifichi l'URL; è possibile che il webhook sia stato eliminato
webhook_disabled 400 Il webhook è disattivato Attivatelo nella pagina dedicata ai webhook
unauthorized 401 Token mancante o errato Verifichi il token e il nome dell'intestazione
missing_signature 401 Modalità HMAC, senza intestazione di firma Invii l'intestazione della firma prevista dal Suo preset
invalid_signature 401 La firma non corrispondeva Verifichi che il segreto di firma sia corretto e che il contenuto non sia stato alterato durante il trasferimento
auth_not_configured 401 La modalità "Auth" è impostata, ma non è stato salvato alcun token Salvare un token sul webhook
invalid_json 400 Il corpo del messaggio non è un JSON valido Invii un JSON valido oppure imposti il Content-Type corrispondente al contenuto effettivo del corpo del messaggio (vengono letti anche i dati dei moduli e l'XML)
invalid_body 400 Non è stato possibile leggere un modulo o il corpo XML, oppure il corpo è il valore letterale null Inviare un oggetto JSON oppure un corpo del messaggio che corrisponda al suo Content-Type
mapping_field_missing 400 Nel payload manca un campo mappato Inviare il campo oppure annullarne l’associazione
unexpected_fields 400 Il corpo presenta campi che non sono mappati Mappatele, rimuovetele oppure attivate l'opzione "Consenti corpo della richiesta personalizzato"
ip_not_allowed 403 L'indirizzo del chiamante non figura nell'elenco degli indirizzi IP autorizzati del webhook Si veda Elenchi di indirizzi IP autorizzati
invalid_proxy_signature 401 L'indirizzo proxy dell'app è stato richiamato direttamente anziché tramite il dominio del Suo negozio Utilizzi l'URL del webhook esattamente come indicato dall'app - si veda CORS, l'URL del proxy dell'app e le richieste del browser
payload_too_large 413 Shopify Flow payload superiore a 50 KB Riducete la quantità di dati inviati oppure disattivate i pulsanti di attivazione/disattivazione della richiesta di dati
quota_exceeded 400 Limite del piano raggiunto Si veda Piani e utilizzo

Live Request Inspector

Mentre avete un webhook aperto nell’editor, l’inspector mostra le richieste in arrivo in tempo reale, comprese quelle rifiutate, con l’indicazione del motivo. Questo è di gran lunga il modo più veloce per eseguire il debug di un mittente: inviate una richiesta e osservate la sua destinazione.

Anche i duplicati eliminati compaiono in questa sezione, contrassegnati come tali - si veda Protezione contro le consegne duplicate.

Replay

Qualsiasi invocazione precedente può essere riprodotta dalla relativa pagina dei dettagli. La riproduzione invia nuovamente lo stesso payload tramite lo stesso webhook.

Due cose per cui è particolarmente indicato:

  • Creazione di un workflow in Flow. Registrare gli eventi sul trigger Webhook, quindi riprodurre un vero Eseguite la chiamata in modo che Shopify Flow apprenda i nomi effettivi dei campi.
  • Ripristino a seguito di un’interruzione del workflow. Si corregga il workflow, quindi si rieseguano gli eventi che sono stati eseguiti sebbene fosse sbagliato.

Le repliche sono contrassegnate come tali nella cronologia e non vengono conteggiate ai fini del Suo piano.

Situazioni comuni

Le chiamate arrivano, ma il workflow non viene eseguito. Quasi sempre il problema è legato alla condizione relativa all’ID del webhook. Un workflow con trigger webhook riceve eventi da tutti i webhook di cui disponete, pertanto richiede una condizione che corrisponda all’ID specifico del webhook - consultate Creare il Suo primo webhook.

Il workflow viene eseguito due volte. Ciò può significare che due flussi di lavoro utilizzano il trigger Webhook senza condizioni distinte, oppure che il mittente sta effettuando un nuovo tentativo. La cronologia Le indica quale delle due ipotesi sia corretta: due voci indicano che sono pervenute due richieste. AttiviProtezione contro le consegne duplicate (Rilevamento dei tentativi multipli).

Non risulta assolutamente nulla nella cronologia. La richiesta non ci è mai pervenuta. Verifichi l’URL e il codice abbreviato e si assicuri che il mittente non presenti errori TLS o DNS dalla sua parte.

Lo stato rimane bloccato su “In sospeso”. La consegna viene riprovata con un meccanismo di backoff; in caso di errore permanente, lo stato passa a “Fallito” con l’indicazione del motivo. Se lo stato rimane “In sospeso” per un periodo insolitamente lungo, si prega di verificare status.codecreationlabs.cloud.