Error

Ketika sebuah permintaan gagal, WEEGLOO mengembalikan body error dengan format yang konsisten beserta kode status HTTP. Bentuk body respons sama tanpa bergantung pada API mana (CMA, CDA, ACMA, ACDA, Upload, Auth) yang mengalami kegagalan. Karena itu, jika Anda menguasai satu format saja, Anda dapat menangani semua error dengan cara percabangan yang sama. Halaman ini merangkum format umum tersebut beserta kode error yang sering ditemui di satu tempat.

Format respons error

Body error memiliki bentuk seperti berikut. Berikut adalah respons yang diterima saat mencoba mengambil WebHosting yang tidak ada.

{
  "requestId": "GeR3sEbvWdgvv9eW2NXeanpj2wo6qbkVXgIW7Qd3ea6",
  "sys": {
    "id": "RxcgyPTSuk4GDy6s",
    "type": "NotFound",
    "code": "WGL404001",
    "timestamp": 1781785683556
  },
  "details": {
    "space": { "sys": { "id": "HnQ32YiH", "type": "Refer", "targetType": "Space" } }
  },
  "reason": "WebHosting(...) has been deleted or does not exist.",
  "suggestion": "Please verify WebHosting and try again."
}

Arti setiap kunci adalah sebagai berikut.

KunciTipeKeterangan
requestIdstringPengidentifikasi pelacakan untuk permintaan ini. Jika Anda menyertakan nilai ini saat menghubungi dukungan, permintaan terkait dapat ditemukan dengan cepat.
sys.typestringKlasifikasi error. Menunjukkan kategori besar seperti Unauthorized, Forbidden, NotFound, Unprocessable, Conflict, TooManyRequest, dan lainnya.
sys.codestringKode error rinci (misalnya WGL409005). Gunakan nilai ini saat melakukan percabangan per kode.
sys.timestampintegerWaktu terjadinya error (epoch millis).
reasonstringAlasan kegagalan yang dapat dibaca manusia.
suggestionstringPetunjuk yang membantu penyelesaian.
detailsobject (opsional)Informasi tambahan. Berisi Refer yang menunjuk ke sumber daya terkait, daftar item error validasi (errors), dan lainnya. Dapat tidak ada tergantung jenis error.

Lakukan percabangan dengan satuan yang Anda perlukan, baik sys.type (kategori besar) maupun sys.code (kode rinci). Meskipun sys.type sama, jika sys.code berbeda maka penyebabnya berbeda, jadi jika Anda memerlukan penanganan yang tepat, gunakan sys.code sebagai acuan.

Ketika validasi gagal, item yang melanggar dimuat dalam details.errors. Berikut adalah respons yang gagal validasi karena memasukkan properti yang tidak ada dalam skema ke dalam body.

{
  "requestId": "yJ8KpQ2mWtnLrZ4Xv7BcEadfh3sNuMvKbGT5Pq9wRsx",
  "sys": {
    "id": "Lm2Nq9Tr8KdW4xZc",
    "type": "BadRequest",
    "code": "WGL400006",
    "timestamp": 1781776000000
  },
  "details": {
    "errors": [
      { "path": "", "message": "property 'X' is not defined in the schema", "property": "X" }
    ]
  },
  "reason": "Some values do not satisfy validation rules.",
  "suggestion": "Please check the request body and try again."
}

Setiap item dalam details.errors memuat posisi yang melanggar (path), keterangan (message), dan nama properti terkait (property). Jika item lebih dari satu, akan ada satu entri untuk setiap nilai yang melanggar.

Kode yang sering ditemui

Berikut adalah kode error yang sering Anda jumpai.

KodeKlasifikasiArtiSituasi umum
WGL401001UnauthorizedToken tidak validToken Bearer Authorization telah kedaluwarsa atau salah.
WGL403001ForbiddenTidak ada izinPeran pemanggil tidak mengizinkan operasi tersebut. Permintaan yang terhalang bukan karena peran pemanggil, melainkan karena titik asal panggilan, dikembalikan sebagai WEB403001 di bawah.
WEB403001ForbiddenTidak ada izin akses ke sumber dayaPermintaan itu sendiri ditolak karena tidak diotorisasi. Permintaan yang gagal pada pemeriksaan allowedReferrers saat dipanggil dengan Delivery Access Token atau Space Access Token dikembalikan dengan kode ini. Kode ini berbeda dari WGL403001, yang berarti peran pemanggil tidak memiliki izin.
WGL403012ForbiddenFitur dihentikan karena penggunaan melebihi batasVolume transfer atau penggunaan ruang penyimpanan Organization telah melebihi kuota yang disediakan paket, sehingga fitur terkait dihentikan (misalnya API baca, unggahan Media baru, penyebaran Web Hosting). Berbeda dengan WGL429001 yang merupakan batas jumlah, ini adalah penghentian karena penggunaan melebihi batas. Untuk syarat pelepasannya, lihat Paket harga.
WGL404001NotFoundSumber daya tidak ada atau telah dihapusMengambil dengan sys.id yang salah, atau memanggil fitur yang belum disiapkan (misalnya domain kustom yang belum terhubung).
WGL400006BadRequestNilai body melanggar aturan validasiMengirim body dengan kunci field atau tipe yang salah. Item yang melanggar dimuat dalam details.errors.
WEB400014BadRequestField pengurutan tidak ada di selectField yang Anda pakai pada order tidak Anda muat pada select. Semua field yang dipakai untuk pengurutan harus ikut dimuat pada select (lihat Parameter kueri umum).
WGL409005ConflictSumber daya telah diubah sementara ituHeader X-Weegloo-Version tidak ada atau berbeda dengan versi saat ini (lihat Konvensi).
WGL422007UnprocessableTidak dapat diarsipkan karena berstatus terpublikasiUntuk mengarsipkan Content atau Media, Anda harus terlebih dahulu membatalkan publikasinya.
WGL422009UnprocessableTidak dapat dihapus karena berstatus terpublikasiUntuk menghapus Content atau Media yang telah dipublikasikan, Anda harus terlebih dahulu membatalkan publikasinya.
WGL429001TooManyRequestBatas paket terlampauiJumlah pembuatan sumber daya seperti Organization atau Space telah melebihi batas paket saat ini. Menaikkan paket akan menambah batasnya.

Kode di atas adalah sebagian yang sering ditemui. Selain itu, mungkin masih ada lebih banyak kode tergantung operasi dan sumber dayanya. Apa pun kode yang Anda terima, pahami kategori besarnya melalui sys.type, lalu periksa penyebab spesifik dan arah penyelesaiannya melalui reason dan suggestion.

  • Konvensi: Aturan konkurensi X-Weegloo-Version untuk menghindari WGL409005.
  • Properti sistem (sys): Status publikasi (status) dan siklus hidup yang ditunjuk oleh WGL422007 dan WGL422009.
  • Paket harga: Kriteria per paket dan cara pelepasan untuk WGL403012 (penghentian karena penggunaan melebihi batas) dan WGL429001 (batas jumlah).