فشل تفعيل الترخيص على n8n ذاتي الاستضافة

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

أواجه مشكلة في تفعيل ترخيص Registered Community على مثيل ذاتي الاستضافة. عند محاولة التفعيل عبر واجهة الويب أو باستخدام متغير البيئة، يفشل التفعيل مع خطأ التحقق من صحة بصمة الجهاز.

ومع ذلك، فإن تشغيل أداة CLI داخل الحاوية يظهر أنه يتم إنشاء بصمة صحيحة. يبدو أن هناك تناقضًا حيث أن عملية الويب في الخلفية/SDK تمرر سلسلة بصمة فارغة أو مختصرة إلى خوادم الترخيص الخاصة بك.

عند الوصول لأول مرة إلى محطة الحاوية وتشغيل n8n license:info يدويًا، يتم إنشاء بصمة صحيحة كاملة بـ 64 حرفًا بنجاح وتكون مرئية:

\~ $ n8n license:info
Puppeteer node: Container detected via .dockerenv file
\[license SDK\] Skipping renewal on init: license cert is not initialized
## CONSUMER CONFIG ##
tenantId: 1
productIdentifier: n8n-2.26.7
deviceFingerprint: a11f905a58a7525ef325c7a4a4fc27d1bde9a2ef695a19d4264672a3bbc62997
autoRenewalEnabled: true
autoRenewalOffset: 259200 (= 72h 0m 0s)
--
## LICENSE CERT ##
version: <n/a>
tenantId: <n/a> (!)
consumerId: <n/a>
deviceFingerprint: <n/a> (!)
createdAt: <n/a>
issuedAt: <n/a>
expiresAt: <n/a>
terminatesAt: <n/a>
isEphemeral: <n/a>
isValid: false (!)
isRenewalDue: false
detachedEntitlementsCount: <n/a>
entitlements: 0

السجل

  1. لم أتمكن من جعل Debug في Editor يعمل - قالت إنني بحاجة إلى التسجيل. كان يجب أن أكون قد قمت به بالفعل. لقد فعلت ذلك في الماضي - لا أعرف لماذا تغير هذا.

  2. رأيت هذا في السجلات الخاصة بي:
    [license SDK] cert is invalid because it has expired: (autorenewalsEnabled: true, expiredAt: Sat May 09 2026 15:29:44 GMT-0400 (Eastern Daylight Time), issuedAt: Wed Apr 29 2026 15:29:44 GMT-0400 (Eastern Daylight Time))

  3. لدي TZ=America/New_York و32 بت N8N_ENCRYPTION_KEY لم يتغير. مفتاح التشفير موجود في متغيرات البيئة والملف الإعدادات .n8n/config

  4. قمت بتشغيل هذا ورأيت:

\~ $ n8n license:info
Puppeteer node: Container detected via .dockerenv file
[license SDK] attempting license renewal
[license SDK] license successfully renewed
## CONSUMER CONFIG ##
tenantId: 1
productIdentifier: n8n-2.26.7
deviceFingerprint: a11f905a58a7525ef325c7a4a4fc27d1bde9a2ef695a19d4264672a3bbc62997
autoRenewalEnabled: true
autoRenewalOffset: 259200 (= 72h 0m 0s)
--
## LICENSE CERT ##
version: 2
tenantId: 1
consumerId: 84ac80cc-574f-4841-b0f3-2df3c875080f
deviceFingerprint: a11f905a58a7525ef325c7a4a4fc27d1bde9a2ef695a19d4264672a3bbc62997
createdAt: Fri May 09 2025 18:15:12 GMT-0400 (Eastern Daylight Time)
issuedAt: Thu Jun 18 2026 15:51:04 GMT-0400 (Eastern Daylight Time)
expiresAt: Sun Jun 28 2026 15:51:04 GMT-0400 (Eastern Daylight Time)
terminatesAt: Tue May 03 2050 18:15:12 GMT-0400 (Eastern Daylight Time)
isEphemeral: false
isValid: true
isRenewalDue: false
detachedEntitlementsCount: 0
entitlements: 1
--

## ENTITLEMENT 1 ##
id: 7a862864-5aab-4dac-a6fe-e1ea891a6459
productId: 031ebde1-0ebe-47b8-802a-29c084a2a4c3
validFrom: Fri May 09 2025 18:15:12 GMT-0400 (Eastern Daylight Time)
validTo: Sat May 05 2040 18:15:12 GMT-0400 (Eastern Daylight Time)
features: {"planName":"Registered Community","feat:folders":true,"feat:debugInEditor":true,"feat:workflowHistory":true,"feat:insights:viewSummary":true,"feat:workflowHistoryPrune":true,"quota:workflowHistoryPrune":24,"feat:advancedExecutionFilters":true,"quota:evaluations:maxWorkflows":1,"quota:insights:retention:maxAgeDays":180,"quota:insights:retention:pruneIntervalDays":24}
featureOverrides: {}
  1. عندما أحاول النقر فوق الزر في بريد التفعيل أو لصقه، أحصل على نفس الشيء:
UI:
Activation key is in the wrong format

log:
[license SDK] license activation failed: request/body/deviceFingerprint must NOT have fewer than 32 characters
  1. قمت بـ n8n license:clear ثم أعدت التشغيل. الآن أحصل على هذا في السجل:
    [license SDK] Skipping renewal on init: license cert is not initialized

وهذا ما أحصل عليه في الـ shell

\~ $ n8n license:info
Puppeteer node: Container detected via .dockerenv file
\[license SDK\] Skipping renewal on init: license cert is not initialized
## CONSUMER CONFIG ##
tenantId: 1
productIdentifier: n8n-2.26.7
deviceFingerprint: a11f905a58a7525ef325c7a4a4fc27d1bde9a2ef695a19d4264672a3bbc62997
autoRenewalEnabled: true
autoRenewalOffset: 259200 (= 72h 0m 0s)
--
## LICENSE CERT ##
version: <n/a>
tenantId: <n/a> (!)
consumerId: <n/a>
deviceFingerprint: <n/a> (!)
createdAt: <n/a>
issuedAt: <n/a>
expiresAt: <n/a>
terminatesAt: <n/a>
isEphemeral: <n/a>
isValid: false (!)
isRenewalDue: false
detachedEntitlementsCount: <n/a>
entitlements: 0
  1. حاولت استخدام عنوان IP على الشبكة المحلية بدلاً من عنوان URL الخاص بـ Cloudflare - http://192.168.200.12:5678/settings/usage?key=03329154-96a6-4bac-89f0-xxxxxxxxxxxx . يعطيني نفس الأخطاء

  2. كان هذا يعمل بشكل جيد على صورة Docker هذه (الإصدارات السابقة قبل عدة أشهر).

  3. حاولت أيضًا تمرير المفتاح مباشرة إلى الحاوية عبر N8N_LICENSE_ACTIVATION_KEY، مما أسفر عن نفس فشل السجل.

لقد استخدمت 3 ذكاء اصطناعي مختلف للمساعدة في إصلاح هذا وقد نفدنا من الأفكار :slight_smile:

ماذا يمكنني أن أفعل؟

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

عند محاولة التفعيل عبر واجهة المستخدم أو استخدام N8N_LICENSE_ACTIVATION_KEY، تُظهر سجلات الحاوية:
[license SDK] Skipping renewal on init: license cert is not initialized
[license SDK] license activation failed: request/body/deviceFingerprint must NOT have fewer than 32 characters
Could not activate license

معلومات إعداد n8n الخاص بك

  • إصدار n8n: 2.26.7 (يحدث أيضًا مع الإصدارات السابقة)
  • قاعدة البيانات (الافتراضية: SQLite): Postgres
  • إعداد n8n EXECUTIONS_PROCESS (الافتراضي: own, main):
  • تشغيل n8n عبر (Docker, npm, n8n cloud, desktop app): synology docker
  • نظام التشغيل: synology

@jmaver تشغيلك للـ CLI قد جدّده بالفعل، عرض license:info الثاني يظهر isValid true الآن (ينتهي في 28 يونيو). حالة الترخيص مخزّنة في قاعدة البيانات، لذا الشهادة مصححة هناك لكن العملية التي تعمل لديك تحتفظ بالشهادة المنتهية الصلاحية التي تم تخزينها مؤقتاً عند البدء. أعد تشغيل حاوية n8n، فهي تعيد تحميل الشهادة الصحيحة من قاعدة البيانات ويعود الـ registered و Debug في Editor. انتهت الصلاحية لأن رخصة المجتمع يجب أن تصل إلى license.n8n.io/v1 للتجديد تقريباً كل 10 أيام، لذا تأكد من أن الاتصالات الخارجة لا تكون مسدودة بواسطة proxy أو firewall.

للأسف، الأمر ليس كذلك.

لقد أعدت التشغيل عدة مرات. كل إقلاع مع متغير التفعيل يظهر نفس الخطأ، محاولة إضافة رمز الترخيص يدويًا لا تزال تفشل، ولا يزال بإمكاني تصحيح الأخطاء في المحرر.

@jmaver نعم، هذا هو عدم التطابق بين بصمة الجهاز، الشهادة الخاصة بك مرتبطة ببصمة واحدة لكن النسخة تقدم بصمة مختلفة في كل إقلاع لذا تظل ترفضها بغض النظر عن عدد مرات إعادة التشغيل، وهذا أيضًا السبب في عدم الاحتفاظ بـ license.cert. قم أولاً بإسقاط متغير البيئة N8N_LICENSE_ACTIVATION_KEY، تركه يعني أن كل إقلاع يعيد تشغيل التفعيل ويعيد ضربة عدم التطابق بدلاً من مجرد تحميل ما هو في قاعدة البيانات. لكن بما أن الربط نفسه معطل، فإن الحل الحقيقي هو إرسال بريد إلى help@n8n.io لإعادة تعيين المفتاح، يتم استهلاك مفتاح المجتمع مقابل البصمة القديمة ولا يمكن إطلاقه إلا من خلالهم حتى يعاد ربطه بنسختك الحالية.

مرحبا @jmaver

عندما تقوم بتشغيل n8n license:info في shell، فأنت على الأرجح تقوم بتشغيله كمستخدم (غالباً root أو مستخدم node الافتراضي) لديه وصول كامل إلى معرّفات النظام المستخدمة لإنشاء البصمة. ومع ذلك، فإن عملية n8n الرئيسية—التي تتعامل مع Web UI وN8N_LICENSE_ACTIVATION_KEY—تفشل في حل نفس البصمة، وترسل سلسلة نصية فارغة أو قيمة null إلى خادم الترخيص، مما يؤدي إلى تشغيل خطأ التحقق “أقل من 32 حرفاً”.

حاول أن تقوم بربط ملف machine-id بشكل صريح في الحاوية للتأكد من أنه متسق وقابل للقراءة.

  1. أنشئ ملفاً على مضيف Synology الخاص بك (على سبيل المثال، في مجلد إعدادات n8n الخاص بك) باسم machine-id يحتوي على سلسلة نصية عشوائية بطول 32 حرفاً سادس عشري بداخله.
  2. أضف تعيين volume في إعدادات Docker/Container Manager:
    • File/Folder: /volume1/docker/n8n/machine-id (اضبطها حسب مسارك) →Mount path: /etc/machine-id
  3. أعد تشغيل الحاوية.

هل هذا يساعد؟

لا، هذا لم يبدو أنه أحدث أي فرق. أراها في /etc في الحاوية، لكن لا شيء عنها في السجلات وفشل التفعيل نفسه

قم بتشغيل الأمر التالي في shell الحاوية

ls -l /etc/machine-id /var/lib/dbus/machine-id

ماذا يظهر؟

/etc $ ls -al /etc/machine-id
-rwxr-xr-x 1 1024 100 32 Jun 22 11:57 /etc/machine-id
/etc $ ls -l /etc/machine-id /var/lib/dbus/machine-id
ls: /var/lib/dbus/machine-id: No such file or directory

تحقق من N8N_ENCRYPTION_KEY. هل يبلغ طوله 32 حرفاً بالضبط؟

قم بتشغيل هذا الأمر في محطة الحاويات الخاصة بك

ps aux | grep n8n

ماذا يظهر؟

/etc $ echo “${#N8N_ENCRYPTION_KEY}”
32

/etc $ ps aux | grep n8n
6 node 0:40 {MainThread} node /usr/local/bin/n8n start

التفصيل الرئيسي هنا هو أن توليد بصمة n8n يتحقق من كل من /etc/machine-id و /var/lib/dbus/machine-id - بما أن المسار الثاني مفقود في حاويتك، قد لا يتم حل المعرّف بشكل صحيح حتى مع تعيين الأول.

أضف تثبيت volume ثاني إلى docker-compose:

- /var/lib/dbus/machine-id:/var/lib/dbus/machine-id:ro

إذا كنت لا تملك هذا الملف على المضيف، أنشئه أولاً: cat /etc/machine-id | sudo tee /var/lib/dbus/machine-id. ثم أعد تشغيل الحاوية وحاول تفعيل الترخيص مرة أخرى.

@jmaver مسار machine-id هو طريق مسدود، سطر الأوامر لديك بالفعل ينشئ بصمة كاملة بـ 64 حرفًا من /etc/machine-id لذا القرار يعمل بشكل جيد، هذا ليس هو المشكلة. البصمة الفارغة تظهر فقط في طلب التفعيل، هذا هو الخلل الحقيقي، التفعيل لا يرسل البصمة التي تحسبها نسختك بوضوح. وطلب license:info السابق لديك جدّد شهادة صالحة (isValid: true)، لذا التجديد يعمل والتفعيل فقط هو المعطل، مما يعني أن license:clear كان الخطوة الخاطئة، لقد مسحت تلك الشهادة الجيدة وألقت بك على مسار التفعيل المعطل. إعادة محاولة التفعيل أو مفتاح env لن تساعد الآن. أسهل استعادة هي استعادة صف license.cert في جدول الإعدادات من لقطة قاعدة بيانات مأخوذة قبل المسح. بدون لقطة، إذن هذا خلل تفعيل نظيف وقابل للتكرار، أرسل ناتج license:info هذا إلى help@n8n.io حتى يعيدوا الزراعة ضد بصمتك.

~ $ ls -l /etc/machine-id /var/lib/dbus/machine-id
-rwxr-xr-x 1 1024 100 32 Jun 22 11:57 /etc/machine-id
-rwxr-xr-x 1 1024 100 32 Jun 22 11:57 /var/lib/dbus/machine-id

نفس النتائج. إليك نسخة التصحيح من السجل، لا يبدو أنها تضيف أي شيء:


- 2026-06-22T19:29:18.132Z | debug | [license SDK] initializing for deviceFingerprint n8n-j {"scopes":["license"],"file":"LicenseManager.js","function":"log"}

- 2026-06-22T19:29:18.137Z | info | [license SDK] Skipping renewal on init: license cert is not initialized {"scopes":["license"],"file":"LicenseManager.js","function":"log"}

- 2026-06-22T19:29:18.138Z | debug | License initialized {"scopes":["license"],"file":"license.js","function":"init"}

- 2026-06-22T19:29:18.141Z | debug | Attempting license activation {"file":"base-command.js","function":"initLicense"}

- 2026-06-22T19:29:18.335Z | warn | [license SDK] license activation failed: request/body/deviceFingerprint must NOT have fewer than 32 characters {"scopes":["license"],"file":"LicenseManager.js","function":"log"}

- 2026-06-22T19:29:18.574Z | error | Could not activate license {"error":{"name":"Error","message":"license activation failed: request/body/deviceFingerprint must NOT have fewer than 32 characters","stack":"Error: license activation failed: request/body/deviceFingerprint must NOT have fewer than 32 characters\n at v.activate (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/@n8n_io+license-sdk@2.25.0/node_modules/@n8n_io/license-sdk/src/LicenseManager.ts:461:17)\n at processTicksAndRejections (node:internal/process/task_queues:104:5)\n at License.activate (/usr/local/lib/node_modules/n8n/src/license.ts:208:3)\n at Start.initLicense (/usr/local/lib/node_modules/n8n/src/commands/base-command.ts:318:5)\n at Start.init (/usr/local/lib/node_modules/n8n/src/commands/start.ts:239:3)\n at CommandRegistry.execute (/usr/local/lib/node_modules/n8n/src/command-registry.ts:82:4)\n at /usr/local/lib/node_modules/n8n/bin/n8n:63:2"},"file":"base-command.js","function":"initLicense"}

@jmaver حسنًا، الملفان موجودان الآن وتستمر المشكلة، لذا تم استبعاد معرّف الجهاز بالكامل. لكن انظر إلى هذا السطر من التصحيح، الخادم يتم تهيئته باستخدام deviceFingerprint “n8n-j…” وهي قيمة قصيرة، وهذه هي قيمة أقل من 32 حرفًا التي يتم رفضها، وليست hash بـ 64 حرفًا الذي ينشئه CLI الخاص بك. وبالتالي فإن العملية قيد التشغيل يتم تمريرها بصمة مقطوعة من مكان ما بدلاً من حسابها. ما اسم مضيف الحاوية، وهل هناك أي إدخالات متبقية متعلقة بـ N8N_LICENSE_* أو بصمة الإصبع في compose/config الخاص بك من المحاولات السابقة؟ هذا الاختصار n8n-j يأتي بالتأكيد من أحد تلك الإدخالات.

شغّل هذا في الطرفية الخاصة بك

su - node -c "n8n license:info"

ماذا يعرض؟

sudo docker exec -it n8n n8n license:info

## CONSUMER CONFIG ##
tenantId: 1
productIdentifier: n8n-2.26.7
deviceFingerprint: a11f905a58a7525ef325c7a4a4fc27d1bde9a2ef695a19d4264672a3bbc62997
autoRenewalEnabled: true
autoRenewalOffset: 259200 (= 72h 0m 0s)
--
## LICENSE CERT ##
version: <n/a>
tenantId: <n/a> (!)
consumerId: <n/a>
deviceFingerprint: <n/a> (!)
createdAt: <n/a>
issuedAt: <n/a>
expiresAt: <n/a>
terminatesAt: <n/a>
isEphemeral: <n/a>
isValid: false (!)
isRenewalDue: false
detachedEntitlementsCount: <n/a>
entitlements: 0

هذا هو compose الخاص بي:

name: n8n
services:
n8n:
image: n8n-with-puppeteer:${N8N_VERSION}
build:
context: git@gitea:jmaver/docker-stacks.git#main
dockerfile: stacks/n8n/setup/n8n-with-puppeteer-dockerfile
args:
N8N_VERSION: "${N8N_VERSION}"

container_name: n8n

volumes:
- /volume1/docker/n8n/data:/home/node/.n8n
- /volume1/docker/n8n/machine-id:/etc/machine-id
- /volume1/docker/n8n/machine-id:/var/lib/dbus/machine-id:ro

environment:
# عناوين URL عامة / التكوين الأساسي
DOMAIN_NAME: [xxxx.com](http://xxxx.com)
SUBDOMAIN: n8n-j
N8N_HOST: [n8n-j.xxxx.com](http://n8n-j.xxxx.com)
N8N_PORT: 5678
N8N_PROTOCOL: http
N8N_EDITOR_BASE_URL: [https://n8n-j.xxxx.com/](https://n8n-j.xxxx.com/)
WEBHOOK_URL: [https://n8n-j.xxxx.com/](https://n8n-j.xxxx.com/)
GENERIC_TIMEZONE: America/New_York
TZ: America/New_York
PGID: 100
PUID: 1030

# السلوك الأساسي
N8N_INSTANCE_ID: n8n-j
N8N_LOG_LEVEL: debug
N8N_PROXY_HOPS: 1
N8N_SECURE_COOKIE: false
N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS: true
N8N_ENCRYPTION_KEY: ${N8N_ENCRYPTION_KEY:?set in env}
N8N_LICENSE_ACTIVATION_KEY: ${N8N_LICENSE_ACTIVATION_KEY:?set in env}
N8N_LICENSE_AUTO_RENEW_ENABLED: true
N8N_PAYLOAD_SIZE_MAX: 64

# إصلاح الحزم المفقودة
N8N_REINSTALL_MISSING_PACKAGES: "true"

# السماح لعقد البرمجة بالوصول إلى متغيرات البيئة (حسب تفضيلك)
N8N_BLOCK_ENV_ACCESS_IN_NODE: "false"

# وضع الطابور معطل
EXECUTIONS_MODE: regular
N8N_CONCURRENCY_PRODUCTION_LIMIT: 5

# مشغلو المهام الخارجية (الوسيط يقع هنا)
N8N_RUNNERS_MODE: external
N8N_RUNNERS_BROKER_LISTEN_ADDRESS: 0.0.0.0
N8N_RUNNERS_AUTH_TOKEN: ${N8N_RUNNERS_AUTH_TOKEN:?set in env}
N8N_RUNNERS_TASK_REQUEST_TIMEOUT: 300
N8N_NATIVE_PYTHON_RUNNER: "false"
N8N_NATIVE_JAVASCRIPT_RUNNER: "false"

# علم القياس / التشخيصات
N8N_DIAGNOSTICS_ENABLED: "false"
N8N_DIAGNOSTICS_ENABLE_HEALTHCHECK: "false"
N8N_VERSION_NOTIFICATIONS_ENABLED: "false"
N8N_TEMPLATES_ENABLED: "false"
EXTERNAL_FRONTEND_HOOKS_URLS: ""
N8N_DIAGNOSTICS_CONFIG_FRONTEND: ""
N8N_DIAGNOSTICS_CONFIG_BACKEND: ""
N8N_ONBOARDING_FLOW_DISABLED: "true"

# قاعدة البيانات
DB_TYPE: postgresdb
DB_POSTGRESDB_HOST: xxxx
DB_POSTGRESDB_PORT: 5432
DB_POSTGRESDB_DATABASE: ${POSTGRES_DB:?set in env}
DB_POSTGRESDB_USER: ${POSTGRES_USER:?set in env}
DB_POSTGRESDB_PASSWORD: ${POSTGRES_PASSWORD:?set in env}

# Puppeteer / Chromium
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD: "true"
PUPPETEER_EXECUTABLE_PATH: /usr/bin/chromium

ports:
- '5678:5678'
networks:
- infra

command: [ "start" ]

restart: unless-stopped

healthcheck:
test: [ "CMD-SHELL", "wget -q --spider [http://127.0.0.1:5678/healthz](http://127.0.0.1:5678/healthz) || exit 1" ]
interval: 60s
timeout: 5s
retries: 5
start_period: 60s

cap_add:
- SYS_ADMIN

cpu_shares: 1800
mem_limit: 4g
shm_size: 3gb

security_opt:
- seccomp:unconfined

تصحيح لردي السابق، كان لدي الآلية خاطئة لذا تجاهل جزء اسم المضيف. بصمة ترخيص n8n هي instanceId (من المصدر، deviceFingerprint: () => instanceId)، وليس اسم المضيف. واجهة سطر الأوامر لديك تعرض instanceId صحيح بـ 64 حرفًا (a11f905a…)، لكن طلب التفعيل يتم رفضه لأنه يرسل واحدًا أقل من 32 حرفًا، لذلك مسار التفعيل لا يختار instanceId صحيحًا على الرغم من وجود واحد بوضوح.

ليس لدي سبب جذري موثق لسبب ظهوره قصيرًا فقط في تدفق التفعيل. لكن بما أن license:info السابق لديك قد جدد شهادة صحيحة بالفعل، فإن المسار الأكثر موثوقية هو استعادة صف license.cert من لقطة قاعدة بيانات مأخوذة قبل تشغيل license:clear، أو طلب دعم n8n لإعادة بذره، بدلاً من المزيد من تغييرات معرّف الجهاز أو اسم المضيف.

حسناً، شكراً - سأرسل لهم بريداً إلكترونياً

مرحبًا @jmaver، لقد وجدت المشكلة في compose الخاص بك، أنت تملك:

N8N_INSTANCE_ID: n8n-j

هذا يحتوي على 5 أحرف فقط. SDK الترخيص في n8n يشتق deviceFingerprint مباشرة من معرّف المثيل (instance ID)، وخادم الترخيص يتطلب حد أدنى من 32 حرفًا. لذلك n8n-j هو ما يتم إرساله كـ fingerprint، وهذا بالضبط السبب في حصولك على خطأ “must NOT have fewer than 32 characters”.

الحل: إما أن تزيل N8N_INSTANCE_ID بالكامل (سيقوم n8n بإنشاء UUID صحيح تلقائيًا)، أو استبدله بـ UUID صحيح:

N8N_INSTANCE_ID: n8n-j-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

بعد تغييره، أزل N8N_LICENSE_ACTIVATION_KEY مؤقتًا، وأعد التشغيل، وشغّل n8n license:info للتأكد من أن الـ fingerprint الجديد يحتوي على 64 حرفًا، ثم أعد إضافة مفتاح التفعيل وأعد التشغيل مرة واحدة أخرى.

هذا يجب أن يحل المشكلة دون الحاجة للتواصل مع فريق الدعم.