🔍 Console Hataları Analiz

Muzibu Player - Console'daki hataların sebepleri ve çözümleri

📅 17 Aralık 2025 • 🎯 Hata Analizi

📊 Özet

2
Ana Hata Tipi
1
Kritik Hata
1
Fallback Çalışıyor
🚫

HATA #1: NotAllowedError - Autoplay Policy

HLS play error: NotAllowedError: play() failed because the user didn't interact with the document first.

🔍 Sebep:

  • Browser Autoplay Policy: Modern tarayıcılar kullanıcı etkileşimi olmadan ses çalmaya izin vermiyor
  • Preload Attempt: Sayfa yüklenirken son çalınan şarkıyı otomatik yüklemeye çalışıyor
  • HLS Audio Element: audio.play() çağrısı kullanıcı etkileşimi olmadan yapılıyor

📍 Kod Konumu:

player-core.js:2102 → playHlsStream()

preloadLastPlayedSong() → init()

⚠️ Etki:

DÜ ŞÜK ÖNCELİK - Bu hata beklenen bir davranıştır!

  • Şarkı yine de yüklenir (PAUSE modunda)
  • Kullanıcı play butonuna bastığında çalar
  • Sistem doğru çalışıyor, sadece tarayıcı uyarısı

✅ Çözüm:

MEVCUT: Sistem zaten doğru çalışıyor!

  • autoplay: false parametresi kullanılıyor
  • ✅ Şarkı PAUSE modunda bekliyor
  • ✅ Kullanıcı play basınca çalıyor

Bu hatayı tamamen kaldırmak için:

  • Opsiyonel: audio.play() çağrısını try-catch içine al ve hatayi sessizce yakala
  • Opsiyonel: Preload'u tamamen kaldır (ama bu UX'i kötüleştirir)
🔑

HATA #2: keyLoadError - HLS Encryption Key

⚠️ HLS error (fallback to MP3): keyLoadError

🔍 Sebep:

  • Deleted Song: Son çalınan şarkı (ID: 323) database'den silinmiş
  • Missing Key File: HLS encryption key dosyası bulunamıyor
  • 404 Response: /api/muzibu/songs/323/key endpoint 404 döndürüyor

📍 Kod Konumu:

player-core.js:2116 → HLS.Events.ERROR

keyLoadError → Fallback to MP3

⚠️ Etki:

ORTA ÖNCELİK - Fallback sistemi çalışıyor ama hata gösteriyor

  • HLS stream başarısız olunca MP3 fallback devreye giriyor
  • Şarkı yine de çalışıyor (MP3 formatında)
  • Console'da hata mesajı görünüyor

✅ Çözüm Seçenekleri:

ÇÖZÜM 1: Preload'da 404 Kontrolü (Önerilen)

async preloadLastPlayedSong() { const response = await fetch(`/api/muzibu/songs/${song.song_id}/stream`); // 🗑️ Skip if song deleted (404/500) if (!response.ok) { console.warn('Last played song not available'); return; // ← MEVCUT: Zaten var! } // Continue with preload... }

✅ Bu kontrol zaten mevcut! Ama yine de HLS key hatası geliyor çünkü HLS.js kendi isteği yapıyor.

ÇÖZÜM 2: HLS Error'u Sessizce Yakala

this.hls.on(Hls.Events.ERROR, (event, data) => { if (data.details === 'keyLoadError' && !data.fatal) { // ⚠️ Sessizce yakala, console'a yazma this.fallbackToMP3(); // Fallback yap return; } // Diğer hatalar için warning göster });

⚠️ Bu hata zaten fallback tetikliyor, ek aksiyona gerek yok.

ÇÖZÜM 3: LocalStorage Temizliği (En Kolay)

// Browser console'da çalıştır: localStorage.removeItem('muzibu_queue_state'); localStorage.removeItem('muzibu_full_state');

✅ En hızlı çözüm: Kullanıcı hard refresh yaptığında eski şarkı bilgisi temizlenecek.

🎯 Aksiy on Planı

1️⃣

Autoplay Error → GEREKSİZ

Bu hata beklenen bir davranış. Sistem doğru çalışıyor. Try-catch ile sessizce yakalanabilir ama gerekli değil.

2️⃣

HLS Key Error → LocalStorage Temizle

Deleted song (ID: 323) localStorage'da kalmış. Kullanıcı hard refresh yapınca temizlenecek. Opsiyonel: Preload'da extra 404 check eklenebilir.

3️⃣

İzleme → Console Temiz Kalmalı

Hard refresh sonrası console'da sadece bu 2 hata görünecek. Yeni hatalar gelmemeli. console.log TAMAMEN temizlendi.

🤖 Bu rapor Claude Code tarafından otomatik oluşturuldu

Claude Sonnet 4.5 • 17 Aralık 2025