İstekler
İstekler için sorun giderme
Bir istek reddedildiğinde, bir davet hiç ulaşmadığında veya bir workflow zaten gerçekleşmiş bir geri çağırmayı hâlâ beklediğinde nereye bakılır.
Bir hatayı okumak
Her ret iki şey taşır: hata türü için bir code ve belirli neden için bir details.reason. Koda göre dallanın;
neyi düzelteceğinizi anlamak için nedeni okuyun. Yardımcı olduğunda, details ayrıca suçlu field’ı, kabul
edilecek anahtarları veya bir seçim sorusunun aldığı seçenek anahtarlarını da adlandırır.
İstek metotları dört kod kullanır: VALIDATION_ERROR (çağrı yanlıştı), CONFLICT (istek yanlış durumda, ya da bir
idempotency anahtarı yeniden kullanıldı), NOT_FOUND, ve UPGRADE_REQUIRED (bir plan sınırı veya aylık kota). Çok
hızlı çağırmak bunun yerine retryAfterMs ile birlikte RATE_LIMITED döndürür — bkz.
hız sınırı.
{
"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"] }
}
}Görebileceğiniz nedenler
Çağrıyı doğru yapmak
| Neden | Ne yapılmalı |
|---|---|
| FORM_NOT_PUBLISHED | Formu yayınlayın. Bir istek yayınlanmış bir sürümü sabitler, o yüzden bir tanesi olmalı. |
| UNKNOWN_FIELD_KEY | O anahtarla bir alan yok, ya da diğer kovaya ait. Her context anahtarı yayınlanmış formda bir gizli alan olmalıdır; serbest biçimli anahtarları metadata içinde gönderin. fields.list'i kontrol edin; validKeys kabul edilenleri listeler. |
| CONTEXT_KEY_NOT_HIDDEN_FIELD | Context içinde görünür bir soru — ya da hesaplanan bir alan — gönderdiniz. Görünür sorular prefill içine gider; hesaplanan alanlar hiç ayarlanamaz. |
| INVALID_PREFILL_VALUE | O soru türü için yanlış biçim. expectedType neyin istendiğini söyler; seçim soruları için etiketi değil seçenek anahtarını gönderin; bir matris { "row_key": "column_key" } alır. expectedType "not_prefillable" alanın çağıran değeri almadığı anlamına gelir — bir dosya, imza, ödeme, randevu veya hesaplanan alan. |
| READONLY_REQUIRES_PREFILL | Kilitli bir anahtarın değeri yok. readonly içindeki her anahtar prefill içinde de olmalı. |
| READONLY_REQUIRED_EMPTY | Zorunlu bir alan boş bir değerle kilitlenmiş — alıcı asla gönderemezdi. Bir değer sağlayın ya da kilitlemeyi bırakın. |
| LANGUAGE_NOT_PUBLISHED | O dil geçerli sürümde yayınlanmamış. validKeys yayınlanmış olanları listeler. |
| INVALID_REMINDER_SCHEDULE | Bir süre okunamadı, aynı süre iki kez göründü, ya da beşten fazla adım var. Pozitif tam gün, saat veya dakika kullanın: 2d, 12h, 30m. |
| EXPIRY_OUT_OF_RANGE | expiresAt geçmişte veya 365 günden daha ileride. |
| CALLBACK_URL_NOT_ALLOWED | URL HTTPS değil, kimlik bilgileri taşıyor, ya da özel bir adrese çözümleniyor. Localhost çalışmaz — bir tünel kullanın. |
| DOMAIN_NOT_ALLOWED | O özel alan adı aktif değil, ya da başka bir çalışma alanına ait. |
| INVALID_DOCUMENT_TARGET | Formda bir Belgeler bloğu yok, ya da birden fazla var ve field ile hangisi olduğunu belirtmediniz. validKeys blok anahtarlarını listeler. |
| DOCUMENT_NOT_UPLOADED | Yükleme ayrıldı ama baytlar hiç gelmedi. Önce dosyayı uploadUrl'ine PUT edin. |
| DOCUMENT_INVALID | Yüklenen baytlar, documents.create'in bildirdiği boyut, tür veya sha256 ile uyuşmuyor, ya da tür bir PDF veya görsel değil. |
| DOCUMENTS_TOO_MANY | Blok, hazırlanmış olanlar dahil 20'den fazla belge gösterirdi. |
| DOCUMENTS_TOO_LARGE | Bir istek toplamda 100 MB belge ve belge başına 25 MB taşıyabilir. |
| SCOPE_REQUIRED | İstekleri listelemek, listeyi kapsayacak bir çalışma alanı veya form gerektirir. |
| RECIPIENT_EMAIL_REQUIRED | E-posta teslimatı veya hatırlatmalar recipient.email gerektirir. |
| UPGRADE_REQUIRED | Plan özelliği içermiyor — hatırlatmalar Pro veya Business, ve bir misafir hesap davet e-postası gönderemez. |
| FREE_INVITATIONS_USED | Bu Ücretsiz hesap 10 ücretsiz davetini kalıcı olarak tüketti. İsteği "delivery": "none" ile oluşturup bağlantıyı kendiniz gönderin ya da Pro'ya yükseltin. |
| MONTHLY_ALLOWANCE_REACHED | Çalışma alanı bu ayın gönderim ve istek kotasını tüketti. Her istek, yanıtlansın ya da yanıtlanmasın, oluşturulduğunda bir birime mal olur. Zaten oluşturduğunuz istekler yanıtlanabilir kalmaya devam eder; yeni istekler ayın 1'ini (UTC) veya bir yükseltmeyi bekler. |
Mevcut bir istek üzerinde işlem yapmak
| Neden | Ne yapılmalı |
|---|---|
| REQUEST_NOT_FOUND | Bu belirtecin erişebildiği bir çalışma alanında o kimlikte bir istek yok. |
| REQUEST_NOT_PENDING | Zaten tamamlandı, süresi doldu ya da iptal edildi. Bitmiş bir isteği hatırlatamaz veya iptal edemezsiniz. |
| REMINDER_TOO_SOON | Elle bir hatırlatma on dakikadan daha kısa süre önce gönderildi. details.retryAfterMs ne kadar bekleneceğini söyler. |
| REMINDER_CAP_REACHED | Bu istek, elle ve programlı birlikte alacağı sekiz hatırlatmayı da almış. |
| TEST_REQUEST | formbase'in bir test isteğini e-postayla göndermesini istediniz. Bir tanesi için asla e-posta gönderilmez — bunun yerine bağlantısını kendiniz açın. |
| REQUEST_NOT_TERMINAL | Hâlâ beklemede olan bir istek için bir geri çağırmayı yeniden oynatmayı istediniz. Henüz yeniden oynatılacak bir şey yok. |
| NO_CALLBACK_TO_REPLAY | İstek bir callbackUrl olmadan oluşturuldu. |
| IDEMPOTENCY_CONFLICT | O anahtar farklı bir gövde için kullanıldı. Yeni bir anahtar kullanın, ya da orijinal gövdeyi değiştirmeden yeniden gönderin. |
Davet hiç ulaşmadı
İsteği İstekler sayfasında açın ve zaman çizelgesini okuyun. İlk davet satırı hangi durumda olduğunuzu söyler.
| Zaman çizelgesi ne diyor | Ne anlama gelir | Ne yapılmalı |
|---|---|---|
| Davet kuyruğa alındı | Kabul edildi, henüz gönderilmedi. | Bir dakika bekleyin. Kuyrukta kalmaya devam ederse isteğin bir alıcı e-postası olduğunu kontrol edin. |
| Davet teslim edildi | E-posta sağlayıcısına teslim edildi. | Spam klasörünü kontrol etmelerini isteyin. Kendi alan adınızdan göndermek yardımcı olur — bkz. özel e-posta alan adları. |
| Davet başarısız oldu | formbase gönderemedi — ya da sağlayıcı onu geri çevirdi, ya da alıcı spam olarak işaretledi. | requests.get üzerinde deliveryStatus'u okuyun: "failed" genellikle bir plan veya adres sorunudur, bu yüzden düzeltin ve aynı bağlantıyı taşıyan bir hatırlatma gönderin (Ücretsiz planda bağlantıyı kopyalayıp kendiniz gönderin). "bounced" adresin yanlış veya ölü olduğu anlamına gelir — doğru adres için yeni bir istek oluşturun; hatırlatmak yardımcı olmaz. |
Hiç zaman çizelgesi girişi yoksa
O zaman hiç e-posta istenmemiştir. İstek delivery: “none” ile oluşturulmuştur — bağlantıyı kendiniz teslim edin, ya da
delivery: “email” ile yeni bir istek oluşturun.
Davetler ve hatırlatmalar, form ve alıcı adresi başına günde on e-postalık bir bütçeyi paylaşır ve bir istek, kendi alıcısına yaşamı boyunca dokuzdan fazla e-posta göndermez — bir davet ve en fazla sekiz hatırlatma.
Geri çağırma hiç varmadı
İstek çekmecesinin Geri çağırma bölümü URL’yi ve sonucu gösterir. N denemeden sonra geri çağırma başarısız oldu demek, formbase’in denediği ve vazgeçtiği anlamına gelir — yaklaşık dört saat boyunca sekiz deneme.
URL’yi kontrol edin. Çekmecede gösterilir. Bir workflow aracının devam URL’si tek bir çalışmaya aittir ve silinmiş veya yeniden oluşturulmuş bir çalışma artık orada yanıt vermez.
Uç noktanızın ne döndürdüğünü kontrol edin. 2xx dışındaki her şey bir başarısızlıktır. 408 veya 429 dışındaki bir 4xx, yeniden denemeleri hemen durdurur — formbase bunu “uç noktanız bunu reddetti” olarak okur ve aynı baytları yeniden göndermek bunu değiştiremez.
Alıcıyı düzeltin, sonra Yeniden gönder’e basın. Aynı yük, aynı olay kimliğiyle tekrar gönderilir, bu yüzden yinelenenleri ayıklayan bir alıcı güvendedir.
İmza kontrolü başarısız mı oluyor?
Neredeyse her zaman ham gövdedir. JSON’ı ayrıştırıp hashlemeden önce yeniden serileştirirseniz, baytlar farklılaşır ve imza asla eşleşmez. Gövdeyi geldiği haliyle tam olarak hashleyin. Diğer yaygın neden, alıcının henüz almadığı yeniden oluşturulmuş bir imzalama anahtarıdır — bir hoşgörü süresi yoktur.
İnsanların karşılaştığı diğer şeyler
Alıcı, bağlantının form yerine bir bildirim gösterdiğini söylüyor. İstek nihai — tamamlandı, süresi doldu ya da iptal edildi. Bu, sonuç sayfasıdır. Başka bir denemeye ihtiyaçları varsa yeni bir istek oluşturun.
Bir düzenlemeden sonra bir otomasyon eşleşmeyi bıraktı — geri çağırmadan bir yanıt kayboldu, ya da
requests.create,UNKNOWN_FIELD_KEYile bir anahtarı reddetmeye başladı. Yayınlanmış bir alan anahtarı kayboldu: birisi onu yeniden yazdı, ya da soruyu silip yerine yeni bir tane ekledi. Yeniden başlıklandırma güvenlidir; bu ikisi değildir. Alanda eski anahtarı yazın (araç çubuğundaki anahtar simgesi → Anahtarlar) ve yeniden yayınlayın. Yayın bu olmadan önce uyarır — bkz. Yayınlanmış bir anahtar kaybolmak üzere olduğunda.Bir dosya yüklemesi veya imza için önceden doldurma reddediliyor. Bunlar bir çağıran tarafından sağlanamaz —
fields.listonlarıprefillable: falseolarak işaretler.Bir workflow çalışması için iki istek ortaya çıktı. Çalışma bir
idempotencyKeyolmadan yeniden denendi. Yürütme kimliğini anahtar olarak geçirin.