Bir Discord botu yayınlamış herkes bunu görmüştür: sıradan bir salı günü, ardından birden her yerde increased api errors uyarısı ve komutların yarısının başarısız olması. Google Trends bu ifadeyi 2026'nın ortasında bir "yükselen" arama terimi olarak kaydetti; bu, son kullanıcıların bunu doğrudan aramasına yetecek kadar sık oluyor. Bununla nasıl başa çıkılacağını ve Noxyr Sunucu API'sinin bu derslerden neleri aldığını şöyle anlatalım.

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

Discord API'nin en büyük üç hata türü

  • Genel kesinti / kısmi kesinti: discordstatus.com adresinde görünür. Belirtileri: herhangi bir istek başarısız olabilir, gateway bağlantısı kopabilir, gecikme her yerde zirve yapar.
  • 429 Too Many Requests: bir kovanın sınırını aştın. Discord, ne kadar beklemen gerektiğini tam olarak söyleyen bir Retry-After başlığı döndürür.
  • Gateway geçersiz oturum: WebSocket oturumun eski. Devam belirtecinle yeniden bağlan; o da başarısız olursa yeni bir identify gönder.

Güneşli günler için değil, arızalar için inşa et

  • Retry-After'a uy. Kendi zamanlayıcınla yeniden deneme yapma. Discord'un söylediği tam süre kadar bekle, sonra bir kez yeniden dene. 429'larla ezip geçen botlar banlanır.
  • Jitter'li üstel geri çekilme. 5xx hatalarında 1 sn, 2 sn, 4 sn, 8 sn bekle; bir grup yeniden başlatma aynı anda saldırmasın diye küçük bir rastgele kayma ekle.
  • Kritik olmayan çağrılarda devre kesici kullan. Botun haftalık bir özet gönderiyorsa ve Discord API bozulmuşsa, üst üste yığılmak yerine bu çalıştırmayı atla. Özet bekleyebilir; kesinti bekleyemez.
  • Gerçek zamanlı olmayan her şeyi önbelleğe al. Sunucu adları, kanal listeleri, rol ID'leri yerel olarak önbelleğe alınabilir. Bir kesinti sırasında önbelleğe alınmış veri hizmeti sürdürmeni sağlar.
  • Durumu göster. Botunun komutları Discord'un çökmesi yüzünden başarısız oluyorsa kullanıcılara söyle. "Discord şu anda sorunlar yaşıyor" diyen tek satırlık bir mesaj, sessiz zaman aşımlarından iyidir.

Noxyr Sunucu API'si bu dersleri nasıl uyguluyor?

Noxyr Sunucu API'si Discord API'si değildir; kendi veritabanını okur. Ama aynı ilkeler geçerlidir ve tasarımını bunlar şekillendirdi:

  • Öngörülebilir hatalar: her hata, sabit bir error koduyla birlikte JSON'dur. HTML yok, değişen formatlar yok.
  • Hız sınırı başlıkları: istemciler 429'a çarpmadan önce geri çekilsin diye standart RateLimit-* başlıkları.
  • Zarif bozulma: /api/v1/server uç noktası, arkadaki Discord isteği başarısız olduğunda önbelleğe alınmış sunucu verisine geri döner.
  • Zincirleme hata yok: her uç nokta bağımsız olarak başarısız olur. Discord çöktüğünde bilet analiz uç noktan bozulmaz, çünkü Discord'dan değil Mongo'dan okur.
  • Anında kapatma anahtarı: bir anahtarı veya kapsamı devre dışı bırakmak, yeniden başlatmaya gerek kalmadan bir sonraki istekte geçerli olur.

Discord ters gittiğinde izlenecek adımlar

  • 1. Önce discordstatus.com adresini kontrol et; sorun sadece sende mi?
  • 2. Kendi hata günlüklerine bak: 429'lar, 5xx, gateway bağlantı kopmaları.
  • 3. Sorun Discord'daysa: kritik olmayan yazmaları duraklat, Retry-After'a uy, bekle.
  • 4. Sorun sendeyse: son dağıtımlara, önbellek geçersiz kılmalarına ve yeni özelliklere bak.
  • 5. İletişim kur. Destek kanalında kısa ve dürüst bir not, 100 tekrarlanan bildirimin önüne geçer.

API katmanı hakkında daha fazlası: Noxyr Sunucu API'si, Discord API'si ile Noxyr API'si, API tasarım ilkeleri.