Feilsøking av feil i Shopify Flow

Shopify Flow hjelper deg med å automatisere oppgaver og prosesser i butikken din, men du kan støte på feil eller nå visse begrensninger når du oppretter eller redigerer arbeidsflyter. Denne siden forklarer vanlige problemer du kan støte på, som arbeidsflytbegrensninger og datafeil, og gir veiledning om hvordan du kan løse dem. Ved å forstå disse feilene kan du feilsøke problemer og holde arbeidsflytene i gang uten problemer.

Feil ved oppretting av arbeidsflyter

Når du oppretter en arbeidsflyt, kan du støte på feil som hindrer deg i å legge til en ny. Dette er noen av feilene du kan støte på:

Antall arbeidsflyter overskredet

Når du oppretter en ny arbeidsflyt, kan du få en feilmelding som sier Du har nådd den maksimale grensen på 1000 tillatte arbeidsflyter. For å fortsette må du slette eventuelle ubrukte arbeidsflyter og prøve på nytt.

Flow begrenser antall arbeidsflyter en butikk kan ha til 1000. Dette inkluderer aktive og inaktive arbeidsflyter. Hvis du når denne grensen og vil opprette en ny arbeidsflyt, må du slette ubrukte eller inaktive arbeidsflyter.

Hvis butikken din hadde mer enn 1000 arbeidsflyter før denne grensen ble satt, kan butikken fortsette å fungere med mer enn 1000 arbeidsflyter. For å kunne opprette nye arbeidsflyter, må du imidlertid være under grensen.

Du kan oppleve denne feilen når du utfører en rekke handlinger i Flow-appen:

  • Opprette en ny arbeidsflyt
  • Duplisere en arbeidsflyt
  • Importere en arbeidsflyt
  • Installere en mal
For mange arbeidsflyter på samme utløser

Når du aktiverer en arbeidsflyt, kan du se en advarsel om at butikken har mer enn 10 aktive arbeidsflyter som bruker den samme utløseren.

Å ha mange arbeidsflyter som deler den samme utløseren, kan forårsake ytelsesproblemer. Dette er fordi Flow må behandle alle de tilknyttede arbeidsflytene hver gang utløserhendelsen inntreffer. Denne spredningen kan føre til tregere utførelsestider og økt ressursbruk.

Vurder følgende fremgangsmåter for å redusere antallet arbeidsflyter på én enkelt utløser:

  • Slå sammen arbeidsflyter som bruker den samme utløseren, til én enkelt arbeidsflyt med flere forgreninger og betingelser.
  • Deaktiver eller slett arbeidsflyter som ikke lenger er nødvendige.
  • Se over om noen arbeidsflyter heller kan bruke en mer spesifikk utløser.

Feil ved redigering av arbeidsflyter

Når du redigerer en arbeidsflyt, kan du støte på feil som hindrer deg i å lagre den. Følgende er vanlige feil du kan støte på når du redigerer en arbeidsflyt:

Data ikke funnet

Når du legger til en ny handling i en arbeidsflyt, kan du få en feilmelding som sier Data ikke funnet:

Feilmelding om data ikke funnet

Denne feilen oppstår fordi mange handlinger, inkludert Legg til produkttagger, krever en Shopify-ressurs, for eksempel et produkt. Hvis den ressursen ikke er tilgjengelig, kan ikke handlingen kjøres. Ofte kan arbeidsflyter inneholde data som ligner på de nødvendige dataene, men som faktisk ikke gir det som trengs.

De følgende avsnittene beskriver vanlige scenarioer som kan forårsake denne feilen, og hvordan du kan løse dem.

Problem 1: En liste ble levert av Hent data når én enkelt vare var nødvendig

Ofte gir en arbeidsflyt en liste over Shopify-ressurser, men handlingen tillater bare én enkelt ressurs. For eksempel kan arbeidsflyten gi en liste over produkter via Hent produktdata, men handlingen Legg til produkttagger krever ett enkelt produkt.

For å løse denne feilen kan du legge til en For hver-handling for å gå gjennom listen og kalle på handlingen for hver vare i listen. Dette eksempelet illustrerer både feilen og løsningen ved hjelp av For hver:

Feilmelding om data ikke funnet

Problem 2: En liste ble levert av utløseren når én enkelt vare var nødvendig

En lignende feil kan oppstå når en handling krever én enkelt ressurs, men utløseren gir en liste. For eksempel krever Merk en distribusjonsbestilling som innfridd en distribusjonsbestilling, men utløseren kommer fra en bestilling, som gir en liste over distribusjonsbestillinger.

For å løse denne feilen, som med problem 1, kan du legge til en For hver-handling for å gå gjennom listen og kalle på handlingen for hver vare i listen:

Løsning for distribusjonsbestillinger

Alternativt kan du bruke en annen utløser som gir den nødvendige ressursen. I stedet for å bruke utløseren Bestilling opprettet, kan du for eksempel bruke utløseren Distribusjonsbestilling klar til å innfris, som gir én enkelt distribusjonsbestilling.

Eksempel på utløseren Distribusjonsbestilling klar til å innfris

Problem 3: Ingen data ble levert av utløseren Planlagt tid

Utløseren Planlagt tid gir ikke Shopify-ressursdata. Hvis du prøver å koble til handlinger som krever Shopify-ressurser etter utløseren, vil du støte på feilen.

For å løse denne feilen, kan du legge til en handling, for eksempel Hent produktdata, som gir de nødvendige dataene. Som nevnt i problem 1, må du også legge til en For hver-handling for å gå gjennom enhver liste som returneres av en handling som henter data.

Eksempel på manglende nødvendig produkt

Problem 4: Ingen data ble levert av en apputløser

I likhet med problem 3, gir noen utløsere som er opprettet av apper ikke de nødvendige Shopify-ressursdataene. For eksempel kan en «Anmeldelse opprettet»-utløser gi en e-postadresse, men ikke et kunde-objekt, som er nødvendig for mange handlinger, for eksempel Legg til kundetagger.

For å løse denne feilen, kan du kanskje bruke en «Hent data»-handling for å hente Shopify-ressursen du trenger. For eksempel kan du bruke Hent kundedata for å hente kundeobjektet fra e-postadressen som er levert av utløseren. Som med de andre problemene, må du også legge til en For hver-handling for å gå gjennom enhver liste som returneres av en handling som henter data.

Hvis «Hent data» ikke er et alternativ, må du kanskje kontakte apputvikleren for å spørre om de kan endre utløseren sin slik at den gir de nødvendige dataene.

Antall ventetrinn overskredet

Når du legger til nye ventetrinn i arbeidsflyten, kan du få en feilmelding som sier Arbeidsflyter må ha 40 eller færre ventetrinn.

Flow begrenser antall tillatte ventetrinn i en arbeidsflyt til 40. Hvis du støter på denne feilen, har du overskredet denne grensen. For å løse problemet må du fjerne ventetrinn andre steder i arbeidsflyten.

Hvis du hadde arbeidsflyter med mer enn 40 ventetrinn før denne grensen ble innført, vil de fortsette å fungere som forventet. For å legge til flere ventetrinn må du imidlertid først fjerne eksisterende trinn for å holde deg under grensen.

I tillegg kan den totale ventetiden på tvers av alle ventetrinn ikke overstige 90 dager.

Størrelsesgrense for konfigurasjonsfeltverdi overskredet

Når du redigerer verdien i konfigurasjonsfelt i betingelsene i arbeidsflyten, kan du få en feilmelding som sier Verdien i konfigurasjonsfeltet må være under 50 kB.

Flow begrenser størrelsen på en konfigurasjonsfeltverdi til 50 kB med data. Når du støter på denne feilen, har du nådd eller overskredet grensen. For å løse problemet må du forkorte lengden på dataene du legger til i feltet.

Hvis du allerede har konfigurasjonsfelt med en verdi på 50 kB eller mer, vil arbeidsflytene dine fortsette å kjøre som forventet. For å kunne gjøre endringer i en slik arbeidsflyt, må du imidlertid revidere verdien som forårsaker feilen.

Feil når en arbeidsflyt kjører

Når en arbeidsflytkjøring støter på en feil, merkes den som mislykket. Feilmeldingen vises i kjøringsdetaljene. Følgende er vanlige feil du kan støte på når en arbeidsflytkjøring mislykkes:

  • Midlertidige feil er feil som oppstår når Flow ikke klarer å fullføre en oppgave. Disse feilene blir forsøkt på nytt til de enten lykkes eller når en tidsavbruddsgrense.
  • Permanente feil er feil som oppstår når Flow ikke kan fullføre en oppgave, og oppgaven ikke kan prøves på nytt.

Midlertidige feil

Midlertidige feil er feil som oppstår når Flow ikke klarer å fullføre en oppgave. Det gjøres nye forsøk på disse feilene frem til de enten lykkes eller når en tidsavbruddsgrense. Hvis for eksempel Flow ikke klarer å kontakte en partner under kjøring av en tilkoblingshandling, prøver Flow oppgaven på nytt flere ganger før den gir opp.

Nye forsøk spres ut over tid, og forsinkelsen mellom hvert påfølgende forsøk øker. Når en arbeidsflyt opplever midlertidige feil, forblir den vanligvis i statusen kjører i lang tid mens den prøver oppgaver på nytt.

Når et nytt forsøk på en oppgave lykkes, fortsetter arbeidsflyten. Hvis en oppgave som prøves på nytt støter på en permanent feil, mislykkes arbeidsflyten. Hver arbeidsflytseksjon har en samlet øvre kjøringsgrense på 36 timer. Hvis et trinn med midlertidige feil ikke lykkes før grensen nås, mislykkes arbeidsflyten.

Arbeidsflyter med ventetrinn er delt inn i seksjoner, noe som påvirker hvordan tidsavbruddsgrenser beregnes i en arbeidsflyt. Hver seksjon er en gruppe med oppgaver som kjøres sammen, og hver av dem har sin egen tidsgrense på 36 timer. Hvis en arbeidsflyt for eksempel har et ventetrinn som venter i én time, kjøres oppgavene før ventetrinnet sammen i én seksjon, og oppgavene etter ventetrinnet kjøres sammen i en annen seksjon. Hvis en arbeidsflyt har flere ventetrinn, kjøres oppgavene mellom hvert ventetrinn sammen i én seksjon. Arbeidsflyter uten ventetrinn anses som én seksjon.

Sporadiske midlertidige feil er vanlig. Hvis du imidlertid har en arbeidsflyt som konsekvent støter på den samme midlertidige feilen over flere kjøringer, kan det hende arbeidsflyten må konfigureres på nytt.

Trinnet ble tidsavbrutt

Feil av typen Trinnet ble tidsavbrutt oppstår vanligvis når en oppgave i arbeidsflyten prøver å hente for mye data i én seksjon. Denne feilen oppstår ofte i arbeidsflyter som går i løkke gjennom lister, spesielt nestede lister som er for store til å bli behandlet raskt.

Når denne feilen oppstår, vises utløseren eller ventetrinnet som prøver på nytt.

For å løse dette problemet, kan du se gjennom betingelser som får tilgang til lister og nestede lister for å bekrefte at de er riktig konfigurert. Et vanlig problem er en betingelse som sjekker alle produkter i en butikk, i stedet for bare produktene i en bestilling.

5XX-status

De fleste Flow-handlinger innebærer HTTP-kall. Noen ganger kan nettverks- eller andre serverproblemer føre til at HTTP-kall mislykkes og returnerer en feilkode mellom 500 og 599. En enkelt forekomst av denne feilen er ikke noe problem, men gjentatte tilfeller kan tyde på et problem med serveren som håndterer oppgaven, i stedet for hvordan trinnet er konfigurert.

Denne typen feil vises oftest for handlingen Send HTTP-forespørsel, men den kan oppstå for de fleste oppgaver.

GraphQL-strupet

Den samlede arbeidsmengden som fullføres av en arbeidsflyt er begrenset av API-hyppighetsbegrensninger, som delvis bestemmes av abonnementet ditt. Vanligvis nås ikke disse grensene med mindre en arbeidsflyt er svært kompleks eller inneholder en utilsiktet designfeil.

Følgende eksempler beskriver situasjoner som kan føre til denne feilen:

  • Liquid eller betingelser i arbeidsflyten går i løkke over en liste med store mengder data, som for eksempel å kontrollere metafeltverdier som inneholder HTML.
  • Liquid eller betingelser i arbeidsflyten går i løkke over en stor liste, for eksempel å gå i løkke over shop.orders i en stor butikk.
  • En arbeidsflyt resulterer i en uendelig løkke der arbeidsflyten fortsetter å opprette nye arbeidsflytkjøringer. Dette kan for eksempel skje hvis arbeidsflyten bruker utløseren Kundetagger lagt til og inkluderer handlingen Legg til kundetagger.

Hvis grensen nås, mottar du en GraphQL-strupet-feil. Denne feilen kan påvirke andre arbeidsflyter når de prøver å kjøre, så du bør løse denne feilen umiddelbart hvis den oppstår.

Permanente feil

Permanente feil er feil som oppstår når Flow ikke kan fullføre en oppgave, og det ikke kan gjøres nye forsøk på oppgaven. Hvis for eksempel Flow ikke kan sende en e-post fordi e-postadressen er ugyldig, prøves ikke oppgaven på nytt. I stedet mislykkes arbeidsflyten.

Felt: ID-er er obligatoriske, men er tomme

Shopify-handlinger krever én eller flere ressurser, som et produkt, en kunde eller en bestilling, for å kjøre. Hvis den nødvendige ressursen ikke er tilgjengelig, kan ikke handlingen kjøre som tiltenkt. En bestilling kan for eksempel opprettes i Shopify-administrator uten en kunde. Hvis du kjører en handling, som Legg til kundetagger, mislykkes handlingen med denne feilen.

For å forhindre denne feilen, kan du legge til en betingelse før handlingen for å kontrollere om ressursen finnes. I det forrige eksempelet, hvis du vil sende en intern e-post i samme arbeidsflyt som Legg til kundetagger, kan du enten plassere e-posthandlingen før trinnet som kan mislykkes eller bruke én av følgende fremgangsmåter:

Plasser handlingene i parallelle grener (der to eller flere grener kommer ut fra ett trinn):

Eksempel som viser to handlinger parallelt etter en utløser.

Legg til en betingelse før handlingen for å kontrollere om kunden finnes. Du kan for eksempel kontrollere om bestilling / kunde / id ikke er tom og finnes.

Eksempel som viser en betingelse som ser etter en ID.

Flow har ikke tillatelse til Google Sheets-kontoen din. Koble til kontoen din på nytt.

Google Sheets-tilkoblingen krever at du kobler Google-kontoen din til Flow for å få tillatelse til å skrive til regnearket. Denne feilen kan oppstå når Flow ikke har tillatelse til å skrive til et regneark, enten fordi kontoen er koblet fra Flow eller fordi kontoen ikke har tilgang til det aktuelle regnearket.

For å løse dette, må du sørge for at kontoen som brukes for tilkoblingen kan åpne regnearket og har redigeringstilgang. Hvis feil konto er tilkoblet, kan du koble den fra og koble til en ny.

Trinn:

  1. Åpne en eksisterende arbeidsflyt, eller opprett en ny.
  2. Legg til en handling i arbeidsflyten.
  3. Velg Google Sheets-tilkoblingen.
  4. Klikk på Koble fra, og klikk deretter på Koble til for å koble til riktig Google-konto på nytt.
Flow-handling mottatt med ugyldige egenskaper. Kunden godtar ikke markedsføring.

Handlingen Send e-post med markedsføring sender ikke e-poster til kunder som ikke har samtykket til å motta dem, og mislykkes permanent hvis arbeidsflyten prøver å gjøre det.

For å løse dette problemet, kan du legge til en betingelse i arbeidsflyten som kontrollerer kundens abonnementsstatus. Du kan sørge for at kundene har samtykket til å motta e-poster med markedsføring før du sender dem. Følg trinnene i Administrasjon av e-postabonnentliste.

Mangler ressurs for [resource type]

Denne feilen indikerer at en ressurs, som for eksempel kunde eller bestilling, ble slettet før arbeidsflyten klarte å hente dataene. Dette skjer oftest etter et ventetrinn, men det kan også skje for utløseren hvis ressursen slettes svært raskt etter at utløserhendelsen finner sted.

Bli varslet når det oppstår en feil

Hvis feil påvirker butikkdriften, kan du konfigurere varsler for når det oppstår en feil. Feilvarsler kan opprettes som en arbeidsflyt ved hjelp av utløseren Feil i arbeidsflyt oppstod. Feilvarsler er utformet for å begrense «støy», slik at du bare får ett varsel per arbeidsflytversjon.

For å komme i gang kan du bruke en av følgende maler:

Kjøre kjøringer på nytt

I noen tilfeller kan en kjøring av en arbeidsflyt støte på en feil eller ikke kjøre som forventet. Etter feilsøking og retting av problemene i den relaterte arbeidsflyten, kan tidligere kjøringer kjøres på nytt manuelt for å rette opp resultatet av tidligere kjøringer i ettertid. Finn ut mer om å kjøre arbeidsflytkjøringer på nytt.

Kjører (frekvensbegrenset)

I noen tilfeller kan en eller flere arbeidsflyter bruke for mange ressurser, og for å forhindre at dette forårsaker problemer vil Flow bevisst begrense utføringen av kjøringer i butikken, noe som kan føre til forsinkelser og tidsavbruddsfeil. Dette kan løses ved å skrive om ineffektive arbeidsflyter, vanligvis for å rette opp en feil som gjorde at den ikke fungerte som tiltenkt.

Kjører for lenge

Denne meldingen indikerer at kjøringer for en arbeidsflyt tar veldig lang tid å utføre. Dette skyldes vanligvis bruk av en stor datamengde i en arbeidsflyt, som det tar lang tid for Flow å hente.

Disse tilfellene skyldes vanligvis dype forespørselsbaner som går gjennom flere lister med varer (for eksempel å be om alle metafelter for alle produkter i alle samlinger et produkt er en del av):

Eksempel på en arbeidsflyt som kjører lenge.

Dette henger ofte også sammen med at utløsertrinnet i en arbeidsflyt får tidsavbrudd.

Arbeidsflyter som går i løkke gjennom alle metafelter, kan ofte forbedres ved bare å bruke et bestemt metafelt. Tilgang til flere nestede lister (for eksempel alle produkter i alle samlinger for et produkt) eller spesielt store lister (for eksempel metafelt-definisjoner, som inneholder alle metafelter for alle objekter) kan ha blitt gjort utilsiktet, og ved å velge riktig felt (enkeltproduktet eller ett enkelt metafelt på et objekt) kan effektiviteten forbedres betydelig. I andre tilfeller kan bruk av handlingen «Get Product/Order/Customer Data» med et spørringsfilter redusere antallet objekter som brukes betydelig, samtidig som man fortsatt har tilgang til de relevante.

Behandler for mye data

Denne meldingen indikerer at kjøringer for en arbeidsflyt genererer en stor datamengde. Dette skyldes vanligvis komplekse betingelser som sjekker mange felt, som regel fordi felt på flere listenivåer sjekkes.

For eksempel kan en betingelse som «For minst én tagg på denne kunden, for minst én post i bestillingen, for minst én tagg på posten» føre til at mange kontroller utføres, og at mye data genereres for å vise resultatene av disse kontrollene:

Eksempel på en arbeidsflyt som prøver å behandle for mye data.

Automatiske nye forsøk mislykkes

Denne meldingen indikerer at kjøringer for en arbeidsflyt mislykkes gjentatte ganger på grunn av et midlertidig problem, men at de ikke ofte lykkes ved påfølgende nye forsøk. Dette skjer ofte når enten Shopifys Admin API eller en partners app mottar et høyt volum av forespørsler.