# Keep the SDK current

## Why it matters here more than usual

Pinecone's API has moved fast: v2 to v3 removed `pinecone.init`, serverless changed client routing (old clients get controller-host errors), `spec` became required on create, and document schemas need the 2026-07 API version. A pinned-from-2024 SDK breaks in ways that look like account or network problems.

## Rules for agents

1. **Pin a recent version, not an old one.** `pinecone>=7` (Python), `@pinecone-database/pinecone@latest` then pin the working version (Node). Review pins quarterly.
2. **Read the changelog on upgrade.** Breaking changes are documented; most upgrades are drop-in, but check.
3. **One SDK version per repo.** Mixed transitive versions (especially protobuf/grpc extras) cause the install conflicts the corpus already records.
4. **After upgrading, run the smoke path:** create or describe, upsert one vector, query it back. Five minutes that catches routing and auth regressions.

## Symptoms of a stale SDK

- `module 'pinecone' has no attribute 'init'`
- `Failed to resolve 'controller...'` on serverless indexes
- `TypeError: create_index() missing ... 'spec'`
- Document-schema calls rejected by the client

Any of these means upgrade first, debug second.