الاستخراج من الملف / فشل محمل البيانات الافتراضي: إصدار API "5.4.296" لا يتطابق مع إصدار Worker "5.3.31" (n8n Cloud 2.25.7)

وصف المشكلة/الخطأ/السؤال

على مثيل n8n السحابي الخاص بي، أي عقدة تحلل ملف PDF تفشل مع خطأ عدم تطابق إصدار pdf.js. يؤثر هذا على كليهما:

  • n8n-nodes-base.extractFromFile (العملية: Extract From PDF)
  • @n8n/n8n-nodes-langchain.documentDefaultDataLoader (نوع البيانات = Binary)

المدخلات عبارة عن ملف PDF صحيح (يتم تنزيل عنوان URL موقّع من Supabase Storage عبر عقدة HTTP Request، نوع MIME application/pdf، ~2.5 كيلوبايت). يصل الملف الثنائي إلى العقدة بشكل صحيح — يحدث الفشل داخل خطوة تحليل PDF نفسها.

يبدو أن هناك نسختين مختلفتين من pdf.js يتم تحميلهما داخل نفس المثيل (جانب “API” وجانب “Worker” على إصدارات مختلفة ولا يمكنهما التواصل).

ما هي رسالة الخطأ (إن وجدت)؟

The API version "5.4.296" does not match the Worker version "5.3.31".

شارك الإخراج الذي تم إرجاعه بواسطة العقدة الأخيرة

العقدة الفاشلة (Load Document / Default Data Loader في وضع Binary) ترجع:

The API version "5.4.296" does not match the Worker version "5.3.31".

معلومات حول إعداد n8n

  • إصدار n8n: 2.25.7
  • قاعدة البيانات: (مُدارة — n8n Cloud)
  • إعداد n8n EXECUTIONS_PROCESS: الافتراضي (مُدارة — n8n Cloud)
  • تشغيل n8n عبر: n8n Cloud
  • نظام التشغيل: غير متاح (Cloud)

ما الذي حاولت القيام به بالفعل

  • حذفت العقدة الفاشلة وأعدت إنشاؤها من الصفر، ثم أعدت توصيل سير العمل — نفس الخطأ (لذا هذا ليس مشكلة إصدار عقدة مخزنة في سير العمل).
  • قمت بتبديل المثيل بين Latest Stable و Latest Beta — الخطأ لا يختفي، بل ينتقل إلى سير عمل / عقدة مختلفة. يقطع أحد الإنشاءات سير العمل A، والآخر يقطع سير العمل B. هذا السلوك “اضرب الخلد” يشير بقوة إلى عدم تطابق في حزم pdf.js على مستوى الإنشاء وليس مشكلة لكل سير عمل.
  • تحققت من الإعدادات — لا توجد عُقد المجتمع المثبتة (لذا هذا ليس تضارباً في عقدة Tesseract / OCR للمجتمع، وهو السبب المعتاد المُبلغ عنه في الموضوعات الأقدم).

ملاحظات / السياق

  • لأنني على n8n Cloud، لا يمكنني التحكم في صورة العامل أو تثبيت/محاذاة تبعية pdf.js بنفسي.
  • يبدو أن هذا مرتبط بموضوع موجود يُبلغ عن نفس زوج الإصدارات بالضبط: The API version "5.4.296" does not match the Worker version "5.3.31"
  • في هذا الموضوع تضمنت الإصلاح محاذاة جميع الحاويات لنفس الإصدار، وهو شيء لا يمكن لمستخدم Cloud القيام به — لذا أشك في وجود خطأ في حزم pdf.js في إنشاء 2.25.x Cloud.

الأسئلة

  1. هل هذه مشكلة معروفة في حزم pdf.js في إنشاء 2.25.x Cloud؟
  2. هل هناك إصدار مستقر معين حيث تتم محاذاة إصدارات pdf.js في API و Worker الذي يجب أن أثبّته؟
  3. هل المسار الموثوق الوحيد للمضي قدماً لاستخراج نص PDF هو استخراجه خارج عُقد pdf.js المدمجة في n8n (على سبيل المثال، الاستخراج على نظام الخلفية الخاص بي قبل استدعاء webhook، أو عبر واجهة برمجة تطبيقات استخراج خارجية)، أم أن الإصلاح متوقع قريباً؟

مرحبا @sawsew467

نعم

أعتقد أن هذا غير متاح لمستخدمي n8n Cloud

من المرجح أن يكون الجواب نعم أيضا.

بما أن هذا فشل يديره Cloud:

  1. افتح تذكرة دعم عبر لوحة تحكم n8n Cloud.
  2. حاسم: قدم سلسلة الخطأ الدقيقة: The API version "5.4.296" does not match the Worker version "5.3.31".
  3. اذكر أنك حاولت بالفعل التبديل بين الإصدار المستقر والإصدار التجريبي وأن المشكلة لا تزال موجودة. هذا يخبرهم أن الأمر يتعلق بـ عدم تطابق في مستوى البناء وليس خطأ المستخدم، مما عادة ما يسرع من صعود التذكرة إلى فريق الهندسة.

بينما تنتظر استجابة التذكرة، يمكنك استخدام حل بديل وهو استخراج النص خارج ملف pdf.js الخاص بـ n8n بالكامل: HTTP Request → إرسال ملف PDF إلى واجهة برمجة استخراج (PDF.co أو Cloudmersive أو دالة pdf-parse v1 الخاصة بك) → تغذية النص المُرجع إلى Default Data Loader مع تعيين نوع البيانات إلى Text.

نظراً لأنه لا يتم تقديم ملفات PDF داخل n8n، فإن هذا يتجنب عدم توافق إصدارات API/Worker بالكامل.

@sawsew467 مرحباً Thang، يسعدني أن أراك هنا من فيتنام! ^^

لقد واجهت نفس المشكلة. هذا حقاً خلل من جانب n8n، وتم الإبلاغ عنه أيضاً في الحالات ذاتية الاستضافة، وليس فقط في Cloud. في انتظار الإصلاح الرسمي، يمكنك التعامل معها بإضافة عقدتين إضافيتين لتحويل ملف PDF الخاص بك إلى ملف نص عادي قبل إدخاله في أي سير عمل مستند/RAG:

  • Extract PDF تأخذ ملف PDF الثنائي الخاص بك (على سبيل المثال من HTTP Request → binary file) وتستخرج النص الخام إلى حقل text.

  • ثم Convert to File تحول حقل text هذا إلى ملف .txt نظيف يمكنك تمريره بأمان إلى Default Data Loader أو أي عقدة مستند LangChain كإدخال نصي.

بهذه الطريقة، تتجاوز تماماً عدم التطابق بين إصدار worker/API الخاص بـ pdf.js مع الاحتفاظ بكل شيء داخل n8n.

(بالمناسبة، يسعدني التواصل والتبادل معك أكثر يا صديقي)