Feilsøking av Flow-feil og bruksgrenser
Dette dokumentet beskriver vanlige feil og grenser, hvorfor de oppstår og hvordan du løser dem. Du kan støte på to typer feil i Flow, permanente feil og forbigående feil.
På denne siden
Feil ved redigering av arbeidsflyter
Når du redigerer en arbeidsflyt, kan du oppleve feil som forhindrer deg fra å lagre arbeidsflyten. Følgende er vanlige feil du kan møte på når du redigerer en arbeidsflyt:
Fant ikke data
Når du legger til en ny handling i en arbeidsflyt, kan du møte på feilmeldingen Data not found
, for eksempel Customer data not found
. Denne feilen oppstår når de nødvendige dataene for handlingen ikke er tilgjengelige. Hvis du for eksempel legger til en handling som krever en produkt-ID, betyr denne feilmeldingen at arbeidsflyten ikke har returnert et produkt som kan brukes.
Disse dataene leveres vanligvis av en utløser eller handlingen «Hent data». Hvis du bruker «Hent data», er det et vanlig problem at handlingen krever et enkeltelement (kunden), men handlingen returnerer en liste (en liste over kunder). For å anrope handlingen, må du legge til handlingen For each for å kjøre gjennom listen, og anrope handlingen for hvert element i listen.
Hvis du har problemer med utløserdata, kan du rådføre dokumentasjonen for handlingen for å finne en utløser som returnerer riktige data.
Feil under en arbeidsflytkjøring
Når det oppstår en feil under en arbeidsflytkjøring, merkes arbeidsflytkjøringen som mislykket. Feilmeldingen vises i detaljene for arbeidsflytkjøringen. Følgende er vanlige feil som kan oppstå når arbeidsflytkjøringen mislykkes:
Forbigående feil
Forbigående feil er midlertidige feil som oppstår når Flow ikke kan fullføre en oppgave. Disse feilene blir utført på nytt til de går gjennom eller når grensen for tidsavbrudd. Hvis Flow ikke får kontakt med en partner når du utfører en tilkoblingshandling, prøver Flow å utføre oppgaven på nytt flere ganger før den gir opp.
Forsøkene spres ut over tid, og utsettelsen mellom hvert påfølgende forsøk økes fra forrige utsettelse. Når en arbeidsflyt opplever forbigående feil forblir den vanligvis i løpende tilstand i lang tid mens forsøk på oppgaver utføres på nytt.
Når forsøk på oppgaver utføres på nytt, fortsetter arbeidsflyten. Hvis en oppgave som er forsøkt på nytt fører til en permanent feil, vil arbeidsflyten avbrytes. Hver arbeidsflytseksjon har en kombinert øvre kjøringsgrense på 36 timer. Hvis et trinn med forbigående feil ikke løses før grensen nås, regnes arbeidsflyten som mislykket.
Arbeidsflyter med ventetrinn er delt i seksjoner, som påvirker hvordan tidsavbruddsgrenser beregnes i en arbeidsflyt. Hver enkelt seksjon er en gruppe oppgaver som kjøres sammen, og hver av dem har en tidsgrense på 36 timer. Hvis en arbeidsflyt har et ventetrinn som venter i én time, vil oppgavene før ventetrinnet utføres sammen i én seksjon, og oppgavene etter ventetrinnet blir utført sammen i en annen seksjon. Hvis en arbeidsflyt har flere ventetrinn, blir oppgavene mellom hvert ventetrinn utført sammen i én seksjon. Arbeidsflyter uten et ventetrinn anses som én seksjon.
Sporadiske forbigående feil er vanlige. Hvis du har en arbeidsflyt som konsekvent støter på den samme forbigående feilen på tvers av flere kjøringer, kan det imidlertid være at arbeidsflyten må konfigureres på nytt.
Trinnet løp ut på tid
Step timed out
feil oppstår vanligvis når en oppgave i arbeidsflyten forsøker å hente for mye data i én seksjon. Denne feilen oppstår ofte i arbeidsflyter som gjentas i lister, spesielt nestede lister, som er for store til å hentes inn på tiden.
Når en arbeidsflyt opplever denne feilen, vises utløser- eller ventetrinnet som en retrying
.
For å løse dette må du sjekke betingelser som bruker lister og nøstede lister for å sikre at de stemmer. Et vanlig problem er at en betingelse kontrollerer alle produkter i en butikk, og ikke bare produktene i en bestilling.
5xx-status
For de fleste Flow-handlinger må du utføre HTTP-anrop. Av og til kan nettverksbygging eller andre serverproblemer føre til at HTTP-anrop ikke når gjennom og returnerer en feilkode mellom 500 og 599. En forekomst av denne feilen betyr ikke nødvendigvis at noe er feil, men gjentatte tilfeller kan tyde på at det er et problem med serveren som håndterer oppgaven, ikke hvordan trinnet konfigureres.
Denne typen feil vises oftest i Send HTTP-forespørsel-handlingen , men det kan skje med de fleste oppgaver.
GraphQL ble bremset
Det totale volumet av arbeid som gjøres av en arbeidsflyt begrenses av API-prisgrensene, som bestemmes delvis av abonnementet ditt. Disse grensene nås vanligvis ikke med mindre en arbeidsflyt er svært komplisert eller har en utilsiktet utformingsfeil. Følgende er eksempler på scenarier som kan føre til denne feilen:
- Liquid eller tilstander i arbeidsflytløkke over en liste med store datamengder, som sjekking av metafeltverdier som inneholder HTML.
- Liquid eller tilstander i arbeidsflytløkke i en stor liste, som gjentakelse av
shop.orders
i en stor butikk. - En arbeidsflyt fører til en uendelig løkke der arbeidsflyten fortsetter å opprette nye arbeidsflytkjøringer. Dette kan skje hvis arbeidsflyten bruker utløseren Kundetagger som er lagt til og inkluderer handlingen Legg til kundetagger.
Hvis grensen nås, får du en GraphQL throttled
feil. Denne feilen kan påvirke andre arbeidsflyter når de prøver å kjøre, derfor må denne feilen løses umiddelbart hvis den oppstår.
Permanente feil
Permanente feil er feil som oppstår når Flow ikke kan fullføre en oppgave, og forsøk på oppgave ikke kan utføres på nytt. Hvis Flow ikke kan sende en e-post fordi e-postadressen er ugyldig, blir ingen nye forsøk utført. Arbeidsflyten blir ansett som ikke utført i stedet.
Felter: ID kreves, men er tom
De fleste Shopify-handlinger krever én eller flere ressurser (som produkt, kunde eller bestilling) for å kjøre. Av og til er ressursen utilgjengelig, og handlingen kan ikke kjøres som planlagt. Det er for eksempel mulig å opprette en bestilling i administrator som ikke tilhører en kunde. Hvis du forsøker å kjøre en handling, som for eksempel Legg til kundetagger, vil handlingen mislykkes med denne feilmeldingen.
For å forhindre en feil kan du legge til en betingelse før handlingen for å sjekke om ressursen finnes. I forrige eksempel, hvis du ønsket å sende en intern e-postmelding i samme arbeidsflyt som Legg til kundetagger, kan du enten legge inn handlingen før trinnet som kan mislykkes, eller du kan gjøre en av følgende.
Legg handlingene i parallelle grener (der to eller flere grener sprer seg ut fra et trinn)
Legg til en betingelse før handlingen for å kontrollere om kunden finnes. Du kan for eksempel sjekke om order / customer / id is not empty and exists
.
Flow har ikke tilgang til Google Regneark-kontoen din. Koble til kontoen din på nytt.
Google Regneark-tilkoblingen krever at du kobler Google-kontoen din til Flow for å ha tillatelse til å skrive til arket. Denne feilen kan oppstå når Flow ikke har tillatelse til å skrive til et ark, enten fordi kontoen er koblet fra Flow eller fordi kontoen ikke har tilgang til det arket.
For å løse dette må du sikre at kontoen som brukes for tilkoblingen kan åpne arket og har redigeringstilgang. Hvis feil konto er koblet til, kan du koble den fra og koble til en ny.
Trinn:
- Åpne eller opprett en ny arbeidsflyt.
- Legg til en handling.
- Velg Google Regneark-tilkoblingen.
- Klikk på Koble fra, og klikk deretter på Koble til.
Flow-handlingen mottatt med ugyldige egenskaper. Kunden godtar ikke markedsføring.
Send markedsførings-e-post-handlingen sender ikke e-poster til kunder som ikke har godtatt å motta dem, og mislykkes permanent hvis arbeidsflyten forsøker å gjøre dette.
For å løse dette må du legge til en betingelse i arbeidsflyten som kontrollerer kundens abonnementsstatus. Du kan sikre at kundene har samtykket til å motta e-postmarkedsføring før du sender dem. Følg trinnene i Administrasjon av abonnentlister for e-post.
Manglende ressurs for [ressurstype]
Denne feilen tyder på at en ressurs, som customer
eller order
, ble slettet før arbeidsflyten kunne hente dataene sine. Oftest skjer dette etter et ventetrinn, men dette kan også skje med utløseren, hvis ressursen slettes svært raskt etter at utløserhendelsen er utført.
Bli varslet når det oppstår en feil
Hvis en feil ville påvirket butikkdriften, kan du konfigurere varslinger når det oppstår en feil. Varsler om feil kan settes opp som en hvilken som helst annen arbeidsflyt, ved hjelp av utløseren Arbeidsflytfeil oppstått. Varsler om feil er utformet for å minimere støy, så du mottar bare ett varsel per arbeidsflytversjon.
Du kan bruke en av følgende maler for å komme i gang:
- Få et Shopify-varsel når det oppdages feil i arbeidsflytkjøringer
- Bli varslet på e-post når det oppdages feil i kjøringer av arbeidsflyter
- Få et Slack-varsel når det oppdages feil i arbeidsflytkjøringer
Prøve kjøringer på nytt
I noen tilfeller kan en arbeidsflytkjøring resultere i en feil, eller at den ikke kjøres som tiltenkt. Når du har feilsøkt og rettet problemene i den tilhørende arbeidsflyten, kan tidligere kjøringer prøves manuelt på nytt, for å løse problemer med tidligere kjøringer. Finn ut mer om å prøve arbeidsflytkjøringer på nytt.
Kjørende (begrenset hastighet)
I noen tilfeller kan én eller flere arbeidsflyter bruke for mange ressurser, og Flow vil for å forhindre at dette skaper problemer velge å begrense antall kjøringer i butikken, noe som kan forårsake forsinkelser og feilmeldinger for tidsutløp. Dette kan løses ved å skrive om ineffektive arbeidsflyter, vanligvis ved å rette en feil der den ikke fungerer som tiltenkt.
Kjører for lenge
Denne meldingen indikerer at kjøringer for en arbeidsflyt tar svært lang tid. Dette skyldes vanligvis bruk av store mengder data i en arbeidsflyt, som Flow bruker lang tid på å hente inn.
Eksempel:
Disse tilfellene forårsakes vanligvis av dype forespørselsbaner som går gjennom flere lister med elementer (for eksempel henting av alle metafelter for alle produkter i alle samlinger et produkt er en del av):
Dette henger også ofte sammen med at Utløser-trinnet i en arbeidsflyt går ut på tid.Arbeidsflyter som kjører gjennom alle metafelter kan ofte forbedres ved å bare bruke et bestemt metafelt. Tilgang til flere nøstede lister (som for eksempel alle produkter i alle samlinger for et produkt) eller spesielt store lister (som for eksempel metafelt-definisjoner, som inneholder alle metafelter for alle objekter) kan ha blitt gitt ved en feil, og valg av riktig felt (et enkelt produkt eller et enkelt metafelt for et objekt) kan øke effektiviteten betydelig. I andre tilfeller kan bruk av handlingen «Hent produkt-/bestillings-/kundedata» med et spørringsfilter redusere antall objekter som brukes betydelig, samtidig som du fortsatt har tilgang til de relevante.
Behandler for mye data
Denne meldingen indikerer at kjøringer for en arbeidsflyt genererer store mengder data. Dette skyldes vanligvis kompliserte betingelser som kontrollerer mange felter, vanligvis fordi felter i flere lag med lister kontrolleres.
Eksempel:
Betingelsen «Minst én tagg for denne kunden, for minst én linjevare, for minst én tagg for linjevaren» føre til at det utføres mange kontroller, og mye data genereres for å vise resultatet av kontrollene:
Automatiske gjentatte forsøk mislykkes
Denne meldingen indikerer at kjøringer av en arbeidsflyt mislykkes gjentatte ganger på grunn av et midlertidig problem, men at de ikke lykkes ved påfølgende forsøk særlig ofte. Dette skjer ofte når enten Shopifys Admin API eller en partners app har et stort antall forespørsler.