`sendInBlueApi` vordefinierter Anmeldungstyp in HTTP Request-Knoten nach Upgrade auf v2.20.7 defekt — führt zu irreführendem DMARC 400-Fehler von Brevo API

Melde ein ähnliches Problem wie vor einem Jahr in HTTP Request Module Not Passing Authentication


Beschreibe das Problem/Fehler/die Frage

Nach dem Upgrade auf v2.20.7-exp.0 kann der HTTP Request-Knoten mit predefinedCredentialType: sendInBlueApi den api-key-Header stillschweigend nicht korrekt in Anfragen einbinden. Dieser Workflow war monatelang ohne Änderungen unsererseits erfolgreich - keine DNS-Änderungen, keine Payload-Änderungen, keine Brevo-Konfigurationsänderungen.

Die unterbrochene Authentifizierung führt dazu, dass die Brevo-API einen irreführenden 400 DMARC policy-Fehler anstelle eines 401 Unauthorized zurückgibt, was den Anschein eines Absender-/Domänenkonfigurationsproblems erweckt und extrem schwer zu diagnostizieren ist.

Das Wechseln zu Generic Credential Type → Header Authentication hat das Problem sofort mit demselben API-Schlüssel und demselben Payload gelöst - das bestätigt, dass der Fehler in der Art liegt, wie n8n die sendInBlueApi-Anmeldedaten in HTTP Request-Knoten einfügt.


Welche Fehlermeldung gibt es (falls vorhanden)?

NodeApiError: Bad request - please check your parameters
400 - "{\"code\":\"invalid_parameter\",\"message\":\"Unable to create/update campaign. Due to DMARC policy, you cannot use this sender. Please choose another sender.\"}"

Bitte teile deinen Workflow

{
  "nodes": [
    {
      "parameters": {
        "method": "POST",
        "url": "https://api.brevo.com/v3/emailCampaigns",
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "sendInBlueApi",
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={\n  \"name\": \"Test Campaign\",\n  \"templateId\": 1,\n  \"sender\": {\n    \"name\": \"Test Sender\",\n    \"email\": \"sender@yourdomain.com\"\n  },\n  \"subject\": \"Test subject\",\n  \"recipients\": {\n    \"listIds\": \n  },\n  \"scheduledAt\": \"{{ $now.plus({ minutes: 1 }).toISO() }}\"\n}",[1]
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.4,
      "position":,[2]
      "id": "79a604ee-c9da-405a-beb0-02f917556ae4",
      "name": "Create Brevo Campaign",
      "credentials": {
        "sendInBlueApi": {
          "id": "YOUR_CREDENTIAL_ID",
          "name": "Brevo account"
        }
      }
    }
  ],
  "connections": {},
  "pinData": {},
  "meta": {
    "templateCredsSetupCompleted": true
  }
}

Teile die Ausgabe des letzten Knotens

{
  "code": "invalid_parameter",
  "message": "Unable to create/update campaign. Due to DMARC policy, you cannot use this sender. Please choose another sender."
}

Beweis, dass dies ein n8n-Problem und nicht a Brevo-/DNS-Konfigurationsproblem ist:

  • Domain in Brevo vollständig authentifiziert (DKIM :white_check_mark:, DMARC :white_check_mark:, Absender verifiziert :white_check_mark:)
  • Ein DMARC-DNS-Datensatz, korrekt: v=DMARC1; p=none; rua=mailto:rua@dmarc.brevo.com
  • Dieselbe Payload via curl mit dem API-Schlüssel funktioniert perfekt
  • Das Erstellen der Kampagne manuell in der Brevo-Web-UI funktioniert auch
  • Das Wechseln des HTTP Request-Knotens zu Generic Credential Type → Header Authentication (Name: api-key, gleicher API-Schlüssel) hat das Problem sofort ohne weitere Änderungen behoben

Workaround:

  1. Erstelle neue Anmeldedaten: Typ Header Authentication, Name: api-key, Wert: dein Brevo-API-Schlüssel
  2. Im HTTP Request-Knoten stelle Authentication → Generic Credential Type → Header Authentication ein
  3. Alles andere (URL, JSON-Body) bleibt unverändert

Informationen zu deinem n8n-Setup

  • n8n-Version: 2.20.7-exp.0
  • Datenbank: SQLite
  • EXECUTIONS_PROCESS-Einstellung: main
  • n8n läuft via: Docker (selbst gehostet)
  • Betriebssystem: Linux

Versuche, auf 2.20.6 herabzustufen. Hilft das?
Wenn nicht, kannst du zur vorherigen funktionierenden Version zurückkehren?

Möglicherweise ein Regressionsproblem

Leider kann ich auf dieser Produktionsinstanz nicht das Risiko eingehen, Downgrades durchzuführen.

Ich vermute, dass diese Regression nach dem Upgrade vom 13. Mai eingeführt wurde.

Wahrscheinlich musst du ein Regressionsproblem auf Github einreichen

@nukeador: Ich weiß nicht, ob das hilft. Aber ich hatte gestern das gleiche Problem mit Make.com. Dank deines Workarounds konnte ich das Problem lösen. Fazit: Ich denke, das Problem kommt möglicherweise von Brevo! :wink:

Nein, es kommt nicht von Brevo, weil ein einfacher manueller API-Aufruf funktioniert, genau wie die Header-Authentifizierung bei n8n.

Ich habe das auf meiner Seite getestet. Ich bin gerade wieder auf das Problem gestoßen. Wenn ich mehrmals auf den API-Aufruf beharre, funktioniert es schließlich. Für mich kommt das Problem definitiv von Brevo.

Der Fehler kommt von dort und scheint kein n8n-Problem zu sein. Wenn es ein Authentifizierungsproblem wäre, würde eine entsprechende Fehlermeldung angezeigt, aber der 400 DMARC und die Meldung zum Absender sehen sehr spezifisch für Brevo und das Konto aus.

Ich würde den Support von Brevo kontaktieren und sie sollten dir mit diesem Problem besser helfen können.

Ich habe sie erreicht und, wie ich kommentiert habe, ein manueller curl funktionierte und die Verwendung von Header-Auth statt vordefinierter Auth funktionierte auf n8n (und funktioniert weiterhin).

Es gibt also etwas, das mit der https vordefinierten Auth für Brevo nicht stimmt, etwas das sich in den Mai-Releases geändert hat.

Ich habe auch gelesen, dass sie manchmal Fehler 400 und die falsche DMARC-Meldung zurückgeben können, wenn die API-Anfrage malformed ist.

@nukeador wurde dein Fall dann gelöst?
Wenn ja, bitten wir dich höflich, deine beste Antwort als Lösung zu markieren, um die Mitglieder der Community bei der Beantwortung ihrer Fragen zu unterstützen.

Es ist nicht gelöst.

Die Verwendung der vordefinierten Auth-Option von Brevo im HTTP Request Node funktioniert nicht in der aktuellen n8n-Version.

@nukeador, ich habe gesehen, dass du die experimentelle Version verwendest. Wir haben das stabile Update 2.21.4
ist es möglich, die Version zu aktualisieren und uns Bescheid zu geben?