Nó Document Loader falha com "DOMMatrix is not defined" ao analisar arquivos PDF

Olá a todos,

Estou enfrentando um problema com o nó Document Loader ao ingerir arquivos PDF em um fluxo de trabalho Gemini RAG no n8n auto-hospedado.

Fluxo de trabalho:

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

O arquivo PDF é detectado com sucesso e passado como dados binários para o nó Document Loader, mas o nó falha ao analisar o PDF.

A ingestão de CSV funciona corretamente. O problema ocorre apenas com PDFs.

Erro:

DOMMatrix is not defined

Entrada recebida pelo nó Document Loader:

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

Configuração do Document Loader:

  • Tipo de Dados: Binário

  • Modo: Carregar Todos os Dados de Entrada

  • Formato de Dados: Detectar Automaticamente por Tipo MIME

  • Divisão de Texto: Personalizado

Ambiente:

  • Versão do n8n: 2.23.0

  • Banco de dados: SQLite

  • Executando via: Docker (Auto-hospedado)

  • SO: Ubuntu Linux

Você consegue reverter para a versão 2.21.7, @Rahul_Parmar? A 2.23 ainda está em beta

@Rahul_Parmar regressão conhecida desde n8n 1.98 quando pdfjs-dist foi atualizado para uma versão que precisa de APIs do navegador como DOMMatrix — múltiplas issues abertas no github sobre isso (#16593, #16438, #16422). workaround que funciona na 2.23.0 sem fazer downgrade: contorna Document Loader para PDFs e usa um nó Code com o pacote npm pdf-parse. define NODE_FUNCTION_ALLOW_EXTERNAL=pdf-parse nas suas variáveis de ambiente, extrai o texto no nó Code, passa o texto extraído diretamente para Vector Store Insert. o resto do seu workflow está fortemente atrelado ao Document Loader especificamente, ou está apenas usando-o para extração de texto de PDF?

Eu estava usando anteriormente a versão 2.21.7, mas atualizei por causa do problema com pdf-parse v1.1 relatado em “Erro no Carregador de Dados Padrão do Node”, que parece ter sido corrigido na versão 2.23.0.

Contudo, após a atualização, agora estou recebendo o erro DOMMatrix is not defined especificamente durante a ingestão de PDF no nó Document Loader.

Vou aguardar o lançamento da versão estável.

referência:

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

bom dia @Rahul_Parmar
por favor compartilhe seu json.

good morning, @tamy.santos

here is the json file.

@Rahul_Parmar
não encontrei falha no seu código, talvez seja compatibilidade de ambiente.
mude o typeversion para 1.0, Isso força o loader a usar pdf-parse em vez de pdfjs-dist , eliminando a dependência de DOM ou adicione um nó Code como polyfill antes do loader.

Tenho o mesmo problema relatado acima (DOMMatrix não está definida). Conforme sugerido, reverti o Data Loader para typeversion 1.0, adicionei um Recursive Character Text Splitter ao nó, mas ainda estou recebendo o erro (DOMMatrix não está definida).

(Tenho n8n auto-hospedado e estou usando a versão 2.23.1, pois como a pessoa que postou o problema original, eu também estava recebendo o erro pdf-parse v1.1 relatado em “Error in Node Default Data Loader”.

oi @atdev150 , bem vindo à comunidade n8n.
cada caso é um caso, necessário avaliar seu json. por favor abra uma pergunta para que a comundiade possa te apoiar diretamente ou verifique se a minha resposta anterior também te ajuda.

Desculpa, é meu primeiro post aqui :sweat_smile: .

Vou ficar atento às respostas do Rahul, pois acho que tenho o mesmo problema, se não for resolvido, abro uma nova pergunta. Obrigado demais, Tamy!

Count on us :dizzy:

bom dia, @tamy.santos

olá, @atdev150

Eu só queria saber em qual versão do n8n você testou isso. Além disso, você usou o mesmo workflow de Document Ingestion? Você conseguiu fazer upload e processar um PDF com sucesso usando-o?

@Rahul_Parmar 2.22.5

Uma nova versão foi lançada hoje no n8n cloud @2.25.1 (beta), mas parece que esse problema ainda persiste. Ainda aguardando a correção :slightly_smiling_face:

bem vindo à comunidade n8n @BotRidwan
é recomendável optar pela versão estável ao invés do Beta, por questões de estabilidade mesmo.

Enquanto aguarda a correção oficial, uma solução alternativa funcional em self-hosted é substituir o nó Document Loader por um nó Code que usa pdf-parse em vez disso. Se você adicionar NODE_FUNCTION_ALLOW_EXTERNAL=pdf-parse às variáveis de ambiente do n8n e instalar o pacote no contêiner, poderá analisar o PDF binário diretamente sem a dependência DOMMatrix:

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

Não é tão limpo quanto o nó nativo, mas desbloqueia o pipeline RAG até que a correção chegue à versão estável.

Olá, na minha opinião, o problema com a versão 2.23.4 foi definitivamente resolvido. Muito obrigado a todos que acompanharam o assunto com empenho! Cumprimentos, Thomas

De fato, o problema ainda não foi resolvido. O erro «DOM Matrix is not defined» reaparece na versão 2.25.7. Na versão 2.23.4, o fluxo de trabalho funciona perfeitamente. Também na versão «não oficial» 2.26.0, o fluxo de trabalho funciona perfeitamente.