Seltsames Problem mit dem HTTP Request-Knoten

Hey zusammen, ich bin auf ein ziemlich seltsames Problem mit einem HTTP Request Node gestoßen.

Die Anfrage soll eine HTTPS API aufrufen, aber statt eine Antwort zu erhalten, schlägt n8n schließlich mit einem 502 Bad Gateway fehl. Der Fehler erwähnt etwas über einen Timeout der TLS-Verbindung.

Ich habe die URL bereits überprüft und der Endpoint ist vom Server aus erreichbar, also bin ich mir wirklich nicht sicher, ob das ein n8n Problem ist, Node.js, oder etwas, das zwischen n8n und der API passiert.

Hallo @Juan_Pablo1, während du auf eine Antwort wartest, hier sind einige Dinge, die dir helfen könnten:

Empfohlene Ressourcen

Automatisch zu deiner Frage zugeordnet.

Dokumentation:

Forum:

@Websensepro, @Florian_Delbes - ihr habt schon bei ähnlichen Problemen geholfen, könnt ihr mal einen Blick drauf werfen?

Automatisch vorgeschlagen durch n8ns Community-Bot. Das ist ein Pilotprojekt - bitte gebt hier Feedback.

Ich bin schon auf TLS-Timeout-Probleme mit dem HTTP Request Node gestoßen. Normalerweise ist es entweder ein Zertifikatsproblem oder der Server braucht zu lange zum Abschluss des Handshakes.

Kannst du die genaue Fehlermeldung teilen, die du siehst? Auch welche Version von n8n nutzt du und ist das Self-Hosted oder Cloud?

Wenn der Endpoint von curl auf demselben Server einwandfrei funktioniert, könnte das auf etwas in n8ns Request-Konfiguration oder einer Node.js-TLS-Einstellung hindeuten.

@Juan_Pablo1 Bevor wir anfangen, könntest du bitte deinen Bildschirm teilen?

@Juan_Pablo1

Ein 502 kombiniert mit einem TLS-Handshake-Timeout deutet eher darauf hin, dass die Verbindung unterbrochen wird, bevor die HTTPS-Sitzung vollständig etabliert ist, als dass die API einen normalen Fehler auf Anwendungsebene zurückgibt.

Hier sind ein paar Dinge, die ich zunächst überprüfen würde:

Ob die API hinter einem Reverse Proxy oder Load Balancer läuft
Ob der n8n-Container eine TLS-Verbindung zum Host aufbauen kann
DNS-Auflösung innerhalb des n8n-Containers
Ob ein Proxy/eine Firewall zwischen n8n und der API existiert
Der Timeout-Wert des HTTP-Request-Knotens
Ob das Problem konsistent auftritt oder nur nach einer längeren Inaktivität

Ich würde nicht sofort damit beginnen, TLS-Verifizierungseinstellungen zu ändern oder die Zertifikatvalidierung zu deaktivieren. Das kann das eigentliche Problem verschleiern.

Kannst du mir zwei Screenshots teilen?

Das Ausgabe-/Fehlerpanel des HTTP-Request-Knotens
Die n8n-Container-Terminal-/Log-Ausgabe aus derselben Ausführung

Vor allem den vollständigen Error Stack um ERR_TLS_HANDSHAKE_TIMEOUT.

Ja, bitte überprüf diese, das sind meine Screenshots


Ja, @Juan_Pablo1 Guten Tag dir! Das gibt uns viel mehr zum Arbeiten.

Der wichtige Teil ist nicht wirklich die 502 selbst. Der tiefere Fehler ist:

ERR_TLS_HANDSHAKE_TIMEOUT
Client-Netzwerk-Socket wurde getrennt, bevor sichere TLS-Verbindung hergestellt wurde.

Und der Stack zeigt, dass der Fehler auftritt, während Nodes HTTPS-Client versucht, die Verbindung herzustellen.

Ich würde das von innen heraus aus dem n8n-Container troubleshooten, anstatt erst den Workflow zu ändern.

Versuche:

docker exec -it n8n-1 sh

Dann teste DNS-Auflösung:

getent hosts api.example.com

und teste den TLS-Handshake direkt:

openssl s_client -connect api.example.com:443 -servername api.example.com

Wenn das von innen im Container hängenbleibt oder fehlschlägt, während derselbe Befehl normalerweise auf dem Host funktioniert, liegt das Problem höchstwahrscheinlich irgendwo im Netzwerkpfad des Containers, Proxy, Firewall oder DNS-Konfiguration.

Ich würde auch vorübergehend das Timeout des HTTP-Request-Knotens von 30s auf etwa 60s erhöhen, um zu bestimmen, ob es sich um einen echten langsamen Handshake oder um eine sofortige Netzwerktrennung handelt.

Deaktiviere noch nicht die TLS-Zertifikatverifizierung. Das Log zeigt einen Handshake-Timeout, keinen Zertifikatvalidierungsfehler, daher würde das Deaktivieren der Verifikation das zugrunde liegende Problem nicht beheben.

Wenn auch der openssl-s_client-Test hängenbleibt, sende auch diese Ausgabe. Das sollte uns zeigen, ob wir es mit n8n/Axios speziell oder mit einem Problem auf niedrigerer Ebene zu tun haben.

hmm lass mich das versuchen, danke