El nodo Document Loader falla con "DOMMatrix is not defined" al analizar archivos PDF

Hola a todos,

Estoy teniendo un problema con el nodo Document Loader al ingerir archivos PDF en un flujo de trabajo Gemini RAG en n8n autoalojado.

Flujo de trabajo:

Webhook
→ Read/Write Files from Disk
→ Document Loader
→ Vector Store Insert

El archivo PDF se detecta correctamente y se pasa como datos binarios al nodo Document Loader, pero el nodo falla al analizar el PDF.

La ingesta de CSV funciona correctamente. El problema solo ocurre con PDFs.

Error:

DOMMatrix is not defined

Entrada recibida por el nodo Document Loader:

{
  "mimeType": "application/pdf",
  "fileType": "pdf",
  "fileName": "agents.pdf",
  "fileExtension": "pdf",
  "fileSize": "2.03 MB"
}

Configuración de Document Loader:

  • Tipo de datos: Binary

  • Modo: Load All Input Data

  • Formato de datos: Automatically Detect by Mime Type

  • División de texto: Custom

Entorno:

  • Versión de n8n: 2.23.0

  • Base de datos: SQLite

  • Ejecutándose mediante: Docker (Autoalojado)

  • SO: Ubuntu Linux

¿Puedes revertir a 2.21.7, @Rahul_Parmar? 2.23 aún está en beta

@Rahul_Parmar regresión conocida desde n8n 1.98 cuando pdfjs-dist se actualizó a una versión que requiere APIs del navegador como DOMMatrix — hay múltiples issues abiertos en github al respecto (#16593, #16438, #16422). workaround que funciona en 2.23.0 sin hacer downgrade: omite Document Loader para PDFs y usa un nodo Code con el paquete npm pdf-parse en su lugar. establece NODE_FUNCTION_ALLOW_EXTERNAL=pdf-parse en tus variables de entorno, extrae el texto en el nodo Code, pasa el texto extraído directamente a Vector Store Insert. ¿el resto de tu workflow está muy vinculado específicamente a Document Loader, o solo lo usas para la extracción de texto de PDFs?

Anteriormente estaba usando 2.21.7, pero actualicé debido al problema de pdf-parse v1.1 reportado en “Error in Node Default Data Loader”, que parece haber sido solucionado en 2.23.0.

Sin embargo, después de actualizar, ahora estoy obteniendo el error DOMMatrix is not defined específicamente durante la ingesta de PDF en el nodo Document Loader.

Esperaré la versión estable.

referencia:

  1. 2.23 · Releases · n8n-io/n8n · GitHub
  2. Pdf-parse v1.1 Error in Node Default Data Loader - #5 by tamy.santos

buenos días @Rahul_Parmar
por favor comparte tu json.

good morning, @tamy.santos

here is the json file.

@Rahul_Parmar
no encontré ningún fallo en tu código, probablemente sea un problema de compatibilidad del entorno.
cambia el typeversion a 1.0, esto obliga al loader a usar pdf-parse en lugar de pdfjs-dist, eliminando la dependencia de DOM, o agrega un nodo Code como polyfill antes del loader.

Tengo el mismo problema que se reportó arriba (DOMMatrix no está definido). Como sugeriste, he revertido el Data Loader a la versión de tipo 1.0, agregué un Recursive Character Text Splitter al nodo, pero sigo obteniendo el error (DOMMatrix no está definido).

(Tengo n8n autohospedado y estoy usando la versión 2.23.1, ya que como la persona que publicó el problema original, también estaba obteniendo el problema de pdf-parse v1.1 reportado en “Error in Node Default Data Loader”.

hola @atdev150, bienvenido a la comunidad de n8n.
cada caso es un caso, es necesario evaluar tu JSON. por favor abre una pregunta para que la comunidad pueda apoyarte directamente o verifica si mi respuesta anterior también te ayuda.

Disculpa, es mi primer mensaje :sweat_smile: .

Estaré atenta a las respuestas de Rahul, ya que creo que tengo el mismo problema. Si no se resuelve, abriré una nueva pregunta. ¡Muchas gracias Tamy!

Cuenta con nosotros :dizzy:

buenos días, @tamy.santos

hola, @atdev150

solo quería saber en qué versión de n8n probaste esto. Además, ¿usaste el mismo flujo de trabajo Document Ingestion? ¿Pudiste cargar y procesar exitosamente un PDF usando este?

@Rahul_Parmar 2.22.5

Hoy se lanzó una nueva versión en n8n cloud @2.25.1 (beta) pero parece que este problema sigue presente. Aún estoy esperando la solución :slightly_smiling_face:

bienvenido a la comunidad n8n @BotRidwan
es recomendable optar por la versión estable en lugar de la Beta, por cuestiones de estabilidad.

Mientras esperas la corrección oficial, una solución alternativa que funciona en instalaciones autohospedadas es reemplazar el nodo Document Loader por un nodo Code que use pdf-parse en su lugar. Si añades NODE_FUNCTION_ALLOW_EXTERNAL=pdf-parse a tus variables de entorno de n8n e instalas el paquete en el contenedor, puedes analizar el binario PDF directamente sin la dependencia DOMMatrix:

const pdfParse = require('pdf-parse');
const buffer = Buffer.from($binary.data, 'base64');
const result = await pdfParse(buffer);
return [{ json: { text: result.text } }];

No es tan limpio como el nodo nativo, pero desbloquea el pipeline RAG hasta que la corrección llegue a la versión estable.

Buenos días, según mi impresión, el problema con la versión 2.23.4 está definitivamente resuelto. ¡Muchas gracias a todos los que han seguido el asunto con insistencia! Saludos, Thomas

De hecho, el problema aún no se ha resuelto. El error «DOM Matrix is not defined» vuelve a aparecer en la versión 2.25.7. En la versión 2.23.4, el flujo de trabajo funciona sin problemas. También en la versión «no oficial» 2.26.0, el flujo de trabajo funciona sin problemas.