Academy courses N8N101/N8N103: data endpoints return HTTP 200 with an empty body, which makes the pipeline exercises impossible to complete

Describe the problem/error/question

I’m working through the Academy courses (N8N101 and N8N103) and I’m blocked on
two exercises by what looks like a server-side issue on the Academy’s training
endpoints rather than a workflow problem. Posting full evidence so it’s
reproducible.
Setup that IS working (why I don’t think this is on my end):

  • Header Auth credential with the shared course API key, sent as X-API-Key
  • My X-Assessment-ID sent on every request: e92ae2fa551a70bccfed3545ad3aec70
  • Course registration completed successfully
  • All three N8N103 Section 1 agent tool endpoints work and return 200:
    tools/order-status, tools/customer-info, tools/product-info
    The problem — two endpoints that are supposed to RETURN data respond 200 OK
    with a zero-byte body:
  1. https://learn.app.n8n.cloud/webhook/course/n8n101/sales-data
    (the “Building a Sales Data Pipeline” exercise)
  2. https://learn.app.n8n.cloud/webhook/course/n8n103/unreliable-api
    (the Section 2 debugging/retry exercise)
    What I’ve ruled out (tested Aug 4, ~21:20-22:30 MST):
  • Wrong auth: a deliberately wrong API key returns 403 “Authorization data is
    wrong!” — so the 200 with the real key means authentication succeeds.
  • Missing assessment ID: without it the tool endpoints return
    422 [Validation Failed] — so the header is being read.
  • Wrong verb: POST to sales-data returns 404 “This webhook is not registered
    for POST requests. Did you mean to make a GET request?” — GET is correct.
  • Query variants: ?assessment_id=…, ?assessmentId=…, ?limit=10 and an
    Accept: application/json header all return the same 200 with 0 bytes.
    Correct key, correct assessment header, correct verb — 200 OK, empty body, on
    exactly the two endpoints whose job is to return data.
    Could someone from the Academy team check whether the mock data source behind
    sales-data and unreliable-api is down? And if an empty body is expected there,
    what should the workflows be receiving? Happy to provide execution timestamps
    or run any diagnostic. The courses themselves have been excellent.

What is the error message (if any)?There is no error at the failing endpoints themselves — they return HTTP 200

with an empty body, which is the problem.

The downstream effects inside the exercises:

  • N8N101: Split Out receives an object with no “orders” field, produces 0
    items, and the pipeline ends after two nodes with no error.
  • N8N103: the workflow POSTs extracted fields to course/n8n103/retry-result,
    which correctly rejects with 422 “[Validation Failed]” — because order_id,
    customer_name and confirmation_code all resolve to nothing from the empty
    upstream response.

Please share your workflow

Minimal reproduction (add your own Header Auth credential with the course API
key — credential values are not exported with the JSON):
{
  "nodes": [
    {
      "parameters": {},
      "name": "When clicking Test workflow",
      "type": "n8n-nodes-base.manualTrigger",
      "typeVersion": 1,
      "position": [0, 0]
    },
    {
      "parameters": {
        "url": "https://learn.app.n8n.cloud/webhook/course/n8n101/sales-data",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "X-Assessment-ID",
              "value": "e92ae2fa551a70bccfed3545ad3aec70"
            }
          ]
        },
        "options": {}
      },
      "name": "GetSalesData",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [220, 0]
    }
  ],
  "connections": {
    "When clicking Test workflow": {
      "main": [[{ "node": "GetSalesData", "type": "main", "index": 0 }]]
    }
  }
}
The same behavior reproduces with plain curl, so it isn't node configuration:
GET with X-API-Key + X-Assessment-ID → HTTP 200, Content-Length 0.

Share the output returned by the last node

One item, empty object:
[
{}
]
Expected (per the exercise): a JSON body containing an “orders” array for
sales-data; order data for unreliable-api.

Information on your n8n setup

  • n8n version:
  • Database (default: SQLite):
  • n8n EXECUTIONS_PROCESS setting (default: own, main):
  • Running n8n via (Docker, npm, n8n cloud, desktop app):
  • Operating system:

Hello,

I’ve copied your node and it is working, please try again. We did have an issue with our API 36 hours ago but that was resolved.

cheers