HTTP GET request refused with ECONNRESET

Describe the problem/error/question

I’m trying to get an HTTP GET request to work with an api, specifically https://api.propmix.io/pubrec/assessor/v2/GetPropertyDetails. The developers sent me an example curl request, which I imported into the request node. This request always fails with ECONNRESET. When you import the curl request, the AccessToken field gets added to the Header portion of the node. I’ve tried pasting my API key directly into the header field → ECONNRESET. I’ve then tried to use the header auth with the API key saved as a credential, still → ECONNRESET. This isn’t a problem with the curl request, testing in postman verifies that the request works.

What is the error message (if any)?

Error code

ECONNRESET

Full message

read ECONNRESET

Request

{ "headers": { "Access-Token": "**hidden**", "accept": "application/json,text/html,application/xhtml+xml,application/xml,text/*;q=0.9, image/*;q=0.8, */*;q=0.7" }, "method": "GET", "uri": "https://api.propmix.io/pubrec/assessor/v2/GetPropertyDetails", "gzip": true, "rejectUnauthorized": true, "followRedirect": true, "resolveWithFullResponse": true, "sendCredentialsOnCrossOriginRedirect": false, "followAllRedirects": true, "maxRedirects": 21, "timeout": 300000, "qs": { "orderId": "testPubrec", "PostalCode": "60521", "State": "IL", "City": "Hinsdale", "StreetAddress": "211 fuller rd" }, "encoding": null, "json": false, "useStream": true }
Other info

Item Index

0

Node type

n8n-nodes-base.httpRequest

Node version

4.4 (Latest)

n8n version

2.9.4 (Self Hosted)

Time

3/4/2026, 9:45:01 AM

Stack trace

NodeApiError: The connection to the server was closed unexpectedly, perhaps it is offline. You can retry the request immediately or wait and retry later. at ExecuteContext.execute (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-nodes-base@file+packages+nodes-base_@[email protected]_asn1.js@5_8da18263ca0574b0db58d4fefd8173ce/node_modules/n8n-nodes-base/nodes/HttpRequest/V3/HttpRequestV3.node.ts:864:16) at processTicksAndRejections (node:internal/process/task_queues:103:5) at WorkflowExecute.executeNode (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-core@file+packages+core_@[email protected]_@opentelemetry+exporter-trace-otlp_9f358c3eeaef0d2736f54ac9757ada43/node_modules/n8n-core/src/execution-engine/workflow-execute.ts:1043:8) at WorkflowExecute.runNode (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-core@file+packages+core_@[email protected]_@opentelemetry+exporter-trace-otlp_9f358c3eeaef0d2736f54ac9757ada43/node_modules/n8n-core/src/execution-engine/workflow-execute.ts:1222:11) at /usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-core@file+packages+core_@[email protected]_@opentelemetry+exporter-trace-otlp_9f358c3eeaef0d2736f54ac9757ada43/node_modules/n8n-core/src/execution-engine/workflow-execute.ts:1659:27 at /usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-core@file+packages+core_@[email protected]_@opentelemetry+exporter-trace-otlp_9f358c3eeaef0d2736f54ac9757ada43/node_modules/n8n-core/src/execution-engine/workflow-execute.ts:2302:11

Please share your workflow

{
  "nodes": [
    {
      "parameters": {},
      "type": "n8n-nodes-base.manualTrigger",
      "typeVersion": 1,
      "position": [
        -432,
        0
      ],
      "id": "ee62764d-587d-4e90-9c80-b9171244c738",
      "name": "When clicking ‘Execute workflow’"
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "85e4fa19-9288-4970-8a94-9c184a0b701c",
              "name": "OrderId",
              "value": "pubRec",
              "type": "string"
            },
            {
              "id": "4bb7aa72-dd5f-4eb5-8777-a34431dfcdc6",
              "name": "StreetAddress",
              "value": "1381 Rocky Branch Road",
              "type": "string"
            },
            {
              "id": "e183a5be-1dc0-409d-84a5-861e7f2da1a1",
              "name": "City",
              "value": "Bogart",
              "type": "string"
            },
            {
              "id": "9ddeec1b-a127-44c9-828e-b8e50ff9c986",
              "name": "State",
              "value": "GA",
              "type": "string"
            },
            {
              "id": "b84ed782-2978-47ec-9d83-c1095687710c",
              "name": "PostalCode",
              "value": "30622",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        -272,
        0
      ],
      "id": "5ea8edcb-292b-4acf-821b-6182a3feae29",
      "name": "StaticAddress"
    },
    {
      "parameters": {
        "url": "https://api.propmix.io/pubrec/assessor/v2/GetPropertyDetails",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "orderId",
              "value": "testPubrec"
            },
            {
              "name": "PostalCode",
              "value": "60521"
            },
            {
              "name": "State",
              "value": "IL"
            },
            {
              "name": "City",
              "value": "Hinsdale"
            },
            {
              "name": "StreetAddress",
              "value": "211 fuller rd"
            }
          ]
        },
        "options": {
          "redirect": {
            "redirect": {}
          }
        }
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.4,
      "position": [
        -96,
        0
      ],
      "id": "8c2e5a87-3d0b-4159-b55c-fd7fd0bf79b6",
      "name": "GetPropertyDetails",
      "alwaysOutputData": false,
      "executeOnce": false,
      "retryOnFail": false,
      "credentials": {
        "httpHeaderAuth": {
          "id": "9cGGLZgf6mTa87L3",
          "name": "RG_pubrec_header"
        }
      }
    }
  ],
  "connections": {
    "When clicking ‘Execute workflow’": {
      "main": [
        [
          {
            "node": "StaticAddress",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "StaticAddress": {
      "main": [
        [
          {
            "node": "GetPropertyDetails",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "pinData": {},
  "meta": {
    "templateCredsSetupCompleted": true,
    "instanceId": "2bdbb5fc50465d9b46bded2adb7ca31e16e402112116487a71c6ea3237c2d9d0"
  }
}workflow.)

ECONNRESET with n8n’s HTTP Request node but works fine in Postman is almost always the remote server rejecting the connection based on TLS fingerprint or User-Agent. Try adding a User-Agent header set to something like PostmanRuntime/7.29.2 in the HTTP Request node and see if that gets you through. Also worth toggling on “Ignore SSL Issues” under the node’s options.

I tried both suggestions, no dice. Still receiving ECONNRESET. Here is the request that was sent, from the Chrome developer console:

{headers: {…}, method: 'GET', uri: 'https://api.propmix.io/pubrec/assessor/v2/GetPropertyDetails', gzip: true, rejectUnauthorized: false, …}
encoding: null
followAllRedirects: true
followRedirect: true
gzip: true
headers: 
    AccessToken: "**hidden**"
    accept: "application/json,text/html,application/xhtml+xml,application/xml,text/*;q=0.9, image/*;q=0.8, */*;q=0.7"
    user-agent: "PostmanRuntime/7.29.2"
[[Prototype]]: Object
json: false
maxRedirects: 21
method: "GET"
qs: 
    City: "Hinsdale"
    PostalCode: "60521"
    State: "IL"
    StreetAddress: "211 fuller rd"
    orderId: "testPubrec"
[[Prototype]]: Object
rejectUnauthorized: false
resolveWithFullResponse: true
sendCredentialsOnCrossOriginRedirect: false
timeout: 300000
uri: "https://api.propmix.io/pubrec/assessor/v2/GetPropertyDetails"
useStream: true
1 Like

Hi @Rex_Goeckeritz Welcome!
If the same requests works with API service tester but throws an error in the n8n workflow, this is certainly an issue with the n8n workspace, I would suggest try to upgrade/downgrade to the stable version from your current version, as this is not an issue which was repeated in either of the builds.

The version of n8n is 2.9.4 which is the latest stable release.

If it makes a difference, here is the raw log from Postman (I’ve manually hidden the token):

GET /pubrec/assessor/v2/GetPropertyDetails?orderId=testPubrec&PostalCode=60521&State=IL&City=Hinsdale&StreetAddress=211%20fuller%20rd HTTP/2.0
AccessToken: hidden
User-Agent: PostmanRuntime/7.52.0
Accept: */*
Postman-Token: hidden
Accept-Encoding: gzip, deflate, br
:path: /pubrec/assessor/v2/GetPropertyDetails?orderId=testPubrec&PostalCode=60521&State=IL&City=Hinsdale&StreetAddress=211%20fuller%20rd
:method: GET
:authority: api.propmix.io
:scheme: https

Here is the chrome console request, after executing the n8n node:

I have also tried encoding the parameters into the url, like Postman does, but this was not successful either.

Here is the full response from n8n:
{
“errorMessage”: “The connection to the server was closed unexpectedly, perhaps it is offline. You can retry the request immediately or wait and retry later.”,
“errorDetails”: {
“rawErrorMessage”: [
“read ECONNRESET”,
“read ECONNRESET”
],
“httpCode”: “ECONNRESET”
},
“n8nDetails”: {
“nodeName”: “GetPropertyDetails”,
“nodeType”: “n8n-nodes-base.httpRequest”,
“nodeVersion”: 4.4,
“itemIndex”: 0,
“time”: “3/4/2026, 11:34:21 AM”,
“n8nVersion”: “2.9.4 (Self Hosted)”,
“binaryDataMode”: “filesystem”,
“stackTrace”: [
“NodeApiError: The connection to the server was closed unexpectedly, perhaps it is offline. You can retry the request immediately or wait and retry later.”,
" at ExecuteContext.execute (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-nodes-base@file+packages+nodes-base_@[email protected]_asn1.js@5_8da18263ca0574b0db58d4fefd8173ce/node_modules/n8n-nodes-base/nodes/HttpRequest/V3/HttpRequestV3.node.ts:864:16)“,
" at processTicksAndRejections (node:internal/process/task_queues:103:5)”,
" at WorkflowExecute.executeNode (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-core@file+packages+core_@[email protected]_@opentelemetry+exporter-trace-otlp_9f358c3eeaef0d2736f54ac9757ada43/node_modules/n8n-core/src/execution-engine/workflow-execute.ts:1043:8)“,
" at WorkflowExecute.runNode (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-core@file+packages+core_@[email protected]_@opentelemetry+exporter-trace-otlp_9f358c3eeaef0d2736f54ac9757ada43/node_modules/n8n-core/src/execution-engine/workflow-execute.ts:1222:11)”,
" at /usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-core@file+packages+core_@[email protected]_@opentelemetry+exporter-trace-otlp_9f358c3eeaef0d2736f54ac9757ada43/node_modules/n8n-core/src/execution-engine/workflow-execute.ts:1659:27",
" at /usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-core@file+packages+core_@[email protected]_@opentelemetry+exporter-trace-otlp_9f358c3eeaef0d2736f54ac9757ada43/node_modules/n8n-core/src/execution-engine/workflow-execute.ts:2302:11"
]
}
}

1 Like

@Rex_Goeckeritz understood, although rolling back or upgrading to the next stable version might not have effected that much, is this issue only with propmix? Or any other similar service (kinda similar credentials) works or shows the same error?

Hi @Rex_Goeckeritz, welcome to the n8n community :t_rex: !
from what I can see the error was caused by a mismatch in the header name, it needs to be AccessToken (I might be mistaken, but it looks like it is currently set as Access-Token). I also added a User-Agent header (for ex PostmanRuntime/7.52.0 or Mozilla/5.0). Since your instance is self-hosted, I also enabled Ignore SSL Issues in the node options to avoid strict certificate validation problems that sometimes don’t appear in tools like Postman or browsers. Finally, I replaced the hardcoded query values with expressions that pull the data dynamically from the previous node so the workflow can use incoming data instead of fixed parameters.

I’ve tried both Access-Token and AccessToken (see the latest request sent, uses AccessToken). Same response received for both.

Ignore SSL Issues, is already enabled. I”ve tried adding a user-agent header both the postman version and the mozilla version, neither make a difference:

The node already uses expressions for the query parameters

I’ve been in touch with the propMix.io people, and they’ve said they were able to get the api to work with n8n. But when they compared the console output, their request did not include the ‘useStream’ parameter. Does anybody know how to remove that parameter from the node request?

On the useStream parameter — that’s being added internally by n8n’s HTTP Request node as part of how it handles response streaming. It’s not a header you set, it’s baked into the underlying request options.

To stop it from being sent to the external API, try this: in the HTTP Request node, go to OptionsResponse → set “Response Format” to “File” or try “Text” instead of the default “Auto-detect”. The useStream flag is added when n8n thinks it needs to stream the response — switching the format sometimes stops it from being appended.

Alternatively, if the API is rejecting it because it doesn’t recognize the parameter, you can try using a Code node before the HTTP Request to build the request manually, or check if there’s a way to pass the options object directly.

One thing that’s worked for me with stubborn APIs: instead of the HTTP Request node, use a Code node with the built-in `` helper or native fetch — that gives you full control over exactly what gets sent with zero extra n8n magic added.

Worth opening a bug report too since useStream being injected into outbound query params sounds like unintended behavior.

Good find on the useStream parameter — that’s exactly the issue.

n8n’s HTTP Request node adds useStream: true internally when it processes responses, but this gets leaked into the actual outgoing request in some versions (2.x has had a few instances of this). The propmix.io API is likely rejecting that unknown query parameter or body field.

The fix:

In the HTTP Request node, go to Options and make sure you’re not accidentally passing extra params. More directly:

  1. Go to Options in the HTTP Request node → look for any extra query params being injected
  2. If you used the “Import from cURL” feature, it can carry over unexpected fields — try rebuilding the request manually instead of importing
  3. Check the Send Query Parameters section and make sure only the documented params are listed (City, State, PostalCode, StreetAddress, etc.)

The clearest workaround: use the HTTP Request node in “Specify Body” → “JSON” mode and manually construct the exact payload instead of auto-generated fields. This gives you full control over what gets sent.

Also try hitting https://httpbin.org/get with the same node config — httpbin will echo back the full request including any extra parameters n8n is injecting, which will confirm definitively whether useStream is showing up in the outgoing request.

Hope this helps narrow it down!