4.5 KiB
title, description, order, status
| title | description | order | status |
|---|---|---|---|
| Sorun Giderme | Kurulum, deploy, Supabase ve giriş problemlerinde kontrol edilmesi gerekenler. | 15 | legacy-v2-archive |
Sorun Giderme
Arşiv: Aşağıdaki Supabase/RLS sorun giderme akışı v2'ye aittir. v3 operasyon kontrolleri ve health endpoint'leri Faz 8 runbook'unda tanımlıdır.
Neta bir Next.js uygulaması gibi deploy edilse de Supabase, RLS, Auth ve Storage bağlantıları olduğu için sorunları doğru katmanda aramak önemli. Bu sayfada en sık karşılaşılabilecek durumları topladım.
Login Sayfası Açılmıyor
Önce .next cache'ini temizleyin:
Remove-Item .next -Recurse -Force
Sonra dev server'ı tekrar başlatın:
npm run dev
Eğer sayfa hâlâ açılmıyorsa şunları kontrol edin:
NEXT_PUBLIC_SUPABASE_URLdolu mu?NEXT_PUBLIC_SUPABASE_ANON_KEYdoğru mu?- Supabase projesi erişilebilir mi?
- Dev server loglarında route compile hatası var mı?
Login sayfası public route olduğu için session kontrolünün sayfayı bloklamaması gerekir.
Giriş Yapıyorum Ama Dashboard Açılmıyor
Kontrol edilecekler:
- Kullanıcının
profilestablosunda kaydı var mı? profiles.roledeğerifreelancermı?- Kullanıcı yanlışlıkla
clientrolünde mi? - Middleware kullanıcıyı
/portaltarafına mı yönlendiriyor?
Client rolündeki kullanıcı dashboard'a değil, portal'a yönlendirilir.
İlk Admin Oluşturulamıyor
Bu genellikle service role veya Supabase function problemidir.
Kontrol edin:
SUPABASE_SERVICE_ROLE_KEYvar mı?- Service role key doğru Supabase projesine mi ait?
request_internal_auth_creationfunction'ı var mı?is_first_admin_setup_availablefunction'ı var mı?profilestablosu var mı?- Auth trigger yeni kullanıcı için profile oluşturuyor mu?
Register Kapalı Görünüyor
profiles tablosunda herhangi bir kayıt varsa sistem ilk admin kurulmuş kabul eder.
Supabase SQL editor'da kontrol edebilirsiniz:
select id, role from public.profiles;
Geliştirme ortamında yanlış kayıt oluştuysa auth user ve profile kayıtlarını temizleyip tekrar deneyebilirsiniz.
Veri Ekleniyor Ama Listede Görünmüyor
Bu çoğu zaman RLS kaynaklıdır.
Kontrol edin:
- Kayıtta
user_iddoğru mu? - Policy
auth.uid() = user_idmantığıyla uyumlu mu? - Sorguda
.eq("user_id", user.id)filtresi var mı? - Kullanıcı session'ı gerçekten var mı?
Supabase bazen yetkisiz veriyi hata yerine boş sonuç olarak döndürür. Bu yüzden boş listeyi her zaman "veri yok" diye yorumlamamak gerekir.
Storage Upload Hata Veriyor
Kontrol listesi:
avatarsbucket var mı?project-assetsbucket var mı?project-assetsprivate mı?- Dosya boyutu 5 MB sınırını aşıyor mu?
- MIME type izinli mi?
- Storage policy service role erişimine izin veriyor mu?
SUPABASE_SERVICE_ROLE_KEYdoğru mu?
Proje Görseli Yükleniyor Ama Görünmüyor
project-assets private bucket olduğu için public URL beklemeyin. Uygulama signed URL üretir.
Kontrol edin:
cover_image_pathtabloya yazılmış mı?- Signed URL üretimi hata veriyor mu?
- Bucket adı doğru mu?
AI Asistan Cevap Vermiyor
Kontrol edin:
- Ayarlar ekranında provider seçilmiş mi?
- API key kaydedilmiş mi?
app_settingstablosunda kullanıcı için kayıt var mı?- Provider ile model adı uyumlu mu?
- API key geçerli mi?
Chat endpoint'i için route:
/api/chat
Finans veya Proje Analizi Hata Veriyor
Bu endpoint'ler de AI provider ayarlarını kullanır:
/api/finance-analysis
/api/project-risk
Eğer API key yoksa analiz endpoint'i hata döndürür.
Build Hatası
Önce bağımlılıkları temiz kurmayı deneyin:
npm install
npm run build
Projede npm lockfile kullanılmalıdır. pnpm-lock.yaml veya başka lockfile'lar deployment platformunu karıştırabilir.
Slow Filesystem Uyarısı
Next.js dev server bazen Windows veya yavaş disk üzerinde şu tarz uyarı verebilir:
Slow filesystem detected
Bu uyarı tek başına hata değildir. Ama dev server çok yavaşsa:
- Projeyi daha hızlı lokal diske taşıyın.
.nextklasörünü temizleyin.- Antivirüs taramasının proje klasörünü yavaşlatmadığından emin olun.
Health Check
Uygulamanın temel olarak ayağa kalktığını test etmek için:
/api/health
Beklenen cevap:
{
"status": "ok"
}
Bu endpoint Supabase bağlantısını test etmez; sadece Next.js uygulamasının çalıştığını gösterir.