Siapa pun yang pernah merilis bot Discord pasti pernah mengalaminya: hari Selasa yang biasa, lalu tiba-tiba increased api errors di mana-mana dan separuh command-mu gagal. Google Trends mencatat frasa ini sebagai istilah pencarian "breakout" pada pertengahan 2026. Kejadiannya cukup sering sehingga pengguna akhir mencarinya langsung. Berikut cara bertahan menghadapinya, dan apa yang diambil Noxyr Server API dari pelajaran itu.

A request gets a 429, waits out a countdown, then retries and succeeds with a 200. Server 429 200 3 2 1 Retry-After

Tiga mode kegagalan API Discord yang paling besar

  • Gangguan global / gangguan sebagian: terlihat di discordstatus.com. Gejalanya: permintaan apa pun bisa gagal, gateway bisa putus, dan latensi melonjak di mana-mana.
  • 429 Too Many Requests: kamu melampaui batas sebuah bucket. Discord mengembalikan header Retry-After yang memberi tahu persis berapa lama harus menunggu.
  • Gateway invalid session: sesi WebSocket-mu sudah usang. Sambungkan ulang dengan resume token-mu; jika gagal, lakukan identify baru.

Bangun untuk kegagalan, bukan untuk kondisi ideal

  • Hormati Retry-After. Jangan mencoba ulang dengan timer sendiri. Tidur selama jumlah pasti yang diberitahukan Discord, lalu coba ulang sekali. Bot yang menghajar terus 429 akan kena ban.
  • Exponential backoff dengan jitter. Untuk error 5xx, tunggu 1 detik, 2 detik, 4 detik, 8 detik, ditambah offset acak kecil agar sekumpulan restart tidak menyerbu bersamaan.
  • Circuit-break untuk panggilan yang tidak kritis. Jika bot-mu memposting ringkasan mingguan dan API Discord sedang terdegradasi, lewati kali ini alih-alih menumpuk permintaan. Ringkasan bisa menunggu; gangguan tidak bisa.
  • Cache semua yang tidak real-time. Nama guild, daftar channel, dan ID role, simpan di cache lokal. Saat gangguan, data cache membuatmu tetap bisa melayani.
  • Tampilkan status. Jika command bot-mu gagal karena Discord sedang down, beri tahu pengguna. Satu baris "Discord sedang mengalami masalah" lebih baik daripada timeout diam-diam.

Cara Noxyr Server API menerapkan pelajaran ini

Noxyr Server API bukan API Discord. Ia membaca database-nya sendiri. Tetapi prinsip yang sama berlaku, dan itulah yang membentuk desainnya:

  • Error yang bisa diprediksi: setiap kegagalan berupa JSON dengan kode error yang stabil. Tidak ada HTML, tidak ada format yang berubah-ubah.
  • Header rate limit: header RateLimit-* yang distandarkan, sehingga klien bisa mundur sebelum terkena 429.
  • Degradasi yang anggun: endpoint /api/v1/server kembali ke data guild dari cache saat pengambilan dari Discord gagal.
  • Tanpa kegagalan berantai: setiap endpoint gagal secara independen. Discord yang sedang down tidak merusak endpoint analitik tiket-mu, karena endpoint itu membaca dari Mongo, bukan dari Discord.
  • Kill switch instan: menonaktifkan sebuah key atau scope langsung berlaku pada permintaan berikutnya, tanpa perlu restart.

Panduan saat Discord bermasalah

  • 1. Cek discordstatus.com dulu. Apakah cuma kamu yang terdampak?
  • 2. Lihat log error-mu sendiri: 429, 5xx, gateway disconnect.
  • 3. Jika masalahnya ada di Discord: tunda penulisan yang tidak kritis, patuhi Retry-After, dan tunggu.
  • 4. Jika masalahnya ada di sisimu: cek deploy terbaru, invalidasi cache, dan fitur baru.
  • 5. Komunikasikan. Catatan singkat dan jujur di channel dukungan mencegah 100 laporan duplikat.

Bacaan lanjutan tentang lapisan API: Noxyr Server API, API Discord vs API Noxyr, prinsip desain API.