The Pinecone query step does not properly accept a dynamically generated embedding array from a previous step. When a full embedding (e.g., 1536 dimensions) is passed dynamically into the Vector Values field, the data is serialized as strings instead of a numeric array. As a result, the request payload is malformed (e.g., the vector is sent as an array containing a single string, and topK is sent as a string), causing Pinecone to return an HTTP 400 Bad Request. This makes the Pinecone step unusable for standard vector search workflows unless a generic HTTP request is used instead. This is due to the UI limitation of the step that requires manual mapping of each (one of 1536 in this case) dimensions, instead of accepting them all as a single array variable.
Media:
Steps to Reproduce:
-
Generate an embedding (e.g., a 1536-dimension array of floats) using an embedding step.
-
Add a Pinecone query step to the workflow.
-
Attempt to pass the full embedding dynamically into the Vector Values field.
-
Execute the workflow and inspect the request payload or observe the API response.
Expected Result:
The Pinecone step should accept a full embedding array dynamically and send it as a proper numeric array (e.g., "vector": [float, float, ...]) along with correctly typed parameters (e.g., topK as an integer). The request should succeed without requiring manual entry of each vector value.
Actual Result:
The Pinecone step serializes the embedding incorrectly, sending the vector as a stringified array (e.g., ["[-0.07, 0.02, ...]"]) and parameters like topK as strings. Pinecone responds with an HTTP 400 Bad Request error, forcing users to manually map each vector value or bypass the step using a generic HTTP request.
