I’m seeing a confusing issue in an n8n RAG workflow and want to confirm whether this is expected behavior or a bug.
My workflow is roughly:
• Upload file
• Default Data Loader
• Insert Data to Store
• Embeddings OpenAI connected to the Vector Store
• On the retrieval side, Query Data Tool uses the same Embeddings OpenAI node
The problem is this:
When I upload a new file and run the insert flow, the OpenAI API usage stays flat. It looks like the Embeddings OpenAI node is not actually calling the embeddings API during insert.
What I observe:
• The Data Loader runs successfully
• The Insert Data to Store node runs successfully
• The visible output of the insert flow is plain text chunks/documents, not embedding vectors
• The retriever/query side is still able to answer from the vector store
Why this is confusing:
• The workflow is wired to the Embeddings OpenAI node
• Earlier, I remember the embeddings node appearing to execute more visibly
• For a fresh large file upload, I would expect OpenAI embedding calls and corresponding API usage
• But the OpenAI usage graph/log remains flat
My question is:
In n8n, when using Vector Store + Embeddings OpenAI as a sub-node, is it expected that the Embeddings node does not show separate execution and that no obvious OpenAI API usage spike is visible during insert? Or does this indicate that embeddings are not actually being generated for fresh uploads?
More specifically:
Should a fresh document insert always trigger actual OpenAI embeddings API calls?
Is the plain text chunk output from “Insert Data to Store” normal, with embeddings being hidden internally?
Could retrieval still work only because previously stored vectors are being queried instead of the newly uploaded file being embedded?
What is the best way to verify that fresh vectors are actually being written for newly uploaded documents? I’m trying to determine whether this is:
• expected cluster/sub-node execution behavior,
• a UI/execution display issue,
• cached/old vectors being retrieved,
• or a real issue where embeddings are not being generated on insert.
Hi @sibidharan Welcome!
Have you tested the chat message? Does it work? If it does with the document you have chunked, then there should be a lag or internal execution as sometimes the workflow UI sometimes does not catch up, although you can try this same with similar database like Pinecone if that works then nothing to worry about as sometimes the executions may happen internally in some cases although this should not but if it works then that’s it.
@sibidharan That is i guess only that specific workflow’s limit although it works fine for me and even if you setup something like this with pinecone that would also work as expected! And if chat works which basically means that your flow is actually working fine! No issue there! Hope this helped.
Cloud works but self-hosted doesn’t is almost always a network isolation issue, not an n8n bug.
First thing to check: can your Docker container actually reach OpenAI?
docker exec -it n8n wget -q -O- https://api.openai.com ``` If that hangs, your container can’t reach external APIs. Fix DNS or routing first. Second: look at execution time for the embeddings node. Under 50ms means it never called the API. 200ms+ means it did.
If you’re on SQLite, write lock contention during concurrent inserts can silently fail sub-node executions. Switching to Postgres often fixes this.
Yes, the chat is using OpenAI and it is able to respond. We are using OpenAI for lot of other things and it all seems to work. Just that Embeddings node is not getting highlighted when its supposed to turn green!
In the last screenshot I posted, the OpenAI Chat Model is turning green! Just embeddings not when inserting documents - as its supposed to turn green - I saw it before, but this current behaviour is making me question.
Yes. We have access to all models and have enough credits. If it doesn’t have access, it must say otherwise, but its staying like it was never called.
I remember it the Embeddings sub-node is used to convert the chunks into numerical embeddings that then gets saved to Vector DB. But right now, it looks like plain text chunks are sitting in Vector DB. Something doesn’t feel right!!
In pinecone/insert node output, can I see plain text? Is it normal ? Where can I see the numerical embeddings? If OpenAI embeddings are called, I must see Numerical Embeddings - or is my understanding wrong ? Please correct me.
I see the Embeddings Node being called with same API key in n8n cloud with same app version: 2.12.3 - I am running the same 2.12.3 in my self hosted instance. Please see the difference:
Some of your questions in the top are about data store, so, use query and observe the data in terminal, try to isolate the problems one by one, read data in terminal, they should be numbers
Since chat works fine, your container can reach OpenAI. That rules out DNS. The fact that it works on Cloud but not self-hosted with the same version points to the execution environment, not the workflow. Cloud runs Postgres, your instance runs SQLite. Try switching to Postgres and see if the embeddings node fires. If you can’t switch yet, check the n8n execution logs (not the UI) for any silent errors during the insert step.