Error
Setiap kode error Direct API, artinya, dan apakah perlu dicoba lagi, termasuk apa yang harus dilakukan setelah panggilan berbayar gagal dengan 5xx.
Setiap error memiliki body yang sama. Lakukan percabangan berdasarkan status HTTP dan code; tampilkan description atau error.message kepada orang.
{
"description": "Human-readable explanation, safe to log.",
"code": "machine_readable_code",
"data": { "request_id": "…", "…": "…" },
"error": { "error_code": "…", "message": "…" }
}Setiap respons, baik sukses maupun error, membawa X-Request-Id. Sertakan saat Anda menghubungi dukungan.
Kode error
| HTTP | code | Arti | Coba lagi |
|---|---|---|---|
| 400 | invalid_request | JSON rusak, field body yang tidak dikenal, atau input tidak lolos skema alat (setiap field yang salah disebutkan) | tidak, perbaiki permintaan |
| 401 | invalid_api_key | kunci tidak ada, rusak, dicabut, atau kedaluwarsa | tidak |
| 402 | insufficient_credits | organisasi tidak dapat membayar panggilan tersebut | setelah isi ulang |
| 402 | api_key_credit_limit_reached | panggilan akan melampaui batas harian, bulanan, atau total kunci (data.period menyebutkan yang mana) | setelah periode diatur ulang atau batas dinaikkan |
| 402 | subscription_paused | langganan organisasi sedang dijeda | setelah dilanjutkan |
| 402 | payment_required | langganan organisasi melewati jatuh tempo | setelah pembayaran diselesaikan |
| 403 | direct_api_disabled | Direct API tidak diaktifkan untuk organisasi ini | tidak, hubungi Morphic |
| 403 | insufficient_scope | kunci tidak memiliki cakupan yang dibutuhkan alat ini (data.required_scopes) | tidak, gunakan kunci lain |
| 403 | plan_upgrade_required | model atau fitur tidak termasuk dalam paket Anda | tidak |
| 403 | tool_not_available | alat ini menagih kredit dan alat berbayar belum diaktifkan untuk organisasi Anda (data.tool menyebutkannya); kontak Morphic Anda yang mengaktifkannya | tidak |
| 403 | model_disabled_by_organization | admin organisasi menonaktifkan model, resolusi, atau opsi audio ini dan belum mengizinkannya untuk API | tidak, tanyakan admin Anda |
| 404 | not_found | alat, generasi, atau webhook tidak dikenal, atau berada di luar jangkauan kunci ini | tidak |
| 409 | idempotency_conflict | Idempotency-Key dipakai ulang dengan body atau alat yang berbeda | tidak, gunakan kunci baru |
| 409 | idempotency_in_progress | permintaan asli dengan kunci ini masih berjalan | ya, setelah satu detik |
| 409 | idempotency_outcome_unknown | permintaan asli dengan Idempotency-Key ini gagal atau tidak pernah menjawab setelah mungkin sudah berjalan, sehingga hasilnya tidak diketahui | tidak: periksa hasilnya, lalu gunakan kunci baru |
| 413 | payload_too_large | body melebihi 1 MB | tidak |
| 422 | tool_refused | input berbentuk benar tetapi tidak dapat dijalankan; tidak ada yang ditagihkan | tidak, ubah input |
| 429 | rate_limited | batas laju tercapai | ya, setelah Retry-After |
| 500 | internal_error | kesalahan dari pihak kami | panggilan gratis, ya; panggilan berbayar, lihat di bawah |
| 503 | service_unavailable | kelebihan beban sementara atau pemeliharaan | panggilan gratis, ya, dengan jeda bertahap; panggilan berbayar, lihat di bawah |
| 504 | tool_timed_out | alat tidak menjawab dalam 60 dtk; panggilan yang memulai generasi mungkin tetap sudah memulainya | panggilan gratis, ya; panggilan berbayar, lihat di bawah |
422 tool_refused menyebutkan field, nilainya, dan nilai yang akan berhasil; lihat Penolakan alat. Generasi yang gagal setelah dimulai melaporkan error.error_code miliknya sendiri pada objek generasi, dan tagihannya dikembalikan.
Panggilan berbayar yang menjawab 5xx
Panggilan berbayar yang menjawab 500, 503, atau 504 mungkin sudah memulai pekerjaan dan menagihnya sebelum gagal. Mengulanginya dengan Idempotency-Key yang sama tidak pernah menjalankannya dua kali: pengulangan dijawab dengan 409 idempotency_outcome_unknown.
- Periksa apa yang dilakukan panggilan itu:
list_generations, atauGET /v1/direct/usageyang difilter berdasarkan waktu. - Kirim
Idempotency-Keybaru hanya untuk pekerjaan yang belum dimulai.
Jika tidak ada jawaban sama sekali (koneksi terputus), ulangi dengan kunci yang sama. Anda mendapatkan jawaban yang tersimpan, atau 409 idempotency_in_progress selama panggilan itu masih berjalan. Lihat Idempotensi.
Jika Anda mengalami kendala atau memiliki pertanyaan, jangan ragu untuk menghubungi kami. Kami dengan senang hati akan membantu. Tulis kepada kami di support@morphic.com.