مرجع

مسرد أخطاء Lovable — بالإنجليزية والحل بالعربية

الصق رسالة الخطأ التي تظهر لك (باللغة الإنجليزية) في مربّع البحث، وستجد سبب المشكلة وحلّها بالعربية مباشرة. يغطّي المسرد 22 من أكثر الأخطاء شيوعاً في مشاريع Lovable.

22 نتيجة

Failed to resolve import "..."
السبب

طلبت من Lovable استيراد ملف أو حزمة غير موجودة. غالباً بسبب مسار خاطئ (@/components/Xxx) أو نسيان تثبيت مكتبة من npm.

الحل

اطلب من Lovable: «تأكّد من إنشاء الملف أولاً قبل استيراده» أو «ثبّت المكتبة الناقصة». تحقّق من الحروف الكبيرة/الصغيرة — Linux حسّاس للحالة.

مثال حقيقي
Failed to resolve import "@/components/UserCard" from src/pages/Home.tsx
Cannot 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: Unauthorized
السبب

loader في مسار عام يستدعي 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 وسجّلات مفصّلة».

لم تجد خطأك؟

انسخ الرسالة كاملة وأرسلها في مجتمع الواتساب، وسنضيفها للمسرد.

انضم لمجتمع واتساب