Code node 突然拋出未知錯誤

描述問題/錯誤/問題

我已經在一個工作流上工作了一段時間,但已經有將近2週沒有觸碰它(最後一次修改大約在4月20日)。在這段時間內,我相信我們的實例已從 2.18.4 → 2.18.7(設置為自動更新)進行了更新,但我在發佈說明中沒有看到任何應該導致此問題的內容。之後我已更新到 2.19.2(自動更新沒有進行此更新,必須手動進行),但仍然看到相同的結果。如果需要,我會恢復,但如果某些功能已被有意更改/移除,如果我想升級的話,我需要修復這個問題……

工作流的初始步驟是
- 從電子郵件中隔離單個 PDF 附件
- 為 Claude 生成提示以處理該 PDF(代碼節點,js)
- 提交給 Claude(http)
一直有效的生成提示的代碼是:

const binaryData = $input.item.binary.attachment_0;
const buffer = await this.helpers.getBinaryDataBuffer(0, 'attachment_0');
const base64Pdf = buffer.toString('base64');
const body = {
  model: 'claude-sonnet-4-6',
  max_tokens: 2000,
  messages: [
    {
      role: 'user',
      content: [
        {
          type: 'document',
          source: {
            type: 'base64',
            media_type: 'application/pdf',
            data: base64Pdf
          }
        },
        {
          type: 'text',
          text: '從此 PDF 中提取以下數據:-採購訂單號 -發貨日期 -發票號 -已訂購項目陣列。包括戴爾零件號(不包括「Dell」一詞)、說明、序列號和延伸淨價。只返回原始 JSON,沒有 markdown、沒有說明、沒有代碼籬笆。'
        }
      ]
    }
  ]
};
return [{
  json: { body: JSON.stringify(body) }
}];

結果為:

image

隔離 PDF 的初始步驟使用此代碼:



const binary = $input.item.binary;
// 查找 PDF 附件的鍵
const pdfKey = Object.keys(binary).find(
  key => binary[key].mimeType === 'application/pdf'
);
if (!pdfKey) {
  throw new Error('在此電子郵件中找不到 PDF 附件');
}
return [{
  json: $input.item.json,        // 原封不動地通過電子郵件數據
  binary: {
    attachment_0: binary[pdfKey] // 將其重命名為可預測的鍵
  }
}];



結果為 attachment_0

但是在大約2週後返回此工作流後,該生成提示步驟現在導致未知錯誤。我已嘗試使用各種其他 js 代碼修復它,但無法重新創建我需要的內容。我對 JS 的熟悉度處於業餘水平,但 Claude 在生成代碼方面一直很棒。我經歷了多次迭代但仍然沒有運氣。

您的 n8n 設置信息

  • n8n 版本:2.18.7 - 2.19.2(自託管)
  • 資料庫(預設:SQLite):
  • n8n EXECUTIONS_PROCESS 設置(預設:own、main):
  • 透過以下方式運行 n8n(Docker、npm、n8n cloud、桌面應用):docker
  • 作業系統:

不用了…我重新啟動了 n8n 伺服器,現在似乎又可以正常運作了。其中一個更新應該是把它鎖定了某些功能。

很好 @flowdan,重要的是現在它能正常運作了。
我建議你將你的回覆標記為解決方案,這樣當社群中的其他人日後搜尋類似問題時,就能從中獲得幫助。