How to set IP proxy? Requests to openai easily time out
(node:5760) [DEP0040] DeprecationWarning: The punycode module is deprecated. Please use a userland alternative instead.
(Use node --trace-deprecation ... to show where the warning was created)
Processing file 1/3
file:///D:/Program%20Files/nodejs/node_global/node_modules/humanifyjs/node_modules/openai/core.mjs:316
throw new APIConnectionError({ cause: response });
^
APIConnectionError: Connection error.
at OpenAI.makeRequest (file:///D:/Program%20Files/nodejs/node_global/node_modules/humanifyjs/node_modules/openai/core.mjs:316:19)
at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
at async file:///D:/Program%20Files/nodejs/node_global/node_modules/humanifyjs/dist/index.mjs:55216:26
at async visitAllIdentifiers (file:///D:/Program%20Files/nodejs/node_global/node_modules/humanifyjs/dist/index.mjs:55082:21)
at async file:///D:/Program%20Files/nodejs/node_global/node_modules/humanifyjs/dist/index.mjs:55210:12
at async unminify (file:///D:/Program%20Files/nodejs/node_global/node_modules/humanifyjs/dist/index.mjs:172:27)
at async Command.
Do you have an unreliable internet? Would setting a proxy help in this case?
Do you have an unreliable internet? Would setting a proxy help in this case?
yes, unreliable internet
I'm pretty sure that you can use HTTP_PROXY and HTTPS_PROXY environment variables to set the http proxy. Current undici seems to support it and I'd assume the underlying openai library would be using undici.
Hmm, seems that openai is still using node-fetch, so it might not work:
https://github.com/openai/openai-node/blob/f4066e1af907586946a5e6befee9459268425680/README.md?plain=1#L2-L5
seems that openai is still using
node-fetch, so it might not work
- https://github.com/openai/openai-node/blob/212710db8c8c139392c6532c0eccfd13558ef2d4/README.md?plain=1#L1-L5
-
We're actively working on a new alpha version that migrates from
node-fetchto builtinfetch.Please try it out and let us know if you run into any issues!
- https://community.openai.com/t/your-feedback-requested-node-js-sdk-5-0-0-alpha/1063774
-
We’re pleased to share that a new alpha of the 5.0.0 version of the JavaScript / TypeScript SDK is available on npm and in the alpha branch of the GitHub repository. This version of the SDK represents a breaking change to the existing 4.x SDK, as we have migrated completely to using built-in
fetchfor HTTP requests across all environments (Node.js, Deno, etc). However, we do expect that most of your code will “just work” with minor adjustments in types. -
We’re dropping all support for v16 as active support was dropped over 2 years ago. Our minimum supported version is v18.
You’ll have to use a polyfill if you want to continue using v16.
-
Related upstream issues / workarounds for node-fetch not supporting HTTP_PROXY / etc:
- https://github.com/node-fetch/node-fetch/issues/1770
-
I've been using global-agent with node-fetch for a while now (though on v2.7 and only for node < v18)
import * as globalAgent from 'global-agent'; process.env["GLOBAL_AGENT_HTTP_PROXY"] = process.env.HTTP_PROXY || "http://my.proxy.address:8888"; globalAgent.bootstrap();Originally posted by @lselden in #1770
-
- https://github.com/node-fetch/node-fetch/issues/195
-
For anybody who stumbles on this issue like I did, the easiest way to support http proxies that I've found so far is to use
global-agent. It's super easy to install and worked for me so far.Originally posted by @zicklag in https://github.com/node-fetch/node-fetch/issues/195#issuecomment-1240855743
-
- https://github.com/gajus/global-agent
-
Global HTTP/HTTPS proxy agent configurable using environment variables.
-
Looks like openai v5 is out now, which uses the native fetch, and has better support for proxies:
Here's some updates on the timeline as to when
node-fetchwill no longer be included in it, which I believe will resolve this error:seems that openai is still using
node-fetch, so it might not work
- https://github.com/openai/openai-node/blob/212710db8c8c139392c6532c0eccfd13558ef2d4/README.md?plain=1#L1-L5
We're actively working on a new alpha version that migrates from
node-fetchto builtinfetch.Please try it out and let us know if you run into any issues!
- https://community.openai.com/t/your-feedback-requested-node-js-sdk-5-0-0-alpha/1063774
We’re pleased to share that a new alpha of the 5.0.0 version of the JavaScript / TypeScript SDK is available on npm and in the alpha branch of the GitHub repository. This version of the SDK represents a breaking change to the existing 4.x SDK, as we have migrated completely to using built-in
fetchfor HTTP requests across all environments (Node.js, Deno, etc). However, we do expect that most of your code will “just work” with minor adjustments in types.Looks like
openaiv5 is officially out, which moves to the built-infetch:
- https://github.com/jehna/humanify/pull/459
- https://github.com/openai/openai-node/releases/tag/v5.0.0
- https://github.com/openai/openai-node/blob/master/CHANGELOG.md#500-2025-05-29
- https://github.com/openai/openai-node/releases/tag/v5.0.1
- https://github.com/openai/openai-node/blob/master/CHANGELOG.md#501-2025-05-29
We can see the migration guide here:
- https://github.com/openai/openai-node/blob/master/MIGRATION.md
The main changes are that the SDK now relies on the builtin Web fetch API instead of
node-fetchand has zero dependencies.We can see that it now supports a new
fetchOptionsproperty for customizing the underlyingfetch:
- https://github.com/openai/openai-node/blob/master/MIGRATION.md#removed-httpagent-in-favor-of-fetchoptions
Removed
httpAgentin favor offetchOptionsThe
httpAgentclient option has been removed in favor of a platform-specificfetchOptionsproperty. This change was made ashttpAgentrelied onnode:httpagents which are not supported by any runtime's builtinfetchimplementation.If you were using
httpAgentfor proxy support, check out the new proxy documentation.- https://github.com/openai/openai-node#fetch-options
Fetch options If you want to set custom fetch options without overriding the fetch function, you can provide a fetchOptions object when instantiating the client or making a request. (Request-specific options override client options.)
fetchOptionsis also the basis for how to configure proxies now:
- https://github.com/openai/openai-node#configuring-proxies
Configuring proxies
To modify proxy behavior, you can provide custom
fetchOptionsthat add runtime-specific proxy options to requests:Originally posted by @0xdevalias in https://github.com/jehna/humanify/issues/52#issuecomment-2921148059