> For the complete documentation index, see [llms.txt](https://doc.duaer.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.duaer.com/integrations/builtin/core-nodes/duaer-nodes-base.httprequest/common-issues.md).

# Common issues with HTTP Request in Duaer

Causes and fixes for common HTTP Request errors in Duaer: 400, 404, 403, 429, connection refused, invalid JSON, and file uploads.
## Bad request - please check your parameters <a href="#bad-request-please-check-your-parameters" id="bad-request-please-check-your-parameters"></a>

Duaer shows this when the HTTP Request node gets a 400. It usually means:

- A name or value in Query Parameters is not accepted by the service.
- You pass an array in a query parameter in a format the service does not expect. Change Array Format in Query Parameters under Options.

Check the parameter format in the service’s API docs.

## The resource you are requesting could not be found <a href="#the-resource-you-are-requesting-could-not-be-found" id="the-resource-you-are-requesting-could-not-be-found"></a>

The service returned 404: the URL has a typo, or the endpoint was retired. Check the path and version in the service’s API docs.

## Forbidden - perhaps check your credentials? <a href="#forbidden-perhaps-check-your-credentials" id="forbidden-perhaps-check-your-credentials"></a>

The service returned 403: authentication failed or the account lacks permission.

- Give the API key or account the permissions or scopes this operation needs.
- With a generic credential, check the header name and value format the service expects.
- Create a new key with the right permissions and update the Duaer credential.

## 429 - The service is receiving too many requests from you <a href="#id-429-the-service-is-receiving-too-many-requests-from-you" id="id-429-the-service-is-receiving-too-many-requests-from-you"></a>

The service is rate limiting you. Slow the node down with one of its built-in options:

1. Options > Batching: set Items per Batch, and Batch Interval (ms) for the wait between batches. For one request a second, enter 1000.
2. In node Settings, turn on Retry On Fail, then set Max. Tries and Wait Between Tries (ms).

## Connection refused (ECONNREFUSED) <a href="#connection-refused-econnrefused" id="connection-refused-econnrefused"></a>

Duaer reached the host, but nothing listens on the target port. This is not a DNS failure or a timeout.

On a self-hosted Duaer running in Docker, the usual cause is container networking: inside the container, localhost and 127.0.0.1 are the Duaer container itself, not the host machine.

- Target on the host, Docker Desktop (Mac or Windows): use http://host.docker.internal:<port> in URL.
- Target on the host, Linux: start the container with --add-host=host.docker.internal:host-gateway, or add the same line under extra_hosts in docker-compose.yml.
- Target in another container of the same Compose stack: use the service name as the host, for example http://my-api:5000, with the container’s internal port.
- localhost fails even outside Docker: use http://127.0.0.1:<port>. localhost can resolve to the IPv6 address ::1 while the target listens only on IPv4.

Digital organizations on Duaer cloud run on Duaer’s servers and cannot reach a service on your computer. Expose a local service through a tunnel and use its public URL.

## The value in the "…" field is not valid JSON <a href="#json-parameter-not-valid" id="json-parameter-not-valid"></a>

You chose to send a parameter as JSON, and the named field does not hold valid JSON.

- Run it through a JSON checker to find missing quotes, extra or missing commas, and unmatched brackets.
- With an expression, wrap the whole JSON in one pair of {{ }}, for example {{ { "name": $json.name } }}.

## The uploaded file arrives with the wrong file name <a href="#your-uploaded-file-arrives-with-the-wrong-file-name" id="your-uploaded-file-arrives-with-the-wrong-file-name"></a>

With Body Content Type set to Form-Data, Duaer takes the file name from the binary data. Name only sets the form field name. Binary data without a file name is sent as file. A service that identifies uploads by file name may answer 400 saying the file is missing.

Set the file name before the HTTP Request node: File Name in the Convert to File node, or item.binary.data.fileName = 'index.html' in a Code node. If the service checks the type, set the MIME type too.

## Unsupported media type (415) when you send a file <a href="#unsupported-media-type-415-when-you-send-a-file" id="unsupported-media-type-415-when-you-send-a-file"></a>

With Body Content Type set to Duaer Binary File, the file is the whole request body, with no multipart envelope. A service that only accepts multipart rejects it. To send multipart:

1. Set Body Content Type to Form-Data.
2. Add a Body Parameters entry and set Type to Duaer Binary File.
3. Set Name to the form field name from the service’s docs.
4. Set Input Data Field Name to the binary property holding the file, such as data.
## Questions

### What do I do when the Duaer HTTP Request node returns 429?

Slow the Duaer HTTP Request node down with Options > Batching, or turn on Retry On Fail in node Settings with a wait between tries.

### Can HTTP Request on Duaer cloud reach localhost on my computer?

No. Digital organizations on Duaer cloud run on Duaer’s servers. Expose the local service through a tunnel first.

