Skip to content

Error & batasan ​

Format error ​

Semua error punya bentuk yang sama, dan code stabil antar rilis. Bercabanglah berdasarkan code, bukan teks pesannya.

json
{
  "error": {
    "code": "APPROVAL_REQUIRED",
    "message": "This action needs your approval.",
    "requestId": "req-8f2c…",
    "details": { "approvalId": "…" }
  }
}

message aman ditampilkan ke pengguna. Sertakan requestId saat menghubungi support.

KodeHTTPArti
UNAUTHENTICATED401Tidak ada sesi yang valid. Login ulang.
FORBIDDEN403Sudah login, tapi tidak diizinkan (peran, workspace, atau header client tidak ada).
POLICY_DENIED403Kebijakan workspace memblokir tool atau connector ini.
NOT_FOUND404Tidak ada, atau bukan milik Anda.
VALIDATION_FAILED400Request tidak valid. details.issues merinci tiap field.
CONFLICT409Bentrok dengan data yang ada (misalnya slug sudah dipakai).
INVALID_STATE409Tidak bisa dilakukan saat ini (misalnya membatalkan run yang sudah selesai).
CONNECTION_REQUIRED409Hubungkan akunnya dulu. details.toolkitSlug menyebut yang mana.
APPROVAL_REQUIRED409Perlu persetujuan. details.approvalId menunjuk approval-nya.
IDEMPOTENCY_CONFLICT409Idempotency key dipakai ulang dengan input berbeda.
RATE_LIMITED429Terlalu banyak request. Tunggu sebentar lalu coba lagi.
UPSTREAM_FAILED502Penyedia model atau integrasi mengembalikan error.
INTEGRATION_UNAVAILABLE503Penyedia integrasi tidak tersedia.
UPSTREAM_TIMEOUT504Penyedia tidak menjawab tepat waktu.
INTERNAL_ERROR500Ada masalah di sisi kami.

Error validasi merinci setiap masalah:

json
{ "error": { "code": "VALIDATION_FAILED", "message": "Request validation failed.",
  "details": { "issues": [{ "path": "name", "message": "Too small: expected string to have >=1 characters" }] } } }

Batasan ​

BatasanNilai
Login dan register (/auth/*)20 request per menit
Semua endpoint lain600 request per menit
Body request15 MB (cukup untuk lampiran 10 MB dalam base64)
Panjang pesan20.000 karakter
Lampiran5 per pesan, masing-masing 10 MB
Streaming runSatu stream terbuka paling lama 30 menit; sambungkan ulang untuk melanjutkan
Pemakaian model dan toolKuota token bulanan sesuai paket workspace; run berhenti dengan RATE_LIMITED saat kuota habis

Paginasi ​

Daftar yang bisa bertambah panjang menerima limit (1–100, bawaan 50) dan cursor, dan mengembalikan:

json
{ "items": [ … ], "nextCursor": "50" }

Kirim nextCursor sebagai cursor pada request berikutnya sampai nilainya null.

Idempotensi ​

Eksekusi tool (POST /integrations/tools/{toolSlug}/execute) menerima idempotencyKey (8–200 karakter). Mengulang request dengan key dan input yang sama mengembalikan "status": "duplicate" alih-alih menjalankan tool dua kali; key yang sama dengan input berbeda gagal dengan IDEMPOTENCY_CONFLICT.

Lex oleh Gavalytics AI