# Feilsøke forespørsler

Avviste kall, invitasjoner som aldri kom frem, og callbacks som aldri landet.

## Feilsøke forespørsler

Hvor du skal se etter når en forespørsel ble avvist, en invitasjon aldri kom frem, eller en arbeidsflyt fortsatt venter på en callback som allerede skjedde.

<h2 id="reading-errors">Lese en feil</h2>

<p>
  Hver avvisning bærer to ting: en <code>code</code> for typen feil, og en <code>details.reason</code> for den spesifikke årsaken. Grener på
  koden; les årsaken for å vite hva du skal fikse. Der det hjelper, navngir <code>details</code> også det aktuelle <code>field</code>,
  nøklene som ville blitt godtatt, eller alternativnøklene et valgspørsmål tar.
</p>

<p>
  Forespørselsmetodene bruker fire koder: <code>VALIDATION_ERROR</code> (kallet var feil), <code>CONFLICT</code> (forespørselen er i feil
  tilstand, eller en idempotensnøkkel ble gjenbrukt), <code>NOT_FOUND</code>, og <code>UPGRADE_REQUIRED</code> (en plansperre eller den
  månedlige kvoten). Å kalle for fort returnerer <code>RATE_LIMITED</code> i stedet, med <code>retryAfterMs</code> — se{' '}
  <a href="/no/requests/creating-requests#rate-limit">hastighetsbegrensningen</a>.
</p>

```
{
  "ok": false,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "No field with key \"company\".",
    "details": { "reason": "UNKNOWN_FIELD_KEY", "field": "prefill.company", "validKeys": ["company_name", "company_size"] }
  }
}
```

<h2 id="reasons">Årsaker du kan se</h2>

<h3 id="reasons-setup">Få kallet riktig</h3>

<h3 id="reasons-state">Handle på en eksisterende forespørsel</h3>

<h2 id="invitation-problems">Invitasjonen kom aldri frem</h2>

<p>Åpne forespørselen på Forespørsler-siden og les tidslinjen. Den første invitasjonslinjen forteller deg hvilket tilfelle du er i.</p>

> ℹ️ **Ingen tidslinjeoppføring i det hele tatt**
> <p>
>     Da ble det aldri bedt om noen e-post. Forespørselen ble opprettet med <code>delivery: "none"</code> — lever lenken selv, eller opprett
>     en ny forespørsel med <code>delivery: "email"</code>.
>   </p>

<p>
  Invitasjoner og påminnelser deler et budsjett på ti e-poster per dag per skjema og mottakeradresse, og en forespørsel sender aldri mer enn
  ni e-poster til mottakeren i løpet av sitt liv — én invitasjon og opptil åtte påminnelser.
</p>

<h2 id="callback-problems">Callbacken landet aldri</h2>

<p>
  Forespørselsskuffens <strong>Callback</strong>-seksjon viser URL-en og utfallet. <em>Callback feilet etter N forsøk</em> betyr at Formstep
  prøvde og ga opp — åtte forsøk over om lag fire timer.
</p>

<ol>
  <li>
    <strong>Sjekk URL-en.</strong> Den vises i skuffen. Et arbeidsflytverktøys gjenopptakelses-URL tilhører én kjøring, og en kjøring som
    ble slettet eller gjenopprettet svarer ikke lenger på den.
  </li>
  <li>
    <strong>Sjekk hva endepunktet ditt returnerte.</strong> Alt utenfor 2xx er en feil. En 4xx annet enn 408 eller 429 stopper de nye
    forsøkene umiddelbart — Formstep leser det som «endepunktet ditt avviste dette», og å resende identiske byte kan ikke endre det.
  </li>
  <li>
    <strong>Fiks mottakeren, trykk deretter Kjør på nytt.</strong> Den samme nyttelasten sendes ut igjen med samme hendelses-id, så en
    mottaker som avdupliserer er trygg.
  </li>
</ol>

> ⚠️ **Signatursjekk feiler?**
> <p>
>     Nesten alltid den rå bodyen. Hvis du parser JSON-en og re-serialiserer den før hashing, er bytene forskjellige og signaturen vil aldri
>     stemme. Hash bodyen akkurat slik den ankom. Den andre vanlige årsaken er en regenerert signeringshemmelighet som mottakeren ikke har
>     plukket opp — det finnes ingen overgangsperiode.
>   </p>

<h2 id="other">Andre ting folk treffer på</h2>

<ul>
  <li>
    <strong>Mottakeren sier at lenken viser en melding, ikke skjemaet.</strong> Forespørselen er endelig — fullført, utløpt, eller
    kansellert. Det er resultatsiden. Opprett en ny forespørsel hvis de trenger et nytt forsøk.
  </li>
  <li>
    <strong>En automatisering sluttet å matche etter en redigering</strong> — et svar forsvant fra callbacken, eller{' '}
    <code>requests.create</code> begynte å avvise en nøkkel med <code>UNKNOWN_FIELD_KEY</code>. En publisert feltnøkkel forsvant: noen skrev
    inn en annen nøkkel, eller slettet spørsmålet og la til et nytt i stedet. Å endre tittelen er trygt; begge disse er det ikke. Skriv inn
    den gamle nøkkelen på feltet (nøkkel-ikonet i verktøylinjen → <strong>Nøkler</strong>) og publiser på nytt. Publisering advarer før
    dette skjer — se <a href="/no/requests/field-keys#removed-keys">Når en publisert nøkkel er i ferd med å forsvinne</a>.
  </li>
  <li>
    <strong>Forhåndsutfylling av en filopplasting eller en signatur avvises.</strong> De kan ikke oppgis av en kaller —{' '}
    <code>fields.list</code> merker dem <code>prefillable: false</code>.
  </li>
  <li>
    <strong>To forespørsler dukket opp for én arbeidsflyt-kjøring.</strong> Kjøringen ble forsøkt på nytt uten en{' '}
    <code>idempotencyKey</code>. Send kjørings-id-en som nøkkelen.
  </li>
</ul>

<div class="not-prose grid gap-3 sm:grid-cols-2">
  - [Callbacks og signering](/no/requests/callbacks) — Nye forsøk, avspilling, og hvordan verifisere.
  - [Forespørsler-siden](/no/requests/managing-requests) — Hvor tidslinjen og handlingene bor.
</div>
