Error 'DOMMatrix is not defined' al usar Default Data Loader con PDF

Describe el problema/error/pregunta

Al usar el nodo Default Data Loader para cargar un archivo PDF binario, la ejecución falla con el siguiente error:

"errorMessage": "DOMMatrix is not defined",
"errorDescription": "DOMMatrix is not defined"

También se registran los siguientes avisos en el contenedor:

Warning: Cannot load "@napi-rs/canvas" package: "Error: Failed to load native binding".
Warning: Cannot polyfill `DOMMatrix`, rendering may be broken.
Warning: Cannot polyfill `ImageData`, rendering may be broken.
Warning: Cannot polyfill `Path2D`, rendering may be broken.

Pasos para reproducir

  1. Configura un flujo de trabajo con una fuente PDF binaria (por ejemplo, Google Drive, Webhook, nodo de formulario).
  2. Conecta la salida binaria a un nodo Default Data Loader con Type of Data establecido en Binary.
  3. Ejecuta el flujo de trabajo.

Comportamiento esperado

El Default Data Loader debería analizar correctamente el PDF y pasar el contenido aguas abajo.

Comportamiento actual

El nodo falla con DOMMatrix is not defined. El paquete @napi-rs/canvas no puede cargarse, lo que impide que pdfjs-dist polirellene las API nativas del navegador requeridas.

Información sobre mi configuración de n8n

  • Versión de n8n: 2.25.7 (Auto-hospedado)
  • Ejecutando n8n a través de: Docker
  • Modo de datos binarios: sistema de archivos

Contexto adicional

Este problema parece haberse introducido en v1.98.0 cuando se actualizó pdfjs-dist a una versión que depende de API nativas del navegador no disponibles en entornos de servidor Node.js. Ha sido reportado por múltiples usuarios en versiones anteriores y parece persistir en v2.25.7.

¿Cuál es el mensaje de error (si corresponde)?

Por favor, comparte tu flujo de trabajo

Comparte la salida devuelta por el último nodo

Información sobre tu configuración de n8n

  • Versión de n8n:
  • Base de datos (por defecto: SQLite):
  • Configuración de n8n EXECUTIONS_PROCESS (por defecto: own, main):
  • Ejecutando n8n a través de (Docker, npm, n8n cloud, aplicación de escritorio):
  • Sistema operativo:

Creo que ya hemos visto exactamente esto hoy.

Intenta la última versión beta, nos la arregló.

Mientras esperas la prueba beta @menouaw, hay una solución alternativa confiable que ha sido confirmada en los hilos relacionados sobre “DOMMatrix is not defined”: convierte el PDF a texto antes del Default Data Loader usando un nodo Extract from File (operación: “PDF”) anteriormente en la cadena no es suficiente por sí solo ya que encuentra la misma ruta pdfjs-dist/@napi-rs/canvas.

¡Bienvenido @menouaw!

La solución en la última beta es el camino correcto a largo plazo (sugerencia de BramKn). Como solución temporal mientras usas la versión estable: utiliza un nodo HTTP Request para llamar a una API externa de conversión de PDF a texto (como Docparser, Reducto, o cualquier endpoint autohospedado de Tika/Unstructured) en lugar del Default Data Loader. De esta forma, tu texto PDF llegará como JSON plano sin pasar por la ruta pdfjs + @napi-rs/canvas que está causando el bloqueo. Alternativamente, si tu imagen de Docker está compilada en Alpine, los enlaces nativos faltantes generalmente se solucionan cambiando a n8nio/n8n:latest (basado en Debian) en lugar de la variante Alpine.