{
“nodes”: [
{
“parameters”: {},
“type”: “n8n-nodes-base.manualTrigger”,
“typeVersion”: 1,
“position”: [
-512,
208
],
“id”: “c94cabc3-98bb-414a-9f7a-57d043c3a748”,
“name”: “TriggerManual”
},
{
“parameters”: {
“url”: “https://learn.app.n8n.cloud/webhook/course/n8n102/orders”,
“authentication”: “genericCredentialType”,
“genericAuthType”: “httpHeaderAuth”,
“sendHeaders”: true,
“headerParameters”: {
“parameters”: [
{
“name”: “X-Assessment-ID”,
“value”: “4bc05b1b9cc576b8cd6cd3cccc29a8da”
}
]
},
“options”: {
“pagination”: {
“pagination”: {
“parameters”: {
“parameters”: [
{
“name”: “page”,
“value”: “={{ $pageCount + 1 }}”
}
]
}
}
}
}
},
“type”: “n8n-nodes-base.httpRequest”,
“typeVersion”: 4.4,
“position”: [
-288,
112
],
“id”: “40e35e92-29c4-4b0b-b670-79d3ede50dd5”,
“name”: “GetOrders”,
“credentials”: {
“httpHeaderAuth”: {
“id”: “vMHAPkPKaravjcEZ”,
“name”: “n8n Academy API Key”
}
}
},
{
“parameters”: {
“url”: “https://learn.app.n8n.cloud/webhook/course/n8n102/customers”,
“authentication”: “genericCredentialType”,
“genericAuthType”: “httpHeaderAuth”,
“sendHeaders”: true,
“headerParameters”: {
“parameters”: [
{
“name”: “X-Assessment-ID”,
“value”: “4bc05b1b9cc576b8cd6cd3cccc29a8da”
}
]
},
“options”: {}
},
“type”: “n8n-nodes-base.httpRequest”,
“typeVersion”: 4.4,
“position”: [
-288,
304
],
“id”: “3fad8be8-4433-49ec-8bad-bfc781e676ba”,
“name”: “GetCustomers”,
“credentials”: {
“httpHeaderAuth”: {
“id”: “vMHAPkPKaravjcEZ”,
“name”: “n8n Academy API Key”
}
}
},
{
“parameters”: {
“mode”: “combine”,
“fieldsToMatchString”: “customer_id”,
“joinMode”: “enrichInput1”,
“options”: {}
},
“type”: “n8n-nodes-base.merge”,
“typeVersion”: 3.2,
“position”: [
-64,
208
],
“id”: “fc2ed990-2d94-4a4b-aed3-79ed3688e53c”,
“name”: “MergeOrdersCustomers”
},
{
“parameters”: {
“aggregate”: “aggregateAllItemData”,
“destinationFieldName”: “enriched_orders”,
“options”: {}
},
“type”: “n8n-nodes-base.aggregate”,
“typeVersion”: 1,
“position”: [
160,
-16
],
“id”: “a1934843-0eaa-4990-8a3f-12fa0f60c4bd”,
“name”: “AggregateOrders”
},
{
“parameters”: {
“method”: “POST”,
“url”: “https://learn.app.n8n.cloud/webhook/course/n8n102/orders-queue”,
“authentication”: “genericCredentialType”,
“genericAuthType”: “httpHeaderAuth”,
“sendHeaders”: true,
“headerParameters”: {
“parameters”: [
{
“name”: “X-Assessment-ID”,
“value”: “4bc05b1b9cc576b8cd6cd3cccc29a8da”
}
]
},
“sendBody”: true,
“bodyParameters”: {
“parameters”: [
{
“name”: “enriched_orders”,
“value”: “={{ $json.enriched_orders }}”
}
]
},
“options”: {}
},
“type”: “n8n-nodes-base.httpRequest”,
“typeVersion”: 4.4,
“position”: [
384,
-16
],
“id”: “0cf07ce8-68ad-4fec-bdd5-9e3e593795d6”,
“name”: “SendToOrdersQueue”,
“credentials”: {
“httpHeaderAuth”: {
“id”: “vMHAPkPKaravjcEZ”,
“name”: “n8n Academy API Key”
}
}
},
{
“parameters”: {
“conditions”: {
“options”: {
“caseSensitive”: true,
“leftValue”: “”,
“typeValidation”: “strict”,
“version”: 3
},
“conditions”: [
{
“id”: “92dde10e-a0ac-4901-985e-6a0e8a1963e4”,
“leftValue”: “={{ $json.subscription }}”,
“rightValue”: “Enterprise”,
“operator”: {
“type”: “string”,
“operation”: “equals”,
“name”: “filter.operator.equals”
}
}
],
“combinator”: “and”
},
“options”: {}
},
“type”: “n8n-nodes-base.if”,
“typeVersion”: 2.3,
“position”: [
160,
304
],
“id”: “cec1001d-a5b4-4e84-9470-06d40d4f90b4”,
“name”: “CheckSubscriptionTier”
},
{
“parameters”: {
“rules”: {
“values”: [
{
“conditions”: {
“options”: {
“caseSensitive”: true,
“leftValue”: “”,
“typeValidation”: “strict”,
“version”: 3
},
“conditions”: [
{
“leftValue”: “={{ $json.region }}”,
“rightValue”: “north”,
“operator”: {
“type”: “string”,
“operation”: “equals”
},
“id”: “9585e06c-4bf6-4422-b8d9-c65c8aa315ad”
}
],
“combinator”: “and”
},
“renameOutput”: true,
“outputKey”: “North”
},
{
“conditions”: {
“options”: {
“caseSensitive”: true,
“leftValue”: “”,
“typeValidation”: “strict”,
“version”: 3
},
“conditions”: [
{
“id”: “4002a616-dbfd-4991-a1e0-72c888ac3bd9”,
“leftValue”: “={{ $json.region }}”,
“rightValue”: “south”,
“operator”: {
“type”: “string”,
“operation”: “equals”,
“name”: “filter.operator.equals”
}
}
],
“combinator”: “and”
},
“renameOutput”: true,
“outputKey”: “South”
},
{
“conditions”: {
“options”: {
“caseSensitive”: true,
“leftValue”: “”,
“typeValidation”: “strict”,
“version”: 3
},
“conditions”: [
{
“id”: “9f1f69c9-19bc-4738-a1e2-7cc2be1ba95f”,
“leftValue”: “={{ $json.region }}”,
“rightValue”: “e”,
“operator”: {
“type”: “string”,
“operation”: “equals”,
“name”: “filter.operator.equals”
}
}
],
“combinator”: “and”
},
“renameOutput”: true,
“outputKey”: “East”
},
{
“conditions”: {
“options”: {
“caseSensitive”: true,
“leftValue”: “”,
“typeValidation”: “strict”,
“version”: 3
},
“conditions”: [
{
“id”: “6a7b5b7f-1a45-4b11-9efb-5b3b7cbe7e76”,
“leftValue”: “={{ $json.region }}”,
“rightValue”: “west”,
“operator”: {
“type”: “string”,
“operation”: “equals”,
“name”: “filter.operator.equals”
}
}
],
“combinator”: “and”
},
“renameOutput”: true,
“outputKey”: “West”
}
]
},
“options”: {
“fallbackOutput”: “extra”
}
},
“type”: “n8n-nodes-base.switch”,
“typeVersion”: 3.4,
“position”: [
384,
368
],
“id”: “4cca393c-d01e-4552-a4c4-60f20c5d9a76”,
“name”: “RouteByRegion”
},
{
“parameters”: {
“conditions”: {
“options”: {
“caseSensitive”: true,
“leftValue”: “”,
“typeValidation”: “strict”,
“version”: 3
},
“conditions”: [
{
“id”: “6f605cb6-29ce-47ad-adc2-ae26af637db2”,
“leftValue”: “={{ $json.status }}”,
“rightValue”: “delivered”,
“operator”: {
“type”: “string”,
“operation”: “notEquals”
}
}
],
“combinator”: “and”
},
“options”: {}
},
“type”: “n8n-nodes-base.filter”,
“typeVersion”: 2.3,
“position”: [
384,
176
],
“id”: “cbeb6ae5-04d7-42bb-b562-a7dc31997144”,
“name”: “FilterDelivered”
},
{
“parameters”: {
“method”: “POST”,
“url”: “https://learn.app.n8n.cloud/webhook/course/n8n102/priority-queue”,
“authentication”: “genericCredentialType”,
“genericAuthType”: “httpHeaderAuth”,
“sendHeaders”: true,
“headerParameters”: {
“parameters”: [
{
“name”: “X-Assessment-ID”,
“value”: “4bc05b1b9cc576b8cd6cd3cccc29a8da”
}
]
},
“sendBody”: true,
“bodyParameters”: {
“parameters”: [
{
“name”: “order_id”,
“value”: “={{ $json.order_id }}”
},
{
“name”: “customer_id”,
“value”: “={{ $json.customer_id }}”
},
{
“name”: “company_name”,
“value”: “={{ $json.customer_name }}”
},
{
“name”: “subscription”,
“value”: “={{ $json.subscription }}”
}
]
},
“options”: {}
},
“type”: “n8n-nodes-base.httpRequest”,
“typeVersion”: 4.4,
“position”: [
704,
176
],
“id”: “648920ef-df9c-41ad-a978-70b082ce97d9”,
“name”: “SendToPriorityQueue”,
“credentials”: {
“httpHeaderAuth”: {
“id”: “vMHAPkPKaravjcEZ”,
“name”: “n8n Academy API Key”
}
}
}
],
“connections”: {
“TriggerManual”: {
“main”: [
[
{
“node”: “GetOrders”,
“type”: “main”,
“index”: 0
},
{
“node”: “GetCustomers”,
“type”: “main”,
“index”: 0
}
]
]
},
“GetOrders”: {
“main”: [
[
{
“node”: “MergeOrdersCustomers”,
“type”: “main”,
“index”: 0
}
]
]
},
“GetCustomers”: {
“main”: [
[
{
“node”: “MergeOrdersCustomers”,
“type”: “main”,
“index”: 1
}
]
]
},
“MergeOrdersCustomers”: {
“main”: [
[
{
“node”: “AggregateOrders”,
“type”: “main”,
“index”: 0
},
{
“node”: “CheckSubscriptionTier”,
“type”: “main”,
“index”: 0
}
]
]
},
“AggregateOrders”: {
“main”: [
[
{
“node”: “SendToOrdersQueue”,
“type”: “main”,
“index”: 0
}
]
]
},
“SendToOrdersQueue”: {
“main”: [
]
},
“CheckSubscriptionTier”: {
“main”: [
[
{
“node”: “FilterDelivered”,
“type”: “main”,
“index”: 0
}
],
[
{
“node”: “RouteByRegion”,
“type”: “main”,
“index”: 0
}
]
]
},
“FilterDelivered”: {
“main”: [
[
{
“node”: “SendToPriorityQueue”,
“type”: “main”,
“index”: 0
}
]
]
}
},
“pinData”: {},
“meta”: {
“instanceId”: “1b202188b62737e64678f469a8e86b98e8d2c2147255e95f1e4af4dc019b5e9d”
}
}
@Usman_Waheed the workflow imports fine here, so i need to know whats actually breaking, which node throws and the exact error it shows. if its one of the queue steps (SendToOrdersQueue / SendToPriorityQueue) paste what that node returns and ill pin it.
Here the output of node: SendToPriorityQueue that has the issue
{
“errorMessage”: “Your request is invalid or could not be processed by the service”,
“errorDescription”: “Invalid order_id. Please ensure you are sending the correct order_id”,
“errorDetails”: {
“rawErrorMessage”: [
“422 - “{\“error\”:\“Invalid order_id. Please ensure you are sending the correct order_id\”}””
],
“httpCode”: “422”
},
“n8nDetails”: {
“nodeName”: “SendToPriorityQueue”,
“nodeType”: “n8n-nodes-base.httpRequest”,
“nodeVersion”: 4.4,
“itemIndex”: 0,
“time”: “6/26/2026, 5:47:45 PM”,
“n8nVersion”: “2.22.5 (Self Hosted)”,
“binaryDataMode”: “filesystem”,
“stackTrace”: [
“NodeApiError: Your request is invalid or could not be processed by the service”,
" at ExecuteContext.execute (C:\Users\Usman\AppData\Roaming\npm\node_modules\n8n\node_modules\n8n-nodes-base\nodes\HttpRequest\V3\HttpRequestV3.node.ts:849:16)“,
" at WorkflowExecute.executeNode (C:\Users\Usman\AppData\Roaming\npm\node_modules\n8n\node_modules\n8n-core\src\execution-engine\workflow-execute.ts:1053:9)”,
" at WorkflowExecute.runNode (C:\Users\Usman\AppData\Roaming\npm\node_modules\n8n\node_modules\n8n-core\src\execution-engine\workflow-execute.ts:1327:11)“,
" at C:\Users\Usman\AppData\Roaming\npm\node_modules\n8n\node_modules\n8n-core\src\execution-engine\workflow-execute.ts:1778:27”,
" at C:\Users\Usman\AppData\Roaming\npm\node_modules\n8n\node_modules\n8n-core\src\execution-engine\workflow-execute.ts:2426:11"
]
}
}
@Usman_Waheed ok i can see it in your json, SendToPriorityQueue maps order_id to {{ $json.order_id }}, but at that node that field is almost certainly resolving empty, which is exactly what the 422 means. open the node and check the input panel, the orders endpoint probably returns the id under a different name (often just id, not order_id) or the merge renamed it. remap order_id to whatever it actually shows as there and itll pass.
No it is fine, see this image
@Usman_Waheed yeah youre right, order_id is fine (ORD-005). look one row up though, status is “pending”, but that item came through FilterDelivered, so the filter isnt actually filtering, a delivered-only queue is getting a pending order and the api rejects it as invalid. check the FilterDelivered condition, it should only let status = delivered through. fix that and the pending ones like ORD-005 wont get sent.
I am correctly following the tutorial it asked me to follow steps indicated below, I even started everything from scratch but it seems the tutorial is not correct
Add a Filter node
- Rename it
FilterDelivered - Set the condition:
- Value 1:
{{ $json.status }} - Operation:
is not equal to - Value 2:
delivered
- Value 1:
- Execute the Filter node and see that you have 12 items instead of the 20 input items
- Add an HTTP Request node connected to the
FilterDeliverednode - Rename it to
SendToPriorityQueue
@Usman_Waheed youre right, the tutorial is wrong here. “is not equal to delivered” keeps the 12 NON-delivered orders (the pending ones) and sends those to the queue, so it rejects them as invalid. flip the condition to “is equal to delivered”, then only the 8 delivered orders go through and the 422 clears. the instructions just inverted it.
it shows 8 items coming into Sendpriorityqueue node, but it seems I cannot past this point as error never fixed after I run whole workflow. I even asked Gemini and it cant provide a proper fix. I already wasted my whole day today to get through this which is letting the course progress tuck.
here is the error now
From HTTP Request
Error code
422
Full message
422 - "{\"error\":\"Invalid order_id. Please ensure you are sending the correct order_id\"}"
Request
{ "body": { "order_id": "ORD-018", "customer_id": "CUST-007", "company_name": "Summit Enterprises", "subscription": "Enterprise" }, "headers": { "x-assessment-id": "4bc05b1b9cc576b8cd6cd3cccc29a8da", "**hidden**": "**hidden**", "accept": "application/json,text/html,application/xhtml+xml,application/xml,text/*;q=0.9, image/*;q=0.8, */*;q=0.7" }, "method": "POST", "uri": "https://learn.app.n8n.cloud/webhook/course/n8n102/priority-queue", "gzip": true, "rejectUnauthorized": true, "followRedirect": true, "resolveWithFullResponse": true, "sendCredentialsOnCrossOriginRedirect": false, "followAllRedirects": true, "timeout": 300000, "encoding": null, "json": false, "useStream": true }
Other info
Item Index
0
Node type
n8n-nodes-base.httpRequest
Node version
4.4 (Latest)
n8n version
2.22.5 (Self Hosted)
Time
6/26/2026, 6:11:40 PM
Stack trace
NodeApiError: Your request is invalid or could not be processed by the service at ExecuteContext.execute (C:\Users\Usman\AppData\Roaming\npm\node_modules\n8n\node_modules\n8n-nodes-base\nodes\HttpRequest\V3\HttpRequestV3.node.ts:849:16) at WorkflowExecute.executeNode (C:\Users\Usman\AppData\Roaming\npm\node_modules\n8n\node_modules\n8n-core\src\execution-engine\workflow-execute.ts:1053:9) at WorkflowExecute.runNode (C:\Users\Usman\AppData\Roaming\npm\node_modules\n8n\node_modules\n8n-core\src\execution-engine\workflow-execute.ts:1327:11) at C:\Users\Usman\AppData\Roaming\npm\node_modules\n8n\node_modules\n8n-core\src\execution-engine\workflow-execute.ts:1778:27 at C:\Users\Usman\AppData\Roaming\npm\node_modules\n8n\node_mod
@Usman_Waheed ok important, since a delivered order (ORD-018) gets the same 422, its not the status filter, its rejecting every order regardless, so the cause is how the request is sent not which orders. your dump shows json: false, so the body may not be going out as application/json, check Body Content Type = JSON on that node, or switch Body to raw and paste the JSON directly. if that still doesnt clear it, several people are stuck on this exact step so it may be the known exercise bug, worth flagging on the academy corrections thread.
Same thing was suggested by Gemini to resolve, but it ends only with error being changed to something else, OR back to original error. is there a way to by pass so that I can move to next steps and complete the course? And also tell me exactly where shall I report it with screenshots/json code
@Usman_Waheed they are having the same issue here N8n: N8N102 Integrations: APIs & Connected Workflows - #2 by Vonn_Villasor