formbasedocs
Naar de appApp

Aanvragen

Problemen oplossen bij aanvragen

Waar je moet kijken als een aanvraag werd geweigerd, een uitnodiging nooit aankwam, of een workflow nog wacht op een callback die al is gebeurd.


Een fout lezen

Elke weigering bevat twee dingen: een code voor het type fout, en een details.reason voor de specifieke oorzaak. Vertak op de code; lees de reden om te weten wat je moet oplossen. Waar het helpt, noemt details ook het betreffende field, de sleutels die geaccepteerd zouden zijn, of de optiesleutels die een keuzevraag aanneemt.

De aanvraagmethoden gebruiken vier codes: VALIDATION_ERROR (de aanroep klopte niet), CONFLICT (de aanvraag staat in de verkeerde toestand, of een idempotency-sleutel is hergebruikt), NOT_FOUND, en UPGRADE_REQUIRED (een abonnementsgrens of het maandelijkse quotum). Te snel aanroepen geeft in plaats daarvan RATE_LIMITED terug, met retryAfterMs — zie de snelheidslimiet.

Een geweigerde requests.create
json
{
  "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"] }
  }
}

Redenen die je kunt tegenkomen

De aanroep goed krijgen

RedenWat te doen
FORM_NOT_PUBLISHEDPubliceer het formulier. Een aanvraag legt een gepubliceerde versie vast, dus die moet er zijn.
UNKNOWN_FIELD_KEYGeen veld met die sleutel, of hij hoort in het andere vak. Elke context-sleutel moet een verborgen veld zijn op het gepubliceerde formulier; stuur vrij invoerbare sleutels naar metadata. Controleer fields.list; validKeys toont de geaccepteerde sleutels.
CONTEXT_KEY_NOT_HIDDEN_FIELDJe hebt een zichtbare vraag — of een berekend veld — in context gestuurd. Zichtbare vragen horen in prefill; berekende velden kunnen helemaal niet worden ingesteld.
INVALID_PREFILL_VALUEVerkeerde vorm voor dat vraagtype. expectedType zegt wat er verwacht werd; stuur bij keuzevragen de optiesleutel, niet het label; een matrix neemt { "row_key": "column_key" }. expectedType "not_prefillable" betekent dat het veld geen waarde van de aanroeper aanneemt — een bestand, handtekening, betaling, afspraak, of berekend veld.
READONLY_REQUIRES_PREFILLEen vergrendelde sleutel heeft geen waarde. Elke sleutel in readonly moet ook in prefill staan.
READONLY_REQUIRED_EMPTYEen verplicht veld is vergrendeld met een lege waarde — de ontvanger zou nooit kunnen indienen. Geef een waarde op of stop met vergrendelen.
LANGUAGE_NOT_PUBLISHEDDie taal is niet gepubliceerd op de huidige versie. validKeys toont welke dat wel zijn.
INVALID_REMINDER_SCHEDULEEen interval kon niet worden gelezen, hetzelfde interval komt twee keer voor, of er zijn meer dan vijf stappen. Gebruik positieve hele dagen, uren of minuten: 2d, 12h, 30m.
EXPIRY_OUT_OF_RANGEexpiresAt ligt in het verleden of meer dan 365 dagen in de toekomst.
CALLBACK_URL_NOT_ALLOWEDDe URL is geen HTTPS, bevat inloggegevens, of leidt naar een privéadres. Localhost werkt niet — gebruik een tunnel.
DOMAIN_NOT_ALLOWEDDat aangepaste domein is niet actief, of behoort tot een andere werkruimte.
INVALID_DOCUMENT_TARGETHet formulier heeft geen Documentenblok, of het heeft er meer dan één en je hebt niet met field aangegeven welke. validKeys toont de bloksleutels.
DOCUMENT_NOT_UPLOADEDDe upload was gereserveerd maar de bytes zijn nooit aangekomen. PUT het bestand eerst naar zijn uploadUrl.
DOCUMENT_INVALIDDe geüploade bytes komen niet overeen met de grootte, het type of de sha256 die documents.create opgaf, of het type is geen PDF of afbeelding.
DOCUMENTS_TOO_MANYHet blok zou meer dan 20 documenten tonen, de vaste documenten meegeteld.
DOCUMENTS_TOO_LARGEEén aanvraag mag in totaal 100 MB aan documenten bevatten, en 25 MB per document.
SCOPE_REQUIREDAanvragen opsommen vereist een werkruimte of een formulier om de lijst tot te beperken.
RECIPIENT_EMAIL_REQUIREDE-maillevering of herinneringen vereisen recipient.email.
UPGRADE_REQUIREDHet abonnement bevat de functie niet — herinneringen zijn Pro of Business, en een gastaccount kan geen uitnodigingen mailen.
FREE_INVITATIONS_USEDDit Free-account heeft zijn 10 gratis uitnodigingen voorgoed verbruikt. Maak de aanvraag aan met "delivery": "none" en stuur de link zelf, of upgrade naar Pro.
MONTHLY_ALLOWANCE_REACHEDHet quotum van deze maand voor inzendingen en aanvragen is op. Elke aanvraag kost één eenheid zodra hij wordt aangemaakt, beantwoord of niet. Aanvragen die je al hebt aangemaakt kunnen nog worden beantwoord; nieuwe wachten tot de 1e van de maand (UTC) of op een upgrade.

Handelen op een bestaande aanvraag

RedenWat te doen
REQUEST_NOT_FOUNDGeen aanvraag met dat id in een werkruimte die dit token kan bereiken.
REQUEST_NOT_PENDINGAl voltooid, verlopen, of geannuleerd. Je kunt een afgeronde aanvraag niet herinneren of annuleren.
REMINDER_TOO_SOONEr is minder dan tien minuten geleden een handmatige herinnering verstuurd. details.retryAfterMs zegt hoe lang je moet wachten.
REMINDER_CAP_REACHEDDeze aanvraag heeft alle acht herinneringen gehad die hij ooit zal krijgen, handmatig en gepland samen.
TEST_REQUESTJe vroeg formbase een testaanvraag te e-mailen. Daarvoor wordt nooit iets gemaild — open de link zelf in plaats daarvan.
REQUEST_NOT_TERMINALJe vroeg om een callback opnieuw af te spelen voor een aanvraag die nog in behandeling is. Er is nog niets om opnieuw af te spelen.
NO_CALLBACK_TO_REPLAYDe aanvraag is aangemaakt zonder callbackUrl.
IDEMPOTENCY_CONFLICTDie sleutel is gebruikt voor een andere inhoud. Gebruik een nieuwe sleutel, of stuur de oorspronkelijke inhoud ongewijzigd opnieuw.

De uitnodiging is nooit aangekomen

Open de aanvraag op de pagina Aanvragen en lees de tijdlijn. De eerste uitnodigingsregel vertelt je in welk geval je zit.

De tijdlijn zegtWat het betekentWat te doen
Uitnodiging in wachtrijGeaccepteerd, nog niet verstuurd.Geef het een minuutje. Blijft hij in de wachtrij staan, controleer dan of de aanvraag een ontvangeradres heeft.
Uitnodiging afgeleverdOvergedragen aan de e-mailprovider.Vraag hen de spamfolder te controleren. Versturen vanaf je eigen domein helpt — zie aangepaste e-maildomeinen.
Uitnodiging misluktformbase kon hem niet versturen — of de provider heeft hem gebounced, of de ontvanger heeft hem als spam gemarkeerd.Lees deliveryStatus via requests.get: "failed" is meestal een abonnements- of adresprobleem, dus los het op en stuur een herinnering — die bevat dezelfde link (kopieer op Free de link en stuur hem zelf). "bounced" betekent dat het adres verkeerd of dood is — maak een nieuwe aanvraag voor het juiste adres; herinneren helpt dan niet.

Helemaal geen tijdlijnregel

Dan is er nooit om een e-mail gevraagd. De aanvraag is aangemaakt met delivery: “none” — lever de link zelf af, of maak een nieuwe aanvraag met delivery: “email”.

Uitnodigingen en herinneringen delen een budget van tien e-mails per dag per formulier en ontvangeradres, en één aanvraag mailt zijn ontvanger nooit meer dan negen keer in zijn hele bestaan — één uitnodiging en tot acht herinneringen.

De callback is nooit binnengekomen

De sectie Callback in het aanvraagpaneel toont de URL en de uitkomst. Callback mislukt na N pogingen betekent dat formbase het heeft geprobeerd en heeft opgegeven — acht pogingen over ongeveer vier uur.

  1. Controleer de URL. Hij wordt getoond in het paneel. De resume-URL van een workflowtool hoort bij één run, en een run die is verwijderd of opnieuw is aangemaakt, reageert daar niet meer op.

  2. Controleer wat je endpoint heeft teruggegeven. Alles buiten 2xx is een mislukking. Een 4xx anders dan 408 of 429 stopt de pogingen onmiddellijk — formbase leest dat als “je endpoint heeft dit geweigerd”, en identieke bytes opnieuw sturen kan daar niets aan veranderen.

  3. Herstel de ontvanger, druk dan op Opnieuw afspelen. Dezelfde payload gaat opnieuw uit met hetzelfde gebeurtenis-id, dus een ontvanger die dedupliceert is veilig.

Andere dingen waar mensen tegenaan lopen

  • De ontvanger zegt dat de link een melding toont, niet het formulier. De aanvraag is definitief — voltooid, verlopen, of geannuleerd. Dat is de uitkomstpagina. Maak een nieuwe aanvraag als ze nog een keer moeten.

  • Een automatisering matcht niet meer na een bewerking — een antwoord ontbrak in de callback, of requests.create begon een sleutel te weigeren met UNKNOWN_FIELD_KEY. Een gepubliceerde veldsleutel is verdwenen: iemand heeft hem herschreven, of de vraag verwijderd en er een nieuwe voor in de plaats gezet. Hertitelen is veilig; beide andere niet. Typ de oude sleutel op het veld (sleutelicoon in de werkbalk → Sleutels) en publiceer opnieuw. Publiceren waarschuwt hiervoor voordat het gebeurt — zie Wanneer een gepubliceerde sleutel op het punt staat te verdwijnen.

  • Vooraf invullen voor een bestandsupload of een handtekening wordt geweigerd. Die kunnen niet door een aanroeper worden aangeleverd — fields.list markeert ze met prefillable: false.

  • Er verschenen twee aanvragen voor één workflowrun. De run is opnieuw geprobeerd zonder idempotencyKey. Geef de uitvoerings-id op als sleutel.