Abschnitt 1 - Schritt 2.5 - 422 Error bei HTTP Post Request (SendToPriorityQueue Node)

  • n8n-Version: 2.30.7 (Cloud)
  • Datenbank (Standard: SQLite): Standard
  • n8n EXECUTIONS_PROCESS-Einstellung (Standard: own, main): Standard
  • n8n wird ausgeführt über (Docker, npm, n8n cloud, Desktop-App): n8n Cloud
  • Betriebssystem: Windows 11

Hallo,

Obwohl mein anderer HTTP POST Request-Node ordnungsgemäß funktioniert, gibt mein SendToPriorityQueue-Node den folgenden Fehler zurück:

Ihre Anfrage ist ungültig oder konnte vom Dienst nicht verarbeitet werden [Element 0]

Ein oder mehrere erforderliche Parameter fehlen. Stellen Sie sicher, dass Sie Ihre assessment_id und Bestelldaten senden.

Ich dachte, es könnte ein Problem mit der Eingabe sein, da der einzige Unterschied zwischen diesem und dem funktionierenden HTTP-POST-Request darin besteht, dass die Eingabe im ersten Fall eine Liste von Bestellungen ist, die in einem definierten Objekt namens enriched_orders eingeschlossen ist, während in der fehlgeschlagenen POST-Anfrage die Eingabe ein undefiniertes Array von Bestellungen ist – es gibt kein umhüllendes Objekt, aber die Kursanweisungen erfordern es nicht, daher kann ich nicht herausfinden, was ich falsch gemacht habe.

Hier ist das JSON für die POST-Anfrage:

{
"body": {
"order_id": "ORD-014",
"customer_id": "CUST-004",
"customer_name": "DataFlow Ltd",
"subscription": "Enterprise"
},
"headers": {
"x-assessment-id": "0a238a9ad1137d3bf5cf2df2e7355e3b",
"verborgen": "verborgen",
"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

Dieses Options-Dump ist n8ns internes Request-Objekt, und zwei Dinge darin fallen auf: “json”: false und es gibt keinen Content-Type-Header irgendwo in der Liste.

Der Endpoint empfängt also sehr wahrscheinlich einen Body, den er nicht als JSON parsed, was genau den „ein oder mehrere erforderliche Parameter fehlen"-Fehler erzeugt, den du siehst, obwohl die Felder deutlich in der Payload vorhanden sind. Der Server findet order_id nicht, weil er den Body nie in Felder geparst hat.

Ich würde deine beiden HTTP-Request-Knoten speziell bei Body Content Type vergleichen (Send Body, dann Body Content Type, dann JSON) und nicht bei der Form der Daten. Wenn der funktionierende Knoten auf JSON eingestellt ist und dieser nicht, erklärt dieser Unterschied allein das Problem, und der enriched_orders-Wrapper ist eine Nebelkerze.

Zwei Dinge, die es schnell klären würden:

  1. Aktiviere „Include Response Headers and Status