وصف المشكلة/الخطأ/السؤال
مرحبا بالجميع،
أواجه مشكلة مستمرة مع عقدة Read/Write Files from Disk (v1.1) عند محاولة تنفيذ عملية “Write File to Disk”. فهي تطرح باستمرار خطأ بأن الملف غير قابل للكتابة، بغض النظر عن المجلد أو أذونات المستخدم أو وضع التنفيذ.
بيئتي:
- إصدار n8n: 2.26.4 (Self Hosted)
- وضع التنفيذ: تم الاختبار على كل من Windows الأصلي (إعداد Node.js) و Docker Desktop (WSL2 backend).
- وضع قاعدة البيانات: تم الاختبار مع كل من binaryDataMode: filesystem و binaryDataMode: database.
ما حاولت حتى الآن:
- Windows الأصلي: استهدفت المجلدات المحلية (C:\n8n\poema.json) ومسارات مؤقتة. حصلت على خطأ “غير قابل للكتابة”.
- Docker (مستخدم عادي): حجم مثبت -v c:/n8n:/data واستهدفت /data/poema.json. فشل.
- Docker Isolated Path: حاولت الكتابة مباشرة إلى مسارات محلية في حاوية Docker مثل /tmp/poema.json و /home/node/poema.json. فشل برسالة الخطأ نفسها.
- إنشاء الملف مسبقاً: قمت بإنشاء ملف poema.json فارغ يدويًا (0 كيلوبايت) داخل المجلد الوجهة للتحقق مما إذا كانت مشكلة إنشاء مقابل تحديث. لا يزال يطرح “غير قابل للكتابة”.
- مستخدم جذر Docker: أعدت إنشاء الحاوية مع فرض مستخدم جذر (-u root) للالتفاف حول أي تضاربات محتملة بين المضيف والحاوية على الحجم المثبت. السلوك يستمر.
مكدس تتبع الأخطاء:
{
"errorMessage": "The file \"/data/poema.json\" is not writable.",
"errorDetails": {
"rawErrorMessage": [
"The file \"/data/poema.json\" is not writable."
]
},
"n8nDetails": {
"nodeName": "Read/Write Files from Disk",
"nodeType": "n8n-nodes-base.readWriteFile",
"nodeVersion": 1.1,
"operation": "write",
"itemIndex": 0,
"n8nVersion": "2.26.4 (Self Hosted)",
"stackTrace": [
"NodeApiError: The file \"/data/poema.json\" is not writable.",
" at ExecuteContext.execute (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-nodes-base@file+packages+nodes-base_@aws-sdk+credential-providers@3.808.0_asn1.js@5_8da18263ca0574b0db58d4fefd8173ce/node_modules/n8n-nodes-base/nodes/Files/ReadWriteFile/actions/write.operation.ts:130:10)"
]
}
}
بما أن هذا يحدث حتى بداخل /tmp/ في حاوية تعمل بصلاحيات جذر، يبدو أنه تنبيه خاطئ في منطق التحقق الداخلي للعقدة (تحديداً حول write.operation.ts:130).
هل هذا انحدار معروف في v2.26.x أم هناك أي متغير بيئة محدد يجب أن أعدّله لإصلاح فحص التحقق هذا؟
شكراً لك مقدماً على مساعدتك!
## ما هي رسالة الخطأ (إن وجدت)؟
{
"errorMessage": "The file "/data/poema.json" is not writable.",
"errorDetails": {
"rawErrorMessage": [
"The file "/data/poema.json" is not writable."
]
},
"n8nDetails": {
"nodeName": "Read/Write Files from Disk",
"nodeType": "n8n-nodes-base.readWriteFile",
"nodeVersion": 1.1,
"operation": "write",
"itemIndex": 0,
"n8nVersion": "2.26.4 (Self Hosted)",
"stackTrace": [
"NodeApiError: The file "/data/poema.json" is not writable.",
" at ExecuteContext.execute (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-nodes-base@file+packages+nodes-base\_@aws-sdk+credential-providers@3.808.0_asn1.js@5_8da18263ca0574b0db58d4fefd8173ce/node_modules/n8n-nodes-base/nodes/Files/ReadWriteFile/actions/write.operation.ts:130:10)"
]
}
}
## يرجى مشاركة سير العمل الخاص بك
سير العمل عبارة عن هيكل بسيط من 3 عقد:
HTTP Request ➡️ Convert to File ➡️ Read/Write Files from Disk (Write operation).
تُخرج عقدة Convert to File بيانات ثنائية بنجاح (تقريباً 27.5 كيلوبايت)، لكن التنفيذ يتوقف تماماً عند عقدة Read/Write Files from Disk.
## مشاركة المخرجات التي أرجعتها العقدة الأخيرة
أواجه مشكلة مستمرة مع عقدة Read/Write Files from Disk (v1.1) عند محاولة تنفيذ عملية "Write File to Disk". فهي تطرح باستمرار خطأ "غير قابل للكتابة"، بغض النظر عن المجلد أو أذونات المستخدم أو وضع التنفيذ.
ما حاولت حتى الآن لعزل المشكلة:
1. Windows الأصلي: استهدفت المجلدات المحلية (C:\n8n\poema.json) ومسارات مؤقتة. حصلت على الخطأ.
2. Docker (مستخدم عادي): حجم مثبت -v c:/n8n:/data واستهدفت /data/poema.json. فشل.
3. Docker Isolated Path: حاولت الكتابة مباشرة إلى مسارات محلية في حاوية Docker مثل /tmp/poema.json و /home/node/poema.json. فشل برسالة الخطأ نفسها.
4. إنشاء الملف مسبقاً: قمت بإنشاء ملف poema.json فارغ يدويًا (0 كيلوبايت) داخل المجلد الوجهة للتحقق مما إذا كانت مشكلة إنشاء مقابل تحديث. لا يزال يطرح "غير قابل للكتابة".
5. مستخدم جذر Docker: أعدت إنشاء الحاوية مع فرض مستخدم جذر (-u root) للالتفاف حول أي تضاربات محتملة بين المضيف والحاوية على الحجم المثبت. السلوك يستمر.
بما أن هذا يحدث حتى بداخل /tmp/ في حاوية تعمل بصلاحيات جذر، يبدو أنه تنبيه خاطئ في منطق التحقق الداخلي للعقدة (تحديداً حول write.operation.ts:130).
## معلومات حول إعداد n8n الخاص بك
* **إصدار n8n:**
* **قاعدة البيانات (الافتراضي: SQLite):**
* **إعداد n8n EXECUTIONS_PROCESS (الافتراضي: own, main):**
* **تشغيل n8n عبر (Docker, npm, n8n cloud, desktop app):**
* **نظام التشغيل:**
* إصدار n8n: 2.26.4 (Self Hosted)
* قاعدة البيانات: SQLite (الافتراضي)
* وضع التنفيذ: عادي (وتم الاختبار عبر Docker / WSL2 backend)
* وضع البيانات الثنائية: database (تم الاختبار أيضاً مع filesystem)