-
-
Notifications
You must be signed in to change notification settings - Fork 22.6k
Description
Describe the bug
Problem Description
The ChatOpenAI node in Flowise does not respect proxy configuration when making requests to OpenAI API, resulting in connection failures when using corporate proxy environments.
Environment
Flowise Version: 3.0.7
OpenAI Package Version: 4.96.0
Node.js Version: 22.18.0
Environment: Kubernetes deployment with proxy variables configured
To Reproduce
- Deploy Flowise in a corporate environment that requires all external traffic to go through a proxy server
- Configure proxy environment variables:
GLOBAL_AGENT_HTTP_PROXY: http://corporate-proxy.example.com:3128
GLOBAL_AGENT_HTTPS_PROXY: http://corporate-proxy.example.com:3128
HTTP_PROXY: http://corporate-proxy.example.com:3128
HTTPS_PROXY: http://corporate-proxy.example.com:3128 - Set up a ChatOpenAI node with a valid OpenAI API key
- In the ChatOpenAI node configuration, set the Proxy Url field to the corporate proxy (e.g., http://corporate-proxy.example.com:3128)
- Try to make a request through the chatflow
Expected behavior
The ChatOpenAI node should use the configured corporate proxy for all OpenAI API requests, allowing the application to work in corporate network environments that require proxy usage.
Use Method
Docker
Flowise Version
3.0.7
Operating System
Linux
Browser
None
Additional context
Actual Behavior
The ChatOpenAI node ignores the proxy configuration and attempts to make direct requests to OpenAI API, resulting in connection failures or network errors.
Current Implementation (Not Working)
if (proxyUrl) {
obj.configuration = {
...obj?.configuration,
httpAgent: new HttpsProxyAgent(proxyUrl) // ❌ Deprecated approach
}
}
Proposed Solution
Following the official OpenAI migration guide, update the implementation to use
undici.ProxyAgent with fetchOptions:
import * as undici from 'undici'
if (proxyUrl) {
const proxyAgent = new undici.ProxyAgent(proxyUrl)
obj.configuration = {
...obj?.configuration,
fetchOptions: {
dispatcher: proxyAgent
}
} as any
}
Technical Details
- The error occurs in LangChain's OpenAI client: /usr/local/lib/node_modules/flowise/node_modules/@langchain/openai/dist/chat_models.cjs:1933:28
- The global-agent library works correctly for other HTTP requests but is ignored by LangChain's OpenAI implementation
- Manual testing with curl -x http://corporate-proxy.example.com:3128 https://api.openai.com/v1/models returns 401 Missing bearer authentication, confirming the corporate proxy works correctly
Files to Modify
packages/components/nodes/chatmodels/ChatOpenAI/ChatOpenAI.ts
packages/components/nodImpactes/llms/OpenAI/OpenAI.ts (if it has similar proxy configuration)
Additional Context
This is a critical issue for enterprise users who need to use Flowise with OpenAI models through corporate proxy infrastructure. The workaround of using global-agent environment variables doesn't work because LangChain's OpenAI client doesn't respect global proxy settings.
Priority: High (blocks enterprise deployments with proxy requirements)
Complexity: Low (simple API change following official migration guide)
Impact: High (affects all corporate users with proxy requirements)