Corrections to make in N8N102 section 2 hands-on exercice

Hello to the community,

I am going through the N8N102 course and getting to the section 2 hands-on practice.

I have found a few mistakes in the instructions, probably coming from the legacy foundations courses.

  1. The webhook tester sends an invalid String for total instead of a Number in run n°1. This prevents the workflow from executing correctly, unless the “Convert types when required” option is checked.

  2. In the “InsertOrder” node of the sub-workflow called, I believe “status” should be set to “received”. I have tried calling the ProcessingAPI with the “processed” status and am receiving a “failed” status back.

  3. The “CallProcessingAPI” webhook URL is https://learn.app.n8n.cloud/webhook/course/foundations/process-order. It should be https://learn.app.n8n.cloud/webhook/course/n8n102/process-order

  4. After completing Step 3, it seems the Step 2 test doesn’t pass anymore. I wanted to check that all 3 test units passed and had to restore main workflow to previous published version for it to pass.

Hello,

Thanks for pointing these out.

  1. This has been fixed
  2. This has been updated
  3. This has been updated.
  4. The full workflow from step 3 should work across all tests, I just tested mine and it is passing all 3 steps.

cheers,

Hey,

Thanks for this ! I am still getting the same " Wrong type: ‘1’ is a string but was expecting a number [condition 1, item 0]" error when testing step 1 of the Webhook Tester.

Here are my first two nodes :

I cannot figure out the part I am missing for this node to work :sweat_smile:

Hello,

I’ve copied your two nodes, added the required respond to webhook nodes after and it is successfully passing. Our tester is sending the correct types.

Can you please provide the entire log of what is being sent to your endpoint so that I can check?

cheers,

Hello, could you please help? I can’t move past Step 1. This is the error I am getting

This is what my workflow looks like:

[
{
“headers”: {
“host”: “mbakari.app.n8n.cloud”,
“user-agent”: “n8n”,
“content-length”: “46”,
“accept”: “application/json,text/html,application/xhtml+xml,application/xml,text/;q=0.9, image/;q=0.8, /;q=0.7”,
“accept-encoding”: “gzip, br”,
“cdn-loop”: “cloudflare; loops=1; subreqs=1”,
“cf-connecting-ip”: “4.184.78.241”,
“cf-ew-via”: “15”,
“cf-ipcountry”: “DE”,
“cf-ray”: “a1188fed6cb2bb61-FRA”,
“cf-visitor”: “{“scheme”:“https”}”,
“cf-worker”: “n8n.cloud”,
“content-type”: “application/json”,
“x-api-key”: “pFT1jtDoVHAmVan$7eb6”,
“x-forwarded-for”: “4.184.78.241, 172.68.192.157”,
“x-forwarded-host”: “mbakari.app.n8n.cloud”,
“x-forwarded-port”: “443”,
“x-forwarded-proto”: “https”,
“x-forwarded-server”: “traefik-prod-users-swc-20-df7569f7f-6tb77”,
“x-is-trusted”: “yes”,
“x-real-ip”: “4.184.78.241”
},
“params”: {},
“query”: {},
“body”: {
“order_id”: “1”,
“total”: “1”,
“customer_id”: “1”
},
“webhookUrl”: “https://mbakari.app.n8n.cloud/webhook-test/course/n8n102/new-order”,
“executionMode”: “test”
}
]

same issue cant proceed coz its not returning anything for the 400

Yikes! Would they fix it? Are we stuck? What do we do?

Update: The n8n team has fixed the issue, so this trick is no longer necessary.

Hi,

I ran into the same issue but found this workaround, so we can finish sections 2 and 3 and avoid wasting this weekend waiting for an official fix. Hope you find it helpful.

We could enable the button Run Step 2 Tests without completing Step 1 first.

Result:

I found bug on this one can developers fix this issue? Cant pass the course trought

I am stuck at Node: SendToPriorityQueue, I wasted my whole day today trying to fix it but I cant past this point which is halting my progress in the course forever, sending full json and error text followed

Full JSON:
{
“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”
}
}

Error output: *****
{
“errorMessage”: “Your request is invalid or could not be processed by the service [item 0]”,
“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, 6:29:18 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"
]
}
}

I also have exactly this issue

I’m having the same issue with this one, please fix it.

Can anyone who is having the error with the order issue move here? N8n: N8N102 Integrations: APIs & Connected Workflows - #5 by achamm

Hi All,

Apologies for the delay, this was a very intersting bug that took a while to track down, fix and test. This has been fixed.

cheers,

Hi Jamie,

Thanks a lot for the follow-up ! I can see all executions are passing correctly now.

The Webhook Tester still fails step 1 if steps 2 and 3 have been implemented. The webhook response doesn’t match the expected response, sending

{ 
"order_id": 
"VALIDURL-TEST",
   
"processing_result": 
"processed",
  
"processed_at": 
"\"2026-06-28T06:48:25.712Z\"",
  
"stored": 
"true",
  
"stored_order": 
"{\"order_id\":\"VALIDURL-TEST\",\"customer_id\":\"VALIDURL-TEST\",\"total\":0,\"status\":\"processed\",\"received_at\":\"2026-06-27T19:42:24.838Z\",\"processed_at\":\"2026-06-28T06:48:25.712Z\",\"id\":36,\"createdAt\":\"2026-06-27T19:42:24.846Z\",\"updatedAt\":\"2026-06-27T19:42:26.643Z\"}"
}

instead of the expected

{
  "status": "accepted",
  "order_id": "{{ $('WebhookNewOrder').item.json.body.order_id }}",
  "message": "Order received and queued for processing"
}

If someone needs to re-verify their work through the Webhook Tester after having completed step 2 or 3 of the exercise, they will get stuck at step 1 validation.

I don’t know if this needs correcting, but I wanted to bring it to your attention.