Solución a Error: Credentials could not be decrypted “EncryptionKey”
-
Solución a Error: Credentials could not be decrypted “EncryptionKey”
¿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:
-
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
-
Conflicto con archivo config: El archivo /home/node/.n8n/config tiene una encryption key diferente a la definida en N8N_ENCRYPTION_KEY
-
Actualización o migración: Durante actualizaciones o migraciones a nuevos servidores, la key no se transfirió correctamente
-
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_KEYPrevención
Para evitar este problema en el futuro:
-
Siempre define N8N_ENCRYPTION_KEY en tu configuración de Docker
-
Guarda la key en un gestor de contraseñas o vault seguro
-
Haz backups regulares con n8n export:credentials –all –decrypted
-
Verifica persistencia de tu volumen de Docker /home/node/.n8n
-
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.
-
Sorry, there were no replies found.
La discusión ‘Solución a Error: Credentials could not be decrypted “EncryptionKey”’ está cerrada para nuevas respuestas.
