Pinecone Java SDK 6.3.0 stops clients with different API keys sharing one index connection (November 12, 2026)
Pinecone Java SDK 6.3.0 fixes cross-key connection sharing and 33 dependency advisories. Close every Index you open after upgrading.
Your keys
0 of 1 ready
Create each key on its own page, paste it below, then copy the finished lines into your project's .env file. What you paste stays in this tab. It is never sent to Wirestack or saved.
- Pinecone API keyPINECONE_API_KEYGet key
Pick your project, open API keys, click + API key, name it, choose its permissions, then Create key
What changed
On November 12, 2026, Pinecone released v6.3.0 of its Java SDK. There are no API changes; code written for 6.2.0 compiles unchanged.
The main fix: in 6.2.0, every Index and AsyncIndex opened for the same index name shared one gRPC channel, no matter which Pinecone client opened it. A second client with a different API key reused the first client's channel, so its data-plane calls went to the first client's index host with the first client's key. Only applications that build more than one Pinecone client with different settings were affected.
Also in this release:
close()on oneIndexno longer shuts down the channel other objects for that index are using.- The API key no longer appears in
PINECONE_DEBUGlogs. - Netty, Jackson and Guava are upgraded to fix 33 published advisories, one of them critical.
- 6.3.0 is signed with a new key; the old one expired.
What to do
Upgrade to 6.3.0 or later, first of all if one JVM holds Pinecone clients with different API keys. Version 6.3.1 (November 14, 2026) adds more fixes on top, including one that stops a malformed API key from being written into exception messages and logs.
Then check how you close connections. A channel now stays open until the last object using it is closed, so close every Index and AsyncIndex you open; both implement AutoCloseable. The release notes show the new behavior:
import io.pinecone.clients.Index;
import io.pinecone.clients.Pinecone;
import java.util.Arrays;
// Reads the API key from the environment.
Pinecone pc = new Pinecone.Builder(System.getenv("PINECONE_API_KEY")).build();
Index writer = pc.getIndexConnection("example-index");
Index reader = pc.getIndexConnection("example-index"); // shares writer's channel
writer.upsert("v1", Arrays.asList(1.0f, 2.0f, 3.0f));
writer.close(); // 6.2.0 also closed reader's channel
reader.queryByVector(5, Arrays.asList(1.0f, 2.0f, 3.0f)); // 6.3.0: still works
reader.close(); // last holder: the channel shuts down