從檔案擷取 / 預設資料載入器失敗:API 版本「5.4.296」與 Worker 版本「5.3.31」不相符 (n8n Cloud 2.25.7)

描述問題/錯誤/問題

在我的 n8n Cloud 實例上,任何解析 PDF 的節點都會失敗,並出現 pdf.js 版本不匹配錯誤。這會影響以下兩者:

  • n8n-nodes-base.extractFromFile(操作:從 PDF 提取)
  • @n8n/n8n-nodes-langchain.documentDefaultDataLoader(資料類型 = Binary

輸入是有效的 PDF(通過 HTTP Request 節點下載的已簽署 Supabase Storage URL,MIME 類型 application/pdf,約 2.5 kB)。二進制資料正確到達節點 — 故障發生在 PDF 解析步驟本身內。

這看起來像是在同一實例中加載了兩個不同版本的 pdf.js(「API」側和「Worker」側的版本不同,無法通信)。

錯誤訊息是什麼(如有)?

The API version "5.4.296" does not match the Worker version "5.3.31".

分享最後一個節點返回的輸出

失敗的節點(Load Document / 二進制模式下的默認資料加載程序)返回:

The API version "5.4.296" does not match the Worker version "5.3.31".

n8n 設定資訊

  • n8n 版本: 2.25.7
  • 資料庫:(託管 — n8n Cloud)
  • n8n EXECUTIONS_PROCESS 設定: 默認值(託管 — n8n Cloud)
  • 執行 n8n 的方式: n8n Cloud
  • 作業系統: N/A(Cloud)

我已經嘗試過的方法

  • 刪除失敗的節點並從頭開始重建,然後重新連接工作流 — 相同錯誤(因此這不是工作流中存儲的節點版本問題)。
  • Latest StableLatest Beta 之間切換實例 — 錯誤沒有消失,它只是移動到不同的工作流/節點。一個構建破壞工作流 A,另一個構建破壞工作流 B。這種打地鼠行為強烈暗示 pdf.js 打包不匹配是在構建級別,而不是工作流問題。
  • 檢查設定 — 我沒有安裝任何社群節點(因此這不是 Tesseract / OCR 社群節點衝突,這是在較舊討論串中報告的常見原因)。

注意/背景

  • 因為我在 n8n Cloud 上,我無法控制 worker 映像或自己固定/對齐 pdf.js 依賴項。
  • 這似乎與報告相同版本對的現有討論串有關:The API version "5.4.296" does not match the Worker version "5.3.31"
  • 在該討論串中,修復涉及將所有容器對齐到同一版本,這不是 Cloud 用戶可以做的事情 — 所以我懷疑這是 2.25.x Cloud 構建中的 pdf.js 打包錯誤。

問題

  1. 這是 2.25.x Cloud 構建中已知的 pdf.js 打包問題嗎?
  2. 有沒有特定的穩定版本,其中 API 和 Worker pdf.js 版本對齐,我應該固定到該版本?
  3. 唯一可靠的前進道路是在 n8n 內置 pdf.js 節點之外提取 PDF 文本(例如在調用 webhook 之前在自己的後端提取,或通過外部提取 API),還是預期會很快推出修復?

Hi @sawsew467

是的

我認為這不適用於 n8n cloud 使用者

很可能是的。

由於這是 Cloud 管理的故障:

  1. 透過 n8n Cloud 儀表板開啟支援工單。
  2. **重要:**提供確切的錯誤字串:The API version "5.4.296" does not match the Worker version "5.3.31"
  3. 提及您已嘗試在穩定版和測試版之間切換,且問題仍然存在。這告訴他們這是一個建置層級的相依性不匹配,而不是使用者錯誤,這通常會更快地將工單上報給工程團隊。

在等待票證期間,解決方案是完全在 n8n 的 pdf.js 之外擷取文字:HTTP Request → 將 PDF 傳送至擷取 API(PDF.co、Cloudmersive 或您自己的 pdf-parse v1 函數)→ 將回傳的文字餵入 Default Data Loader,並將「Data 類型」設為「Text」。

由於 n8n 內部不會發生 PDF 轉譯,這個方法可以完全迴避 API/Worker 版本不匹配的問題。

@sawsew467 嗨 Thang,很高興看到一位越南人在這裡!^^

我也遇到過同樣的問題。這確實是 n8n 方面的一個錯誤,它也已在自託管實例上報告過,不僅僅是 Cloud。在等待官方修復期間,你可以通過添加兩個額外的節點來解決此問題,將你的 PDF 轉換為純文本文件,然後再將其輸入到任何文檔/RAG 工作流中:

  • Extract PDF 將你的二進制 PDF(例如來自 HTTP Request → binary file)並將原始文字提取到 text 欄位中。

  • Convert to File 然後將該 text 欄位轉換為乾淨的 .txt 文件,你可以安全地將其傳遞給 Default Data Loader 或任何 LangChain 文檔節點作為文字輸入。

這樣你就可以完全繞過 pdf.js worker/API 版本不匹配的問題,同時仍然將所有內容保留在 n8n 中。

(順便說一句,很高興認識你,希望能有更多的交流!)