DOMMatrix is not defined Fehler bei Verwendung von Default Data Loader mit PDF

Beschreiben Sie das Problem/Fehler/die Frage

Beim Verwenden des Default Data Loader-Knotens zum Laden einer PDF-Binärdatei schlägt die Ausführung mit folgendem Fehler fehl:

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

Die folgenden Warnungen werden auch im Container protokolliert:

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.

Schritte zum Reproduzieren

  1. Richten Sie einen Workflow mit einer PDF-Binärquelle ein (z. B. Google Drive, Webhook, Form-Knoten).
  2. Verbinden Sie die binäre Ausgabe mit einem Default Data Loader-Knoten mit dem Datentyp auf Binary gesetzt.
  3. Führen Sie den Workflow aus.

Erwartetes Verhalten

Der Default Data Loader sollte die PDF erfolgreich analysieren und den Inhalt nachgelagert weitergeben.

Tatsächliches Verhalten

Der Knoten schlägt mit DOMMatrix is not defined fehl. Das @napi-rs/canvas-Paket kann nicht geladen werden, wodurch pdfjs-dist verhindert wird, die erforderlichen Browser-nativen APIs zu polyfüllen.

Informationen zu meinem n8n-Setup

  • n8n-Version: 2.25.7 (Self Hosted)
  • n8n läuft über: Docker
  • Binärdatenmodus: Dateisystem

Zusätzlicher Kontext

Dieses Problem scheint in v1.98.0 eingeführt worden zu sein, als pdfjs-dist auf eine Version aktualisiert wurde, die von Browser-nativen APIs abhängt, die in Node.js-Serverumgebungen nicht verfügbar sind. Es wurde von mehreren Benutzern in vorherigen Versionen gemeldet und scheint in v2.25.7 weiterhin zu bestehen.

Was ist die Fehlermeldung (falls vorhanden)?

Bitte teilen Sie Ihren Workflow

Geben Sie die vom letzten Knoten zurückgegebene Ausgabe an

Informationen zu Ihrem n8n-Setup

  • n8n-Version:
  • Datenbank (Standard: SQLite):
  • n8n EXECUTIONS_PROCESS-Einstellung (Standard: own, main):
  • n8n läuft über (Docker, npm, n8n cloud, Desktop-App):
  • Betriebssystem:

Ich denke, wir haben uns das heute schon angesehen.

Versuchen Sie die neueste Beta-Version – das hat es für uns behoben.

Während du auf den Beta-Test von @menouaw wartest, gibt es einen zuverlässigen Workaround, der in den verwandten “DOMMatrix is not defined”-Threads bestätigt wurde: Konvertiere die PDF in Text, bevor du den Default Data Loader verwendest. Dazu nutzt du einen Extract from File-Knoten (Operation: “PDF”) früher in der Kette. Das allein reicht aber nicht aus, da es denselben pdfjs-dist/@napi-rs/canvas-Pfad trifft.

Willkommen @menouaw!

Die Korrektur in der neuesten Beta ist der richtige langfristige Weg (BramKns Vorschlag). Als vorübergehende Lösung, während du auf Stable läufst: Verwende einen HTTP Request Node, um eine externe PDF-zu-Text-API aufzurufen (wie Docparser, Reducto oder einen selbstgehosteten Tika-/Unstructured-Endpoint) anstelle des Standard Data Loaders. Auf diese Weise kommt dein PDF-Text als reines JSON an, ohne den pdfjs + @napi-rs/canvas-Pfad zu durchlaufen, der den Crash verursacht. Alternativ, wenn dein Docker-Image auf Alpine basiert, werden die fehlenden nativen Bindings normalerweise behoben, indem du zu n8nio/n8n:latest (Debian-basiert) anstelle der Alpine-Variante wechselst.