Setting the file. One moment.
Chapter 04 · Cloudflare Deploy
Subchapter 4.247
references/vectorize/gotchas.mdMarkdown2 KBView on GitHub
Insert/upsert/delete return immediately but vectors aren’t queryable for 5-10 seconds.
Workers API: 500 vectors max per call (undocumented, silently truncates)
// ✅ Chunk into 500
for (let i = 0; i < vectors.length; i += 500) {
await env.VECTORIZE.upsert(vectors.slice(i, i + 500));
}returnMetadata: "indexed" returns only first 64 bytes of strings. Use "all" for complete metadata (but max topK drops to 20).
| returnMetadata | returnValues | Max topK |
|---|---|---|
"none" / "indexed" | false | 100 |
"all" | any | 20 |
| any | true | 20 |
Create BEFORE inserting - existing vectors not retroactively indexed.
# ✅ Create index FIRST
wrangler vectorize create-metadata-index my-index --property-name=category --type=string
wrangler vectorize insert my-index --file=data.ndjsonCannot change dimensions/metric after creation. Must create new index and migrate.
| Resource | Limit |
|---|---|
| Vectors per index | 10,000,000 |
| Max dimensions | 1536 |
| Batch upsert (Workers) | 500 |
| Indexed string metadata | 64 bytes |
| Metadata indexes | 10 |
| Namespaces | 50,000 (paid) / 1,000 (free) |
result.data[0] from Workers AIinsert ignores duplicates, upsert overwritesNo results?
Metadata filter not working?
"product.category"@cf/baai/bge-small-en-v1.5: 384@cf/baai/bge-base-en-v1.5: 768@cf/baai/bge-large-en-v1.5: 1024