Geschiedenis en probleemoplossing

Elk verzoek dat bij een webhook binnenkomt, wordt geregistreerd - ongeacht of het is geaccepteerd of afgewezen. De geschiedenis is de eerste plaats waar u moet kijken wanneer er iets niet is gebeurd.

Het voorlezen van een openingsgebed

Open ‘Geschiedenis’ en klik op een vermelding. U krijgt dan de tijdstempel, de status, de aanroeper, de duur, de payload, de (gemaskeerde) verzoekheaders, de queryreeks en, in geval van fouten, de foutmelding en elke herhalingspoging te zien.

Status Betekenis
In behandeling Geaccepteerd en in de wachtrij geplaatst, nog niet aan Shopify Flow geleverd
Succes Shopify Flow heeft de trigger geaccepteerd
Mislukt De levering is definitief mislukt - op de detailpagina wordt uitgelegd waarom

De kolom ‘Invoked by’ geeft aan waar een oproep vandaan kwam: User (een extern systeem), Flow (een Shopify Flow-actie die de webhook aanroept), Test (de knop ‘Test’) of CURL.

Webhook-geschiedenis, gefilterd op één webhook, met een overzicht van aanroepen met de status ‘Succes’ en de bron ‘Extern systeem’
Webhook-geschiedenis, gefilterd op één webhook. Elk verzoek wordt weergegeven met de bijbehorende status en de herkomst ervan.
Eén aanroep werd in History geopend, met de bijbehorende verzoekheaders, payload, status, duur en identificatiegegevens
Eén aanroep, weergegeven: de verzoekheaders (het token is gemaskeerd), de payload, de duur van de verwerking en ‘Replay Webhook’ rechtsboven.

Afwijzingen, en wat ze elk betekenen

Een afgewezen verzoek komt nooit bij Shopify Flow terecht. De inhoud van het antwoord bevat een machinaal leesbare code:

Code HTTP Wat ging er mis? Oplossing
webhook_not_found 404 Onbekende korte code Controleer de URL; de webhook is mogelijk verwijderd
webhook_disabled 400 De webhook is uitgeschakeld Schakel deze functie in op de webhook-pagina
unauthorized 401 Token ontbreekt of is onjuist Controleer het token en de naam van de header
missing_signature 401 HMAC-modus, zonder handtekeningheader Verzend de handtekeningheader die uw voorinstelling verwacht
invalid_signature 401 De handtekening kwam niet overeen Controleer of het ondertekeningsgeheim correct is en of de inhoud tijdens de overdracht niet is gewijzigd
auth_not_configured 401 Auth-modus is ingesteld, maar er is geen token opgeslagen Sla een token op in de webhook
invalid_json 400 De inhoud is geen geldige JSON Stuur geldige JSON-gegevens, of stel de Content-Type in die uw berichttekst daadwerkelijk heeft (formuliergegevens en XML worden ook gelezen)
invalid_body 400 Een formulier of XML-body kon niet worden gelezen, of de body is de letterlijke tekst null Verzend een JSON-object of een berichttekst die overeenkomt met de Content-Type-header
mapping_field_missing 400 Een toegewezen veld ontbreekt in de payload Het veld verzenden of de koppeling ervan opheffen
unexpected_fields 400 Het object bevat velden die niet zijn toegewezen Breng ze in kaart, verwijder ze of schakel de optie ‘Aangepaste verzoektekst toestaan’ in
ip_not_allowed 403 Het adres van de beller staat niet op de lijst met toegestane IP-adressen van de webhook Zie IP-toegangslijsten
invalid_proxy_signature 401 Er werd rechtstreeks verbinding gemaakt met het proxy-adres van de app, in plaats van via het domein van uw winkel Gebruik de webhook-URL precies zoals deze in de app wordt weergegeven - zie CORS, de URL van de app-proxy en browserverzoeken
payload_too_large 413 The Shopify Flow payload is larger than 50 KB Verzend minder gegevens, of schakel de schakelaars voor het opvragen van gegevens uit
quota_exceeded 400 De limiet van het abonnement is bereikt Zie Abonnementen en gebruik

Live Request Inspector

Zolang u een webhook in de editor geopend hebt, toont de inspector de binnenkomende verzoeken in realtime - inclusief de afgewezen verzoeken, met vermelding van de reden. Dit is veruit de snelste manier om een verzender te debuggen: verstuur een verzoek en kijk hoe het aankomt.

Ook verwijderde dubbele vermeldingen verschijnen hier, waarbij ze als zodanig zijn aangeduid - zie Bescherming tegen dubbele leveringen.

Herhaling

Elke eerdere aanroep kan vanaf de detailpagina opnieuw worden afgespeeld. Bij het opnieuw afspelen wordt dezelfde payload via dezelfde webhook opnieuw verzonden.

Er zijn twee dingen waarvoor het bijzonder geschikt is:

  • Een Shopify Flow-workflow opzetten. Registreer gebeurtenissen via de Webhook-trigger en speel vervolgens een echte Voer deze aanroep uit, zodat Shopify Flow uw daadwerkelijke veldnamen leert kennen.
  • Herstel na een onderbroken workflow. Corrigeer de workflow en speel vervolgens de gebeurtenissen die zijn uitgevoerd opnieuw af hoewel het verkeerd was.

Herhalingen worden in de geschiedenis als zodanig gemarkeerd en tellen niet mee voor uw abonnement.

Veelvoorkomende situaties

Er komen oproepen binnen, maar de workflow wordt niet uitgevoerd. Dit heeft vrijwel altijd te maken met de voorwaarde voor de Webhook-ID. Een Webhook Trigger-workflow ontvangt gebeurtenissen van elke webhook die u bezit, dus er is een voorwaarde nodig die overeenkomt met de specifieke Webhook-ID - zie Maak uw eerste webhook aan.

De workflow wordt twee keer uitgevoerd. Ofwel maken twee workflows gebruik van de Webhook-trigger zonder specifieke voorwaarden, ofwel voert uw afzender een herhalingspoging uit. Aan de hand van de geschiedenis kunt u zien wat het geval is: twee vermeldingen betekenen dat er twee verzoeken zijn binnengekomen. Schakel de optie Bescherming tegen dubbele leveringen in.

Er staat helemaal niets in de geschiedenis. Het verzoek is nooit bij ons aangekomen. Controleer de URL en de korte code, en ga na of de afzender aan zijn kant geen problemen ondervindt met TLS of DNS.

De status blijft op ‘In behandeling’ staan. De levering wordt met een backoff-interval opnieuw geprobeerd; bij een permanente fout verandert de status in ‘Mislukt’ met vermelding van de reden. Indien de status ongewoon lang op ‘In behandeling’ blijft staan, controleer dan status.codecreationlabs.cloud.