Solución a Error: Credentials could not be decrypted “EncryptionKey”

  • n8n

    Solución a Error: Credentials could not be decrypted “EncryptionKey”

    Posted by Angel Sánchez on 21 octubre, 2025 en 7:27 pm

    ¿Qué es este problema?

    Este error ocurre cuando n8n intenta desencriptar las credenciales almacenadas en la base de datos, pero la encryption key actual no coincide con la que se usó originalmente para encriptarlas. n8n utiliza la variable de entorno N8N_ENCRYPTION_KEY para encriptar y desencriptar todas las credenciales (API tokens, contraseñas, conexiones a bases de datos) antes de guardarlas.​

    Causas Comunes

    Este error aparece típicamente cuando:​

    1. Docker sin persistencia: Si ejecutas n8n en Docker sin configurar N8N_ENCRYPTION_KEY, cada vez que reinicias el contenedor se genera una nueva key automáticamente

    2. Conflicto con archivo config: El archivo /home/node/.n8n/config tiene una encryption key diferente a la definida en N8N_ENCRYPTION_KEY

    3. Actualización o migración: Durante actualizaciones o migraciones a nuevos servidores, la key no se transfirió correctamente

    4. Mode Queue: En configuraciones con workers, no todas las instancias tienen la misma N8N_ENCRYPTION_KEY

    Error Específico: “Mismatching encryption keys”

    Si ves este mensaje exacto en los logs:

    Error: Mismatching encryption keys. The encryption key in the settings file /home/node/.n8n/config does not match the N8N_ENCRYPTION_KEY env var

    Significa que existe un conflicto entre dos keys: una en el archivo de configuración y otra en la variable de entorno.​

    Solución Completa
    Método 1: Exportar e Importar Credenciales (Si tienes acceso)

    Paso 1: Exporta las credenciales desencriptadas antes de hacer cambios:​

    Ejecuta:

    docker exec -it nombre_contenedor_n8n sh

    Luego:

    n8n export:credentials --all --decrypted --output=/home/node/.n8n/credentials-backup.json

    Y sal con:

    exit

    Paso 2: Copia el backup fuera del contenedor:

    docker cp nombre_contenedor_n8n:/home/node/.n8n/credentials-backup.json ./credentials-backup.json

    Paso 3: Detén n8n:

    docker compose down

    Paso 4: Genera una nueva encryption key:

    openssl rand -hex 32

    O con Node.js:

    node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"

    Paso 5: Configura la key permanentemente en tu .env o docker-compose.yml:​

    Añade esta línea:

     N8N_ENCRYPTION_KEY=tu_clave_generada_de_32_bytes

    Paso 6: Inicia n8n:

    docker compose up -d

    Paso 7: Importa las credenciales:

    Primero:

    docker cp ./credentials-backup.json nombre_contenedor_n8n:/home/node/.n8n/credentials-backup.json

    Luego:

    docker exec -it nombre_contenedor_n8n sh

    Después:

    n8n import:credentials --input=/home/node/.n8n/credentials-backup.json

    Y sal:

    exit

    Método 2: Resolver el Conflicto “Mismatching encryption keys”

    Si el error menciona que las keys no coinciden:​

    Paso 1: Detén los contenedores:

    docker compose down

    Paso 2: Identifica tu volumen:

    docker volume ls | grep n8n

    Paso 3: Elimina el archivo config conflictivo:

    Si tu volumen se llama n8n_data: docker run –rm -v n8n_data:/data alpine rm /data/config

    Paso 4: Asegúrate de tener N8N_ENCRYPTION_KEY configurado en tu .env:

    N8N_ENCRYPTION_KEY=tu_clave_de_32_bytes

    Paso 5: Reinicia n8n:

    docker compose up -d

    n8n creará un nuevo archivo config usando la key de la variable de entorno.​

    Método 3: Configuración para Queue Mode (Workers)

    Si usas workers, todos deben tener la misma N8N_ENCRYPTION_KEY:​

    En tu docker-compose.yml configura:

    Para el servicio n8n añade en environment:

    N8N_ENCRYPTION_KEY=tu_clave_de_32_bytes 
    Para el servicio n8n-worker con command: worker añade en environment: N8N_ENCRYPTION_KEY=tu_clave_de_32_bytes (la misma key) 

    Verifica que ambos tengan la misma:

    docker exec nombre_contenedor_n8n printenv N8N_ENCRYPTION_KEY
    docker exec nombre_contenedor_worker printenv N8N_ENCRYPTION_KEY

    Prevención

    Para evitar este problema en el futuro:​

    1. Siempre define N8N_ENCRYPTION_KEY en tu configuración de Docker

    2. Guarda la key en un gestor de contraseñas o vault seguro

    3. Haz backups regulares con n8n export:credentials –all –decrypted

    4. Verifica persistencia de tu volumen de Docker /home/node/.n8n

    5. Documenta la ubicación de la encryption key en tu runbook

    ⚠️ ADVERTENCIA IMPORTANTE

    Si eliminas el archivo config o cambias la N8N_ENCRYPTION_KEY sin exportar las credenciales primero, PERDERÁS TODAS LAS CREDENCIALES EXISTENTES.​

    Las credenciales están encriptadas en la base de datos con la key anterior. Una vez que cambies la key, n8n no podrá desencriptarlas y necesitarás:

    • Recrear manualmente todas las credenciales en la UI

    • Reconfigurar todos los nodos que las usan

    • Actualizar todos los workflows afectados

    Siempre exporta las credenciales con n8n export:credentials –all –decrypted ANTES de realizar cualquier cambio en la encryption key.

    • Esta discusión fue modificada 3 dias, 9 horas por  Angel Sánchez.
    Angel Sánchez respondido 3 dias, 9 horas 1 Miembro · 0 Respuestas
  • 0 Respuestas

Sorry, there were no replies found.

La discusión ‘Solución a Error: Credentials could not be decrypted “EncryptionKey”’ está cerrada para nuevas respuestas.

Start of Discussion
0 de 0 respuestas Junio 2018
Ahora