n8n - 💡(How to fix) Fix Broken Node Report

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Error Message

Describe the problem/error/question

Error is showing: This node is not currently installed. It is either

What is the error message (if any)?

"jsCode": "const firstItem = $input.first();\nconst rawTextJson = firstItem?.json?.content?.parts?.[0]?.text || firstItem?.json?.candidates?.[0]?.content?.parts?.[0]?.text || firstItem?.json?.[0]?.candidates?.[0]?.content?.parts?.[0]?.text;\nif (!rawTextJson) {\n return [{ json: { error: "Could not find the parts text string in the incoming data structure.", received_data: firstItem?.json || null } }];\n}\ntry {\n const extractedData = JSON.parse(rawTextJson);\n return [{ json: { ...extractedData } }];\n} catch (error) {\n return [{ json: { error: 'Failed to parse text string into JSON object.', raw_text: rawTextJson } }];\n}"

  • error: all

Code Example

(Select the nodes on your canvas and use the keyboard shortcuts CMD+C/CTRL+C and CMD+V/CTRL+V to copy and paste the workflow.)
⚠️ WARNING ⚠️ If you have sensitive data in your workflow (like API keys), please remove it before sharing.
RAW_BUFFERClick to expand / collapse
<!-- Please follow the template below. Skip the questions that are not relevant to you. -->

Describe the problem/error/question

Error is showing: This node is not currently installed. It is either from a newer version of n8n, a custom node, or has an invalid structure

What is the error message (if any)?

This node is not currently installed. It is either from a newer version of n8n, a custom node, or has an invalid structure

Please share your workflow/screenshots/recording

<img width="431" height="233" alt="Image" src="https://github.com/user-attachments/assets/54fddcd7-2c99-4f1d-b390-cd6b2230a352" />
(Select the nodes on your canvas and use the keyboard shortcuts CMD+C/CTRL+C and CMD+V/CTRL+V to copy and paste the workflow.)
⚠️ WARNING ⚠️ If you have sensitive data in your workflow (like API keys), please remove it before sharing.

{ "nodes": [ { "parameters": { "httpMethod": "POST", "path": "awb-extractor", "options": {} }, "id": "a79fd2cf-db0e-4b22-b946-8deb89b179b3", "name": "Webhook Trigger", "type": "n8n-nodes-base.webhook", "typeVersion": 2.1, "position": [ 0, 392 ], "webhookId": "4036159a-19d8-42a6-b885-1acd203195b5" }, { "parameters": {}, "id": "d3985b2e-050f-43fb-94e5-9f3445c62bac", "name": "Fetch Order Updates with Attachments", "type": "n8n-nodes-base.airtable", "typeVersion": 2.2, "position": [ 224, 392 ], "credentials": { "airtableTokenApi": { "id": "2Snn04v8RTsNyDgb", "name": "Airtable Personal Access Token account" } } }, { "parameters": { "jsCode": "const items = $input.all();\nconst result = [];\n\nfunction cleanOrderId(raw) {\n if (!raw && raw !== 0) return '';\n const s = String(raw).trim();\n const noDecimal = s.replace(/\.0+$/, '');\n const len = noDecimal.length;\n if (len % 2 === 0) {\n const half = noDecimal.slice(0, len / 2);\n if (half === noDecimal.slice(len / 2)) return half;\n }\n return noDecimal;\n}\n\nfor (const item of items) {\n const fields = item.json.fields || item.json;\n const recordId = item.json.id;\n const deliveryAwb = fields['Delivery Airway Bill'] || [];\n const stockTransferAwb = fields['Stock Transfer Airway Bill'] || [];\n const awbPicture = fields['Airway Bill Picture'] || [];\n const deliverydropoffPicture = fields['Delivery Drop Off Picture'] || [];\n \n let attachment = null;\n let sourceField = '';\n if (Array.isArray(deliveryAwb) && deliveryAwb.length > 0) {\n attachment = deliveryAwb[0]; sourceField = 'Delivery Airway Bill';\n } else if (Array.isArray(stockTransferAwb) && stockTransferAwb.length > 0) {\n attachment = stockTransferAwb[0]; sourceField = 'Stock Transfer Airway Bill';\n } else if (Array.isArray(awbPicture) && awbPicture.length > 0) {\n attachment = awbPicture[0]; sourceField = 'Airway Bill Picture';\n } else if (Array.isArray(deliverydropoffPicture) && deliverydropoffPicture.length > 0) {\n attachment = deliverydropoffPicture[0]; sourceField = 'Delivery Drop Off Picture';\n }\n if (attachment && attachment.url && recordId) {\n const filename = attachment.filename || '';\n const mimeType = attachment.type || '';\n const isPdf = filename.toLowerCase().endsWith('.pdf') || mimeType === 'application/pdf';\n result.push({\n json: {\n recordId,\n attachmentUrl: attachment.url,\n attachmentFilename: filename,\n sourceField,\n orderId: cleanOrderId(fields['Order ID']),\n fileType: isPdf ? 'pdf' : 'image',\n }\n });\n }\n}\nreturn result;" }, "id": "7da50434-7f91-4f09-9d73-019aff3ca454", "name": "Extract Attachment URL", "type": "n8n-nodes-base.code", "typeVersion": 2, "position": [ 448, 392 ] }, { "parameters": {}, "id": "462ba511-d446-4967-8e0a-a48711874094", "name": "All Done", "type": "n8n-nodes-base.noOp", "typeVersion": 1, "position": [ 896, 8 ] }, { "parameters": { "rules": { "values": [ { "conditions": { "options": { "caseSensitive": true, "leftValue": "", "typeValidation": "strict", "version": 3 }, "conditions": [ { "leftValue": "={{ $json.fileType }}", "rightValue": "image", "operator": { "type": "string", "operation": "equals" }, "id": "fbda7d6a-4eba-4b2a-b9d5-99cdcb065aa2" } ], "combinator": "and" }, "renameOutput": true, "outputKey": "Image" }, { "conditions": { "options": { "caseSensitive": true, "leftValue": "", "typeValidation": "strict", "version": 3 }, "conditions": [ { "leftValue": "={{ $json.fileType }}", "rightValue": "pdf", "operator": { "type": "string", "operation": "equals" }, "id": "8dfc8f3b-a29b-48d4-a017-966931c05752" } ], "combinator": "and" }, "renameOutput": true, "outputKey": "PDF" } ] }, "options": { "fallbackOutput": "extra", "renameFallbackOutput": "Other to Image" } }, "id": "97f161c0-60f7-45ce-a0d2-761caf7810c1", "name": "Route by File Type", "type": "n8n-nodes-base.switch", "typeVersion": 3.4, "position": [ 896, 376 ] }, { "parameters": {}, "id": "c3ea40a6-7c55-463c-8a22-a30f542433e2", "name": "Analyze an image", "type": "@n8n/n8n-nodes-langchain.googleGemini", "typeVersion": 1.2, "position": [ 1344, 296 ], "credentials": { "googlePalmApi": { "id": "UKGDDro9Zhgea11x", "name": "Google Gemini(PaLM) Api account" } } }, { "parameters": { "jsCode": "const firstItem = $input.first();\nconst rawTextJson = firstItem?.json?.content?.parts?.[0]?.text || firstItem?.json?.candidates?.[0]?.content?.parts?.[0]?.text || firstItem?.json?.[0]?.candidates?.[0]?.content?.parts?.[0]?.text;\nif (!rawTextJson) {\n return [{ json: { error: "Could not find the parts text string in the incoming data structure.", received_data: firstItem?.json || null } }];\n}\ntry {\n const extractedData = JSON.parse(rawTextJson);\n return [{ json: { ...extractedData } }];\n} catch (error) {\n return [{ json: { error: 'Failed to parse text string into JSON object.', raw_text: rawTextJson } }];\n}" }, "id": "c578da57-3944-42ef-a7a8-df7c823c0e65", "name": "Code in JavaScript", "type": "n8n-nodes-base.code", "typeVersion": 2, "position": [ 1568, 392 ] }, { "parameters": {}, "id": "df7809d1-e75c-4d65-a0eb-7d856ba29ffa", "name": "Write Extracted AWB to Airtable", "type": "n8n-nodes-base.airtable", "typeVersion": 2.2, "position": [ 1792, 392 ], "credentials": { "airtableTokenApi": { "id": "2Snn04v8RTsNyDgb", "name": "Airtable Personal Access Token account" } } }, { "parameters": {}, "id": "70427031-6cb9-4c1f-962c-c9bcd8c7d921", "name": "Wait 5s (Cooldown)", "type": "n8n-nodes-base.wait", "typeVersion": 1.1, "position": [ 2016, 472 ], "webhookId": "3995cdf3-34db-480e-a91b-ab89b700884f" }, { "parameters": { "options": {} }, "id": "a0af2f36-7ae0-4dc3-974b-5777424a1c5e", "name": "Process 1 at a Time", "type": "n8n-nodes-base.splitInBatches", "typeVersion": 3, "position": [ 672, 392 ] }, { "parameters": { "url": "={{ $json.attachmentUrl }}", "options": { "response": { "response": { "responseFormat": "file", "outputPropertyName": "pdfBinary" } } } }, "id": "95e81d96-35e6-49df-b15a-46bb4ca53194", "name": "Download PDF", "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.4, "position": [ 1120, 488 ] }, { "parameters": {}, "id": "49100ec0-b130-4a0e-99f5-60d6f449a0e8", "name": "Analyze document", "type": "@n8n/n8n-nodes-langchain.googleGemini", "typeVersion": 1.2, "position": [ 1344, 488 ], "credentials": { "googlePalmApi": { "id": "UKGDDro9Zhgea11x", "name": "Google Gemini(PaLM) Api account" } } }, { "parameters": {}, "id": "f479c7ed-047b-4adf-a6da-4272a5951e9f", "name": "Search To Upload", "type": "n8n-nodes-base.airtable", "typeVersion": 2.2, "position": [ 1344, 8 ], "alwaysOutputData": true, "credentials": { "airtableTokenApi": { "id": "2Snn04v8RTsNyDgb", "name": "Airtable Personal Access Token account" } } }, { "parameters": {}, "id": "13e66ece-63be-42ed-99b0-58cd9f1df9d8", "name": "Upload Done", "type": "n8n-nodes-base.noOp", "typeVersion": 1, "position": [ 1792, -272 ] }, { "parameters": { "jsCode": "const items = $input.all();\nconst trackings = [];\nconst records = [];\nfor (const i of items) {\n const f = i.json.fields || {};\n const ext = f['Extracted Airway Bill Number'];\n let awb = Array.isArray(ext) ? ext[0] : ext;\n if (!awb) continue;\n const a = String(awb).trim();\n const aUpper = a.toUpperCase();\n if (aUpper.includes('LALAMOVE')) continue;\n if (aUpper === 'NOT_AWB' || aUpper === 'PHOTO_INVALID') continue;\n let courier = '';\n if (a.slice(0, 2) === '63') courier = 'jt';\n else if (aUpper.slice(0, 2) === 'MY') courier = 'gdex';\n else if (aUpper.slice(-2) === 'MY') courier = 'pos';\n if (!courier) continue;\n const t = { tracking_number: a, courier, parcel_content: 'Accessories' };\n const o = f['Order ID'];\n if (o !== null && o !== undefined && o !== '') t.order_number = String(o);\n trackings.push(t);\n records.push({ recordId: i.json.id, awb: a });\n}\nreturn [{ json: { trackings, records } }];" }, "id": "e5b3f300-6474-407e-8138-a39902149759", "name": "Build Bulk Payload", "type": "n8n-nodes-base.code", "typeVersion": 2, "position": [ 1792, -80 ], "alwaysOutputData": true }, { "parameters": { "conditions": { "options": { "caseSensitive": true, "leftValue": "", "typeValidation": "strict", "version": 3 }, "conditions": [ { "id": "bbbb1111-2222-3333-4444-555566667777", "leftValue": "={{ $json.trackings.length }}", "rightValue": 0, "operator": { "type": "number", "operation": "gt" } } ], "combinator": "and" }, "options": {} }, "id": "a26f14a7-2c3d-4aca-8938-6e72611e60fe", "name": "Has Trackings?", "type": "n8n-nodes-base.if", "typeVersion": 2.3, "position": [ 2016, -80 ] }, { "parameters": { "method": "POST", "url": "https://seller.tracking.my/api/v2/trackings/bulk", "sendHeaders": true, "headerParameters": { "parameters": [ { "name": "Tracking-Api-Key", "value": "xx" }, { "name": "Content-Type", "value": "application/json" }, { "name": "Accept", "value": "application/json" } ] }, "sendBody": true, "specifyBody": "json", "jsonBody": "={{ $json.trackings }}", "options": {} }, "id": "60121a60-0624-45de-a22b-9ec530b85f06", "name": "Upload to tracking.my", "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.4, "position": [ 2240, -80 ], "alwaysOutputData": true }, { "parameters": { "jsCode": "const records = $('Build Bulk Payload').first().json.records;\nreturn records.map(r => ({ json: { recordId: r.recordId, awb: r.awb } }));" }, "id": "9b3e61c9-6cca-4a52-8482-f596b7c3bf36", "name": "Expand Records", "type": "n8n-nodes-base.code", "typeVersion": 2, "position": [ 2464, -80 ], "alwaysOutputData": true }, { "parameters": {}, "id": "551b11e9-3d5f-419e-b3bc-0aa63a646635", "name": "Update record", "type": "n8n-nodes-base.airtable", "typeVersion": 2.2, "position": [ 2688, -40 ], "credentials": { "airtableTokenApi": { "id": "2Snn04v8RTsNyDgb", "name": "Airtable Personal Access Token account" } } }, { "parameters": { "batchSize": 50, "options": {} }, "id": "5c23ab24-4054-49f9-943f-9215ef89cae2", "name": "Loop Over Items", "type": "n8n-nodes-base.splitInBatches", "typeVersion": 3, "position": [ 1568, 8 ] }, { "parameters": { "fieldsToAggregate": { "fieldToAggregate": [ {} ] }, "options": {} }, "type": "n8n-nodes-base.aggregate", "typeVersion": 1, "position": [ 1120, 8 ], "id": "f734bc1f-1fd3-4dfb-9d7c-09ba2d08feda", "name": "Aggregate" } ], "connections": { "Webhook Trigger": { "main": [ [ { "node": "Fetch Order Updates with Attachments", "type": "main", "index": 0 } ] ] }, "Fetch Order Updates with Attachments": { "main": [ [ { "node": "Extract Attachment URL", "type": "main", "index": 0 } ] ] }, "Extract Attachment URL": { "main": [ [ { "node": "Process 1 at a Time", "type": "main", "index": 0 } ] ] }, "All Done": { "main": [ [ { "node": "Aggregate", "type": "main", "index": 0 } ] ] }, "Route by File Type": { "main": [ [ { "node": "Analyze an image", "type": "main", "index": 0 } ], [ { "node": "Download PDF", "type": "main", "index": 0 } ], [ { "node": "Analyze an image", "type": "main", "index": 0 } ] ] }, "Analyze an image": { "main": [ [ { "node": "Code in JavaScript", "type": "main", "index": 0 } ] ] }, "Code in JavaScript": { "main": [ [ { "node": "Write Extracted AWB to Airtable", "type": "main", "index": 0 } ] ] }, "Write Extracted AWB to Airtable": { "main": [ [ { "node": "Wait 5s (Cooldown)", "type": "main", "index": 0 } ] ] }, "Wait 5s (Cooldown)": { "main": [ [ { "node": "Process 1 at a Time", "type": "main", "index": 0 } ] ] }, "Process 1 at a Time": { "main": [ [ { "node": "All Done", "type": "main", "index": 0 } ], [ { "node": "Route by File Type", "type": "main", "index": 0 } ] ] }, "Download PDF": { "main": [ [ { "node": "Analyze document", "type": "main", "index": 0 } ] ] }, "Analyze document": { "main": [ [ { "node": "Code in JavaScript", "type": "main", "index": 0 } ] ] }, "Search To Upload": { "main": [ [ { "node": "Loop Over Items", "type": "main", "index": 0 } ] ] }, "Build Bulk Payload": { "main": [ [ { "node": "Has Trackings?", "type": "main", "index": 0 } ] ] }, "Has Trackings?": { "main": [ [ { "node": "Upload to tracking.my", "type": "main", "index": 0 } ], [ { "node": "Loop Over Items", "type": "main", "index": 0 } ] ] }, "Upload to tracking.my": { "main": [ [ { "node": "Expand Records", "type": "main", "index": 0 } ] ] }, "Expand Records": { "main": [ [ { "node": "Update record", "type": "main", "index": 0 } ] ] }, "Update record": { "main": [ [ { "node": "Loop Over Items", "type": "main", "index": 0 } ] ] }, "Loop Over Items": { "main": [ [ { "node": "Upload Done", "type": "main", "index": 0 } ], [ { "node": "Build Bulk Payload", "type": "main", "index": 0 } ] ] }, "Aggregate": { "main": [ [ { "node": "Search To Upload", "type": "main", "index": 0 } ] ] } }, "pinData": { "Webhook Trigger": [ { "headers": { "host": "automation.3cat.work", "user-agent": "Mozilla/5.0 (compatible; AirtableScripting; +https://airtable.com/developers/scripting;)", "content-length": "0", "accept": "/", "accept-encoding": "gzip,deflate", "content-type": "application/json", "x-airtable-source": "appr9c4K1N2zAsh1i/wfl8ACvhzvVtaYcfw", "x-forwarded-for": "100.24.21.130", "x-forwarded-host": "automation.3cat.work", "x-forwarded-port": "443", "x-forwarded-proto": "https", "x-forwarded-server": "c9865b98f101", "x-real-ip": "100.24.21.130" }, "params": {}, "query": {}, "body": {}, "webhookUrl": "https://automation.3cat.work/webhook/awb-extractor", "executionMode": "production" } ], "Fetch Order Updates with Attachments": [ { "id": "recwmrLDlkTCMtdq8", "createdTime": "2026-05-26T04:37:00.000Z", "fields": { "Order ID": 479742, "Delivery Airway Bill": [ { "id": "attVbRrlpumcC3Zbf", "url": "https://v5.airtableusercontent.com/v3/u/53/53/1779782400000/tXQpLqueN5gIb94RgDvugg/khUxzZNOF4n48jbGt0GdZN1RaD7nRl1oMhMfyZbIOY7avol4t3frh_rno_Xknda_dVhxirdkIcHSLzYODJ701CFNTS6x3SvVDh-fl5l_3fpNGL2hqgR-hhKhwXb0HWZ6rnIhIionZz_8dHFH_vuIwjUQ_EBdJ_k0rwVlYDtavaw/e5yLs_WnNSr6JBaktnyYEJ_CLIYWG1pUdtI0sjreOZc", "filename": "632063676117.pdf", "size": 162805, "type": "application/pdf", "thumbnails": { "small": { "url": "https://v5.airtableusercontent.com/v3/u/53/53/1779782400000/AEzASoDKXkuYcQT6t8jlZQ/s_AMIvfC7giadN1fmxbP37l-DtZEVJTN0Fg2uGir7trHOCE_aipvRYzxQSX0Y8d55mSC7vO2mg7TC3zhu0DrxtN67pte3L2zPYwBAdhp4Wn-p5KZ03gLl6-fd0REsjNjlsLcPfRig1wP4f_ny5myUQ/u424UHrnS_7OUKr8Hgd7TKPQxp10VztN8HjZp4-hrjs", "width": 20, "height": 36 }, "large": { "url": "https://v5.airtableusercontent.com/v3/u/53/53/1779782400000/-oT03HM851ICxSQIHL8OyA/yhpdWykG4Vw4sDhcTDCn15q2CIIbZggmK6yCb9dxZUj6rPeTB7w6m1beLvCOa0A4rY2XeKi1eIAlrtiYhxE7WdLMpJyGhWyVzEAIA484EK2zNSiiHPcDq42ploZ2EoHScIrv-_rT6ImHyo4SRiExWg/K0r_xYoCs-Nf0Ytx0Jj2m_e33CUwZ8hADrc0zXtmV1M", "width": 512, "height": 932 } } } ], "Created Time": "2026-05-26T04:37:00.000Z" } } ] }, "meta": { "aiBuilderAssisted": true, "builderVariant": "mcp", "templateCredsSetupCompleted": true, "instanceId": "7e151b20e3e3998355037b03e8a2ede3028708e3afa543286cca7a23b98dd9e8" } }

Share the output returned by the last node

<!-- If you need help with data transformations, please also share your expected output. -->

Debug info

core

  • n8nVersion: 2.8.4
  • platform: docker (self-hosted)
  • nodeJsVersion: 20.20.2
  • nodeEnv: production
  • database: postgres
  • executionMode: regular
  • concurrency: -1
  • license: enterprise (production)

storage

  • success: all
  • error: all
  • progress: false
  • manual: true
  • binaryMode: filesystem

pruning

  • enabled: true
  • maxAge: 730 hours
  • maxCount: 10000 executions

client

  • userAgent: mozilla/5.0 (windows nt 10.0; win64; x64) applewebkit/537.36 (khtml, like gecko) chrome/148.0.0.0 safari/537.36
  • isTouchDevice: false

Generated at: 2026-05-26T09:40:45.559Z}

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING