In our Kubernetes setup, pods only have internet access via a corporate HTTP proxy (all proxy env variables are set).
- OpenAI API requests through HTTP Request node or OpenAI Chat Model node work fine (proxy is used).
- But embedding requests triggered internally by the PGVector Store node (using built-in Embeddings OpenAI) fail with
ECONNREFUSED
, as if proxy is ignored.
Details:
HTTP_PROXY
,HTTPS_PROXY
,NO_PROXY
are set and available in pod env (checked with printenv).- Manual curl or HTTP Request node embedding calls to OpenAI work as expected.
- Embedding requests from PGVector Store node fail (ECONNREFUSED).
Expectation:
PGVector Store node and all internal embedding requests should honor system proxy environment variables, just like HTTP Request node does.
n8n version:
1.95.3
Deployment type:
Kubernetes, web/worker pods, corporate proxy only.
Steps to reproduce:
- Deploy n8n in k8s with only proxy access to internet.
- Set all proxy env variables.
- Create workflow: HTTP Request node embedding works, PGVector Store node embedding fails.
{
“nodes”: [
{
“parameters”: {},
“type”: “n8n-nodes-base.manualTrigger”,
“typeVersion”: 1,
“position”: [
-760,
-300
],
“id”: “ae8f6063-c10a-4e0e-bd9f-fe8f26928efd”,
“name”: “When clicking ‘Execute workflow’”
},
{
“parameters”: {
“assignments”: {
“assignments”: [
{
“id”: “b9917855-34f2-4f99-a033-c5a579f887f8”,
“name”: “text”,
“value”: “How can I pay for NAKED services?”,
“type”: “string”
}
]
},
“options”: {}
},
“type”: “n8n-nodes-base.set”,
“typeVersion”: 3.4,
“position”: [
-520,
-300
],
“id”: “947662a9-a6f6-4a1f-b61e-4c085c00ac2d”,
“name”: “Edit Fields1”
},
{
“parameters”: {
“promptType”: “define”,
“text”: “=you are ai agent\nmessage: {{ $json.text }}”,
“options”: {
“maxIterations”: 1
}
},
“type”: “@n8n/n8n-nodes-langchain.agent”,
“typeVersion”: 1.7,
“position”: [
-320,
-300
],
“id”: “4741dcb6-e399-4115-9811-45f9bc8cd04e”,
“name”: “AI Agent7”,
“onError”: “continueErrorOutput”
},
{
“parameters”: {
“model”: {
“__rl”: true,
“value”: “o4-mini”,
“mode”: “list”,
“cachedResultName”: “o4-mini”
},
“options”: {}
},
“type”: “@n8n/n8n-nodes-langchain.lmChatOpenAi”,
“typeVersion”: 1.2,
“position”: [
-360,
-80
],
“id”: “132f81fd-e370-46fc-b59b-2361f91bcfa6”,
“name”: “OpenAI Chat Model7”,
“credentials”: {
“openAiApi”: {
“id”: “jDNMuIRRRDp8huyC”,
“name”: “OpenAi account”
}
}
},
{
“parameters”: {
“mode”: “retrieve-as-tool”,
“toolName”: “Support”,
“toolDescription”: “Find the answer in this knowledge base.”,
“tableName”: “documentation”,
“topK”: 5,
“includeDocumentMetadata”: false,
“options”: {
“columnNames”: {
“values”: {
“idColumnName”: “uid”,
“contentColumnName”: “content”
}
}
}
},
“type”: “@n8n/n8n-nodes-langchain.vectorStorePGVector”,
“typeVersion”: 1.1,
“position”: [
-40,
-80
],
“id”: “dd9fae28-1de2-412b-b257-ae189bf0b4ac”,
“name”: “Postgres PGVector Store1”,
“credentials”: {
“postgres”: {
“id”: “Ehmd3PMcaN36RHaM”,
“name”: “Postgres account”
}
}
},
{
“parameters”: {
“options”: {}
},
“type”: “@n8n/n8n-nodes-langchain.embeddingsOpenAi”,
“typeVersion”: 1.2,
“position”: [
-40,
100
],
“id”: “e4a1586d-8b83-4bfb-bc29-5fc10f17e748”,
“name”: “Embeddings OpenAI”,
“credentials”: {
“openAiApi”: {
“id”: “jDNMuIRRRDp8huyC”,
“name”: “OpenAi account”
}
}
}
],
“connections”: {
“When clicking ‘Execute workflow’”: {
“main”: [
[
{
“node”: “Edit Fields1”,
“type”: “main”,
“index”: 0
}
]
]
},
“Edit Fields1”: {
“main”: [
[
{
“node”: “AI Agent7”,
“type”: “main”,
“index”: 0
}
]
]
},
“OpenAI Chat Model7”: {
“ai_languageModel”: [
[
{
“node”: “AI Agent7”,
“type”: “ai_languageModel”,
“index”: 0
}
]
]
},
“Postgres PGVector Store1”: {
“ai_tool”: [
[
{
“node”: “AI Agent7”,
“type”: “ai_tool”,
“index”: 0
}
]
]
},
“Embeddings OpenAI”: {
“ai_embedding”: [
[
{
“node”: “Postgres PGVector Store1”,
“type”: “ai_embedding”,
“index”: 0
}
]
]
}
},
“pinData”: {},
“meta”: {
“templateCredsSetupCompleted”: true,
“instanceId”: “937b263cbc796e415aade1c09523ceb9e5dc556241ad4393d5c3bbb6615363a9”
}
}