← nitronium.dev

SSE bağlantısı auth header olmadan sessizce başarısız oluyor

2026-06-30
Raw fetch() ile SSE başlatırken Authorization veya X-CSRF-Token header'ı eksik bırakılırsa backend 401 döndürüyor ama client tarafında görünür bir hata yok. EventSource API'si zaten custom header desteklemiyor, manuel fetch() ile de header unutulursa aynı sonuç.

Belirtiler: Bağlantı açılıyor gibi görünüyor, SSE loop başlıyor, ama hiç event gelmiyor. UI "Waiting for events..." durumunda takılıyor. Console'da da sessiz — 401 response body okunmadığı için hata fırlamıyor.

`typescript
// YANLIŞ — auth header yok
const res = await fetch(/api/tasks/${taskId}/trace/stream, { signal });

// DOĞRU — api client'ın fetchRaw() metodu tüm auth header'ları ekliyor
const res = await api.fetchRaw(/api/tasks/${taskId}/trace/stream, { signal });
`

Teşhis: Backend log'unda status=401 görürsen sorun bu. Client log'unda hiçbir şey yoktur çünkü 401 response body'si reader'a verilmeden drop ediliyor.

Çözüm: Her zaman projenin API client'ındaki wrapper'ı kullan — auth header'ları merkezi olarak ekleyen tek yer orası.