مسرد أخطاء Lovable — بالإنجليزية والحل بالعربية
الصق رسالة الخطأ التي تظهر لك (باللغة الإنجليزية) في مربّع البحث، وستجد سبب المشكلة وحلّها بالعربية مباشرة. يغطّي المسرد 22 من أكثر الأخطاء شيوعاً في مشاريع Lovable.
22 نتيجة
Failed to resolve import "..."طلبت من Lovable استيراد ملف أو حزمة غير موجودة. غالباً بسبب مسار خاطئ (@/components/Xxx) أو نسيان تثبيت مكتبة من npm.
اطلب من Lovable: «تأكّد من إنشاء الملف أولاً قبل استيراده» أو «ثبّت المكتبة الناقصة». تحقّق من الحروف الكبيرة/الصغيرة — Linux حسّاس للحالة.
Failed to resolve import "@/components/UserCard" from src/pages/Home.tsxCannot find module '...' or its corresponding type declarationsالحزمة غير مثبّتة في package.json أو TypeScript لا يجد ملف التعريفات.
اطلب: «ثبّت [اسم الحزمة] وأعد تشغيل الخادم». لو كانت حزمة قديمة، اطلب تركيب @types/[الاسم].
Unexpected token, expected ...خطأ في صياغة JSX أو JavaScript — قوس ناقص، فاصلة زائدة، أو وسم غير مغلق.
اطلب من Lovable «أعد قراءة الملف كاملاً وأصلح خطأ الصياغة». في JSX، يجب أن يكون هناك عنصر جذر واحد أو Fragment (<>...</>) .
Hydration failed because the server rendered HTML didn't match the clientالخادم SSR ولّد HTML مختلفاً عمّا يرسمه المتصفّح. غالباً بسبب استخدام window أو localStorage أو Date.now() أثناء الرندر الأولي.
اطلب: «انقل قراءة localStorage/window داخل useEffect بدل useState initializer، أو استخدم <ClientOnly>».
Rendered more hooks than during the previous renderاستدعيت React Hook داخل شرط if أو return مبكر. Hooks يجب أن تُستدعى بنفس الترتيب في كل رندر.
اطلب: «انقل جميع hooks إلى أعلى الدالة قبل أي return أو if». الشروط تكون داخل الـ hook، لا حوله.
Cannot read properties of undefined (reading '...')حاولت قراءة خاصية من قيمة غير موجودة — عادةً بيانات لم تصل بعد من الخادم.
أضف تحقّق: {data?.user?.name} أو if (!data) return <Skeleton />. اطلب: «أضف حالة تحميل وحماية اختيارية chaining».
new row violates row-level security policy for table "..."سياسة RLS في Lovable Cloud ترفض الإدراج. المستخدم غير مسجّل دخول، أو السياسة لا تسمح له بالكتابة.
اطلب: «راجع سياسات RLS للجدول وأضف سياسة INSERT للمستخدم authenticated». تأكّد أن user_id في الصف الجديد = auth.uid().
permission denied for table "..."الجدول ينقصه GRANT للدور anon أو authenticated. RLS وحدها لا تكفي.
اطلب: «أضف GRANT SELECT, INSERT ON public.[table] TO authenticated في migration جديد».
JWT expiredالجلسة انتهت صلاحيّتها ولم يتم تجديد التوكن.
اطلب: «فعّل تجديد الجلسة التلقائي في supabase client بإعداد autoRefreshToken: true».
Invalid login credentialsالبريد أو كلمة السر خاطئة، أو المستخدم لم يفعّل بريده بعد.
افتح Users في لوحة Cloud وتأكّد من حالة المستخدم. اطلب: «أضف رسالة عربية واضحة لخطأ تسجيل الدخول».
Email not confirmedالمستخدم سجّل لكنه لم يضغط رابط التفعيل في بريده.
أثناء التطوير: أوقف Confirm email في إعدادات Auth. للإنتاج: اطلب «أضف زر إعادة إرسال رسالة التفعيل».
Access to fetch has been blocked by CORS policyتنادي API من دومين مختلف بدون رؤوس CORS مناسبة.
استخدم Server Function داخل Lovable بدل نداء client مباشر، أو أضف الدومين في إعدادات API الخارجي.
build:dev exited with code 1 · Error: Unauthorizedloader في مسار عام يستدعي server function محميّة بـ requireSupabaseAuth. أثناء prerender لا يوجد مستخدم.
انقل الاستدعاء إلى component عبر useServerFn + useQuery، أو ضع المسار تحت _authenticated/.
Expected 3 parts in JWT; got 1أنشأت Supabase client بيدك ومرّرت مفتاح sb_publishable_ (opaque) بدل JWT.
استخدم client المولّد من @/integrations/supabase/client بدل createClient يدوي، أو احذف رأس Authorization.
Domain verification pending / DNS not propagatedأضفت دومين مخصّص لكن سجل CNAME/A لم ينتشر بعد.
انتظر 5-30 دقيقة. تحقّق عبر dnschecker.org. تأكّد من إضافة السجل الصحيح كما تعرضه Lovable.
You have exceeded your monthly credit limitاستنفدت رصيد الرسائل الشهري في خطّتك.
اطلب من Lovable «انتقل إلى وضع Chat بدل Build للأسئلة النظرية» — لا يستهلك رصيد بناء. أو رقّي الخطّة.
Context limit exceededالمحادثة صارت طويلة جداً على النموذج.
ابدأ محادثة جديدة داخل المشروع نفسه — الكود يبقى محفوظاً والسياق يُعاد بناؤه من الملفات.
Merge conflict / Failed to push to originعدّلت الكود من GitHub ومن Lovable بالتوازي، أو الفرع local لا يطابق remote.
استخدم زر Sync in GitHub داخل Lovable. للأمان: عدّل من مكان واحد في المرّة. حلّ التعارض في GitHub ثم ارجع لـ Lovable.
Port 8080 is already in useعمليّة سابقة لم تُغلق أو تشغّل مشروعاً آخر على نفس المنفذ.
أعد تشغيل الـ Sandbox من قائمة Lovable، أو استخدم منفذاً مختلفاً في vite.config.ts.
Type 'X' is not assignable to type 'Y'TypeScript يرفض تمرير قيمة لا تطابق النوع المتوقّع.
اطلب: «أصلح خطأ TypeScript بإضافة النوع الصحيح، لا تستخدم any». لو كانت المشكلة في مكتبة خارجية، اطلب تركيب @types.
Invalid Refresh Token: Refresh Token Not Foundالمتصفّح فقد الجلسة أو تم تغيير إعدادات Auth في Cloud.
امسح localStorage للدومين وأعد تسجيل الدخول. اطلب: «أضف معالجة SignOut التلقائي عند فشل التجديد».
TypeError: Failed to fetch / NetworkErrorالاتصال بالخادم انقطع، أو الدالة تعطّلت، أو المتصفّح يحجب الطلب.
افتح تبويب Network في المتصفّح واقرأ الاستجابة. إذا كانت edge function اطلب: «أضف try/catch وسجّلات مفصّلة».
انسخ الرسالة كاملة وأرسلها في مجتمع الواتساب، وسنضيفها للمسرد.
