Hello. I am new to n8n and am running a self-hosted instance of n8n Community Edition v1.76.1 in Queue Mode w/ Webhook processors on Railway AI. Database is Postgres. Deployment was a Template from a Comunity Member, Jack. The n8n Template installation in Railway was flawless and is operating well.
I have imported a substantial number of blueprints (thank you community, you are just fantastic) and thought it wise to deploy an n8n Backup workflow just in case I inadvertly crash something up on Railway.
I have imported Jonathan’s impressively engineered Backup workflow template which appears to have been configured for Enterprise and am starting to work through iterative Test step configurations to make requisite adjustments having already applied my credentials where required.
<{
“name”: “Back Up n8n Workflows To Github”,
“nodes”: [
{
“parameters”: {},
“id”: “421824c2-59a2-441b-aacc-7dadf2ec153b”,
“name”: “On clicking ‘execute’”,
“type”: “n8n-nodes-base.manualTrigger”,
“position”: [
860,
320
],
“typeVersion”: 1
},
{
“parameters”: {
“content”: “## Subworkflow”,
“height”: 731.7039821513649,
“width”: 1910.7813046051347,
“color”: 6
},
“id”: “c6024a57-1957-4714-84e3-8d326c83cd89”,
“name”: “Sticky Note”,
“type”: “n8n-nodes-base.stickyNote”,
“position”: [
380,
700
],
“typeVersion”: 1
},
{
“parameters”: {},
“id”: “07691901-a8d2-4891-860b-1d672361021b”,
“name”: “Execute Workflow Trigger”,
“type”: “n8n-nodes-base.executeWorkflowTrigger”,
“position”: [
440,
1080
],
“typeVersion”: 1
},
{
“parameters”: {
“filters”: {},
“requestOptions”: {}
},
“id”: “2b1dd138-7872-42ea-9882-8750ef4cf227”,
“name”: “n8n”,
“type”: “n8n-nodes-base.n8n”,
“position”: [
1260,
420
],
“typeVersion”: 1,
“credentials”: {
“n8nApi”: {
“id”: “GHODKsVn9EVCMPjs”,
“name”: “n8n account”
}
}
},
{
“parameters”: {
“assignments”: {
“assignments”: [
{
“id”: “8d513345-6484-431f-afb7-7cf045c90f4f”,
“name”: “Done”,
“type”: “boolean”,
“value”: true
}
]
},
“options”: {}
},
“id”: “96c0c6a7-2a11-441d-8177-e0a18030daf9”,
“name”: “Return”,
“type”: “n8n-nodes-base.set”,
“position”: [
2100,
900
],
“typeVersion”: 3.3
},
{
“parameters”: {
“url”: “={{ $json.download_url }}”,
“options”: {}
},
“id”: “6715d1ff-a1f0-4e1a-b96e-f680d1495047”,
“name”: “Get File”,
“type”: “n8n-nodes-base.httpRequest”,
“position”: [
1060,
780
],
“typeVersion”: 4.2
},
{
“parameters”: {
“conditions”: {
“options”: {
“leftValue”: “”,
“caseSensitive”: true,
“typeValidation”: “strict”
},
“combinator”: “and”,
“conditions”: [
{
“id”: “45ce825e-9fa6-430c-8931-9aaf22c42585”,
“operator”: {
“type”: “string”,
“operation”: “empty”,
“singleValue”: true
},
“leftValue”: “={{ $json.content }}”,
“rightValue”: “”
},
{
“id”: “9619a55f-7fb1-4f24-b1a7-7aeb82365806”,
“operator”: {
“type”: “string”,
“operation”: “notExists”,
“singleValue”: true
},
“leftValue”: “={{ $json.error }}”,
“rightValue”: “”
}
]
},
“options”: {}
},
“id”: “443b18e8-c05b-444f-b323-dea0b3041939”,
“name”: “If file too large”,
“type”: “n8n-nodes-base.if”,
“position”: [
820,
800
],
“typeVersion”: 2
},
{
“parameters”: {},
“id”: “e460a2cd-f7af-4551-8ea2-84d9b9e5cb7f”,
“name”: “Merge Items”,
“type”: “n8n-nodes-base.merge”,
“position”: [
820,
1060
],
“typeVersion”: 2
},
{
“parameters”: {
“jsCode”: “const orderJsonKeys = (jsonObj) => {\n const ordered = {};\n Object.keys(jsonObj).sort().forEach(key => {\n ordered[key] = jsonObj[key];\n });\n return ordered;\n}\n\n// Check if file returned with content\nif (Object.keys($input.all()[0].json).includes("content")) {\n // Decode base64 content and parse JSON\n const origWorkflow = JSON.parse(Buffer.from($input.all()[0].json.content, ‘base64’).toString());\n const n8nWorkflow = $input.all()[1].json;\n \n // Order JSON objects\n const orderedOriginal = orderJsonKeys(origWorkflow);\n const orderedActual = orderJsonKeys(n8nWorkflow);\n\n // Determine difference\n if (JSON.stringify(orderedOriginal) === JSON.stringify(orderedActual)) {\n $input.all()[0].json.github_status = "same";\n } else {\n $input.all()[0].json.github_status = "different";\n $input.all()[0].json.n8n_data_stringy = JSON.stringify(orderedActual, null, 2);\n }\n $input.all()[0].json.content_decoded = orderedOriginal;\n// No file returned / new workflow\n} else if (Object.keys($input.all()[0].json).includes("data")) {\n const origWorkflow = JSON.parse($input.all()[0].json.data);\n const n8nWorkflow = $input.all()[1].json;\n \n // Order JSON objects\n const orderedOriginal = orderJsonKeys(origWorkflow);\n const orderedActual = orderJsonKeys(n8nWorkflow);\n\n // Determine difference\n if (JSON.stringify(orderedOriginal) === JSON.stringify(orderedActual)) {\n $input.all()[0].json.github_status = "same";\n } else {\n $input.all()[0].json.github_status = "different";\n $input.all()[0].json.n8n_data_stringy = JSON.stringify(orderedActual, null, 2);\n }\n $input.all()[0].json.content_decoded = orderedOriginal;\n\n} else {\n // Order JSON object\n const n8nWorkflow = $input.all()[1].json;\n const orderedActual = orderJsonKeys(n8nWorkflow);\n \n // Proper formatting\n $input.all()[0].json.github_status = "new";\n $input.all()[0].json.n8n_data_stringy = JSON.stringify(orderedActual, null, 2);\n}\n\n// Return items\nreturn $input.all();\n”
},
“id”: “f795180a-66aa-4a86-acb0-96cf8c487db0”,
“name”: “isDiffOrNew”,
“type”: “n8n-nodes-base.code”,
“position”: [
1020,
1060
],
“typeVersion”: 1
},
{
“parameters”: {
“dataType”: “string”,
“value1”: “={{$json.github_status}}”,
“rules”: {
“rules”: [
{
“value2”: “same”
},
{
“value2”: “different”,
“output”: 1
},
{
“value2”: “new”,
“output”: 2
}
]
}
},
“id”: “30e7d6fc-327e-4693-95ce-376a3b1f145c”,
“name”: “Check Status”,
“type”: “n8n-nodes-base.switch”,
“position”: [
1420,
1060
],
“typeVersion”: 1
},
{
“parameters”: {},
“id”: “36f12309-c7fe-446f-9571-bd1005c18ed8”,
“name”: “Same file - Do nothing”,
“type”: “n8n-nodes-base.noOp”,
“position”: [
1640,
900
],
“typeVersion”: 1
},
{
“parameters”: {},
“id”: “45f0eaa7-259b-4908-b567-af2b3b5abb6d”,
“name”: “File is different”,
“type”: “n8n-nodes-base.noOp”,
“position”: [
1640,
1060
],
“typeVersion”: 1
},
{
“parameters”: {},
“id”: “d16ec06b-7a3f-486e-8328-935ed3b4d565”,
“name”: “File is new”,
“type”: “n8n-nodes-base.noOp”,
“position”: [
1640,
1260
],
“typeVersion”: 1
},
{
“parameters”: {
“resource”: “file”,
“owner”: {
“__rl”: true,
“mode”: “”,
“value”: “={{ $(‘Config’).first().item.repo_owner }}”
},
“repository”: {
“__rl”: true,
“mode”: “”,
“value”: “={{ $(‘Config’).first().item.repo_name }}”
},
“filePath”: “={{ $(‘Config’).first().item.repo_path }}{{ $json.subPath }}{{$(‘Execute Workflow Trigger’).first().json.id}}.json”,
“fileContent”: “={{$(‘isDiffOrNew’).item.json["n8n_data_stringy"]}}”,
“commitMessage”: “={{$(‘Execute Workflow Trigger’).first().json.name}} ({{$json.github_status}})”
},
“id”: “cdc7f306-b7d2-4de1-8e44-0bd8d49a679f”,
“name”: “Create new file”,
“type”: “n8n-nodes-base.github”,
“position”: [
1860,
1260
],
“typeVersion”: 1,
“credentials”: {
“githubApi”: {
“id”: “NYCmP55BOYeWZooP”,
“name”: “GitHub account”
}
}
},
{
“parameters”: {
“resource”: “file”,
“operation”: “edit”,
“owner”: {
“__rl”: true,
“mode”: “”,
“value”: “={{ $(‘Config’).first().item.repo_owner }}”
},
“repository”: {
“__rl”: true,
“mode”: “”,
“value”: “={{ $(‘Config’).first().item.repo_name }}”
},
“filePath”: “={{ $(‘Config’).first().item.repo_path }}{{ $json.subPath }}{{$(‘Execute Workflow Trigger’).first().json.id}}.json”,
“fileContent”: “={{$(‘isDiffOrNew’).item.json["n8n_data_stringy"]}}”,
“commitMessage”: “={{$(‘Execute Workflow Trigger’).first().json.name}} ({{$json.github_status}})”
},
“id”: “9785333a-4a86-448d-afc2-58b0aa50ea96”,
“name”: “Edit existing file”,
“type”: “n8n-nodes-base.github”,
“position”: [
1860,
1060
],
“typeVersion”: 1,
“credentials”: {
“githubApi”: {
“id”: “NYCmP55BOYeWZooP”,
“name”: “GitHub account”
}
}
},
{
“parameters”: {
“options”: {}
},
“id”: “806db72c-c9f6-461d-be1a-1e6867a25382”,
“name”: “Loop Over Items”,
“type”: “n8n-nodes-base.splitInBatches”,
“position”: [
1460,
420
],
“typeVersion”: 3
},
{
“parameters”: {
“rule”: {
“interval”: [
{
“triggerAtHour”: 1
}
]
}
},
“id”: “e5c433e4-bf56-4a0a-906c-7d74f6fe7287”,
“name”: “Schedule Trigger”,
“type”: “n8n-nodes-base.scheduleTrigger”,
“position”: [
860,
520
],
“typeVersion”: 1.2
},
{
“parameters”: {
“assignments”: {
“assignments”: [
{
“id”: “dae43d3b-56e5-4098-b602-862ebf5cd073”,
“name”: “subPath”,
“type”: “string”,
“value”: “={{ $(‘Execute Workflow Trigger’).first().json.createdAt.split(‘-’)[0] }}/{{ $(‘Execute Workflow Trigger’).first().json.createdAt.split(‘-’)[1] }}/”
}
]
},
“includeOtherFields”: true,
“options”: {}
},
“id”: “f6b566cb-0a15-4792-ba27-d6cd2a6c9453”,
“name”: “Create sub path”,
“type”: “n8n-nodes-base.set”,
“position”: [
1220,
1060
],
“typeVersion”: 3.3
},
{
“parameters”: {
“content”: “### Jonathan\n## Backup to GitHub \nThis workflow will backup all instance workflows to GitHub every 24 hours.\n\nThe files are saved into folders using YYYY/MM/
for the directory path and ID.json
for the filename.\n\nThe Repo Owner, Repo Name and Main folder are set using the Variables feature but can be replaced with the Config
node in the subworkflow. \n\nThe workflow runs calls itself to help reduce memory usage, Once the workflow has completed it will send an optional notification to Slack.\n\n### Time to Run\nTested with 1423 workflows on 1.44.1
it took under 30 minutes for the first run and under 12 minutes once the initial run is complete.”,
“height”: 477,
“width”: 385,
“color”: 4
},
“id”: “9e2412f6-df25-4c12-8faf-0200558b537c”,
“name”: “Sticky Note1”,
“type”: “n8n-nodes-base.stickyNote”,
“position”: [
380,
180
],
“typeVersion”: 1
},
{
“parameters”: {
“content”: “## Main workflow loop”,
“height”: 416.1856906618075,
“width”: 1272.6408145680155,
“color”: 7
},
“id”: “00fdb977-4f3e-49f6-81c3-bc7f9520914f”,
“name”: “Sticky Note2”,
“type”: “n8n-nodes-base.stickyNote”,
“position”: [
820,
240
],
“typeVersion”: 1
},
{
“parameters”: {
“select”: “channel”,
“channelId”: {
“__rl”: true,
“value”: “C08BP8GSWLR”,
“mode”: “list”,
“cachedResultName”: “dc_n8n_backups”
},
“text”: “=:information_source: Starting Workflow Backup [{{ $execution.id }}]”,
“otherOptions”: {
“includeLinkToWorkflow”: false
}
},
“id”: “0c00a374-566a-49c7-80de-66a991c4bf69”,
“name”: “Starting Message”,
“type”: “n8n-nodes-base.slack”,
“position”: [
1100,
420
],
“webhookId”: “c02eb407-5547-4aa0-9ebf-46dab67b63b6”,
“typeVersion”: 2.2,
“credentials”: {
“slackApi”: {
“id”: “l0nLVuU2VrUBtbxK”,
“name”: “Slack account”
}
}
},
{
“parameters”: {
“workflowId”: “={{ $workflow.id }}”,
“mode”: “each”,
“options”: {}
},
“id”: “eb7d15be-7f5d-4e39-837b-06d740685af3”,
“name”: “Execute Workflow”,
“type”: “n8n-nodes-base.executeWorkflow”,
“position”: [
1680,
440
],
“typeVersion”: 1,
“onError”: “continueErrorOutput”
},
{
“parameters”: {
“select”: “channel”,
“channelId”: {
“__rl”: true,
“mode”: “name”,
“value”: “#notifications”
},
“text”: “=✅ Backup has completed - {{ $(‘n8n’).all().length }} workflows have been processed.”,
“otherOptions”: {}
},
“id”: “c831a0eb-95e1-46b3-bbf8-5d5bd928ca0a”,
“name”: “Completed Notification”,
“type”: “n8n-nodes-base.slack”,
“position”: [
1680,
260
],
“webhookId”: “a0c6e8c8-5d71-40fa-b02b-63a7ed5726c4”,
“executeOnce”: true,
“typeVersion”: 2.2,
“credentials”: {
“slackApi”: {
“id”: “l0nLVuU2VrUBtbxK”,
“name”: “Slack account”
}
}
},
{
“parameters”: {
“select”: “channel”,
“channelId”: {
“__rl”: true,
“mode”: “name”,
“value”: “#notifications”
},
“text”: “=:x: Failed to backup {{ $(‘Loop Over Items’).item.json.id }}”,
“otherOptions”: {
“includeLinkToWorkflow”: false
}
},
“id”: “00864cb8-c8e4-4324-be1b-7d093e1bc3bf”,
“name”: “Failed Flows”,
“type”: “n8n-nodes-base.slack”,
“position”: [
1880,
460
],
“webhookId”: “2a092edb-de12-490f-931b-34d70e7d7696”,
“typeVersion”: 2.2,
“credentials”: {
“slackApi”: {
“id”: “l0nLVuU2VrUBtbxK”,
“name”: “Slack account”
}
}
},
{
“parameters”: {
“resource”: “file”,
“operation”: “get”,
“owner”: {
“__rl”: true,
“mode”: “”,
“value”: “={{ $(‘Config’).first().item.repo_owner }}”
},
“repository”: {
“__rl”: true,
“mode”: “”,
“value”: “={{ $(‘Config’).first().item.repo_name }}”
},
“filePath”: “={{ $(‘Config’).first().item.repo_path }}{{ $(‘Execute Workflow Trigger’).first().json.createdAt.split(‘-’)[0] }}/{{ $(‘Execute Workflow Trigger’).first().json.createdAt.split(‘-’)[1] }}/{{$json.id}}.json”,
“asBinaryProperty”: false,
“additionalParameters”: {}
},
“id”: “e4d70af5-5c21-4340-8054-7ba0203f3ee1”,
“name”: “Get file data”,
“type”: “n8n-nodes-base.github”,
“position”: [
620,
800
],
“typeVersion”: 1,
“alwaysOutputData”: true,
“credentials”: {
“githubApi”: {
“id”: “NYCmP55BOYeWZooP”,
“name”: “GitHub account”
}
},
“continueOnFail”: true
},
{
“parameters”: {
“assignments”: {
“assignments”: [
{
“id”: “8f6d1741-772f-462a-811f-4c334185e4f0”,
“name”: “repo_owner”,
“type”: “string”,
“value”: “={{ $env.repo_owner }}”
},
{
“id”: “8cac215c-4fd7-422f-9fd2-6b2d1e5e0383”,
“name”: “=repo_name”,
“type”: “string”,
“value”: “={{ $env.repo_name }}”
},
{
“id”: “eee305e9-4164-462a-86bd-80f0d58a31ae”,
“name”: “repo_path”,
“type”: “string”,
“value”: “={{ $env.repo_path }}”
}
]
},
“includeOtherFields”: true,
“options”: {}
},
“id”: “42ad4762-26fb-4686-9016-729e95c95324”,
“name”: “Config”,
“type”: “n8n-nodes-base.set”,
“position”: [
620,
1080
],
“typeVersion”: 3.4
}
],
“pinData”: {},
“connections”: {
“n8n”: {
“main”: [
[
{
“node”: “Loop Over Items”,
“type”: “main”,
“index”: 0
}
]
]
},
“Config”: {
“main”: [
[
{
“node”: “Get file data”,
“type”: “main”,
“index”: 0
},
{
“node”: “Merge Items”,
“type”: “main”,
“index”: 1
}
]
]
},
“Get File”: {
“main”: [
[
{
“node”: “Merge Items”,
“type”: “main”,
“index”: 0
}
]
]
},
“File is new”: {
“main”: [
[
{
“node”: “Create new file”,
“type”: “main”,
“index”: 0
}
]
]
},
“Merge Items”: {
“main”: [
[
{
“node”: “isDiffOrNew”,
“type”: “main”,
“index”: 0
}
]
]
},
“isDiffOrNew”: {
“main”: [
[
{
“node”: “Create sub path”,
“type”: “main”,
“index”: 0
}
]
]
},
“Check Status”: {
“main”: [
[
{
“node”: “Same file - Do nothing”,
“type”: “main”,
“index”: 0
}
],
[
{
“node”: “File is different”,
“type”: “main”,
“index”: 0
}
],
[
{
“node”: “File is new”,
“type”: “main”,
“index”: 0
}
]
]
},
“Failed Flows”: {
“main”: [
[
{
“node”: “Loop Over Items”,
“type”: “main”,
“index”: 0
}
]
]
},
“Get file data”: {
“main”: [
[
{
“node”: “If file too large”,
“type”: “main”,
“index”: 0
}
]
]
},
“Create new file”: {
“main”: [
[
{
“node”: “Return”,
“type”: “main”,
“index”: 0
}
]
]
},
“Create sub path”: {
“main”: [
[
{
“node”: “Check Status”,
“type”: “main”,
“index”: 0
}
]
]
},
“Loop Over Items”: {
“main”: [
[
{
“node”: “Completed Notification”,
“type”: “main”,
“index”: 0
}
],
[
{
“node”: “Execute Workflow”,
“type”: “main”,
“index”: 0
}
]
]
},
“Execute Workflow”: {
“main”: [
[
{
“node”: “Loop Over Items”,
“type”: “main”,
“index”: 0
}
],
[
{
“node”: “Failed Flows”,
“type”: “main”,
“index”: 0
}
]
]
},
“Schedule Trigger”: {
“main”: [
[
{
“node”: “Starting Message”,
“type”: “main”,
“index”: 0
}
]
]
},
“Starting Message”: {
“main”: [
[
{
“node”: “n8n”,
“type”: “main”,
“index”: 0
}
]
]
},
“File is different”: {
“main”: [
[
{
“node”: “Edit existing file”,
“type”: “main”,
“index”: 0
}
]
]
},
“If file too large”: {
“main”: [
[
{
“node”: “Get File”,
“type”: “main”,
“index”: 0
}
],
[
{
“node”: “Merge Items”,
“type”: “main”,
“index”: 0
}
]
]
},
“Edit existing file”: {
“main”: [
[
{
“node”: “Return”,
“type”: “main”,
“index”: 0
}
]
]
},
“On clicking ‘execute’”: {
“main”: [
[
{
“node”: “Starting Message”,
“type”: “main”,
“index”: 0
}
]
]
},
“Same file - Do nothing”: {
“main”: [
[
{
“node”: “Return”,
“type”: “main”,
“index”: 0
}
]
]
},
“Execute Workflow Trigger”: {
“main”: [
[
{
“node”: “Config”,
“type”: “main”,
“index”: 0
}
]
]
}
},
“active”: false,
“settings”: {
“executionOrder”: “v1”
},
“versionId”: “d90d1014-c5ab-4f56-b042-4b6626094cce”,
“meta”: {
“templateId”: “1534”,
“templateCredsSetupCompleted”: true,
“instanceId”: “6133dc0aeb42b1a820b4fe5506562a5d8f57b362268ee2db19989cac2b6d4079”
},
“id”: “0whrsIuwJPMuvAWS”,
“tags”: [
{
“createdAt”: “2025-01-29T20:00:16.601Z”,
“updatedAt”: “2025-01-29T20:00:16.601Z”,
“id”: “39pITprfX87g49oe”,
“name”: “Backups”
},
{
“createdAt”: “2025-01-29T20:00:23.839Z”,
“updatedAt”: “2025-01-29T20:00:23.839Z”,
“id”: “vBolf9BV29vPEq2g”,
“name”: “GitHub”
},
{
“createdAt”: “2025-01-29T21:43:47.621Z”,
“updatedAt”: “2025-01-29T21:43:47.621Z”,
“id”: “sO0pHICOfLUDsxSH”,
“name”: “DevOps”
},
{
“createdAt”: “2025-01-31T08:28:20.131Z”,
“updatedAt”: “2025-01-31T08:28:20.131Z”,
“id”: “aeorJlhTcQBzt0Tq”,
“name”: “DC_DEV”
}
]
}/>
In doing so, I have hit an early snag in that I cannot resolve where the Header credential failing to connect and authorize in the n8n getAll:workflow action. I have tried everything and all combinations of API Key values I can think of with both my Settings > n8n API > My API Key, as well as an alternative Primary Variable > N8N_ENCRIPTION_KEY value in Railway. Interestly, both key values show green as successfully connected on the self-test in my Credentials, so I’m obviously missing something here.
This is the error I am receiving, which I believe is similar when tying both the n8n API and Railway Primary Key values:
{
“errorMessage”: “The resource you are requesting could not be found”,
“errorDescription”: “Request failed with status code 404”,
“errorDetails”: {
“rawErrorMessage”: [
“Request failed with status code 404”
],
“httpCode”: “404”
},
“n8nDetails”: {
“nodeName”: “n8n”,
“nodeType”: “n8n-nodes-base.n8n”,
“nodeVersion”: 1,
“resource”: “workflow”,
“operation”: “getAll”,
“itemIndex”: 0,
“runIndex”: 0,
“time”: “2/3/2025, 2:53:23 PM”,
“n8nVersion”: “1.76.1 (Self Hosted)”,
“binaryDataMode”: “default”,
“stackTrace”: [
“NodeApiError: The resource you are requesting could not be found”,
" at ExecuteSingleContext.httpRequestWithAuthentication (/usr/local/lib/node_modules/n8n/node_modules/n8n-core/dist/node-execute-functions.js:1199:15)“,
" at processTicksAndRejections (node:internal/process/task_queues:95:5)”,
" at ExecuteSingleContext.httpRequestWithAuthentication (/usr/local/lib/node_modules/n8n/node_modules/n8n-core/dist/node-execute-functions.js:1476:20)“,
" at RoutingNode.rawRoutingRequest (/usr/local/lib/node_modules/n8n/node_modules/n8n-core/dist/execution-engine/routing-node.js:319:29)”,
" at ExecuteSingleContext.makeRoutingRequest (/usr/local/lib/node_modules/n8n/node_modules/n8n-core/dist/execution-engine/routing-node.js:332:20)“,
" at ExecuteSingleContext.cursorPagination (/usr/local/lib/node_modules/n8n/node_modules/n8n-nodes-base/dist/nodes/N8n/GenericFunctions.js:59:28)”,
" at RoutingNode.makeRoutingRequest (/usr/local/lib/node_modules/n8n/node_modules/n8n-core/dist/execution-engine/routing-node.js:339:32)“,
" at async Promise.allSettled (index 0)”,
" at RoutingNode.runNode (/usr/local/lib/node_modules/n8n/node_modules/n8n-core/dist/execution-engine/routing-node.js:140:35)“,
" at WorkflowExecute.runNode (/usr/local/lib/node_modules/n8n/node_modules/n8n-core/dist/execution-engine/workflow-execute.js:683:23)”
]
}
}
The base URL in Railway is: https://primary-production-b0359.up.railway.app, and I beleive the correct endpoint should be https://primary-production-b0359.up.railway.app/rest/workflows through the n8n API.
Apologies for this very long thread, and hope someone is able to assist with guidence even if it’s to dirct me to Railway support should that be the proper action.
Thanks - DC