Loading source
Pulling the file list, source metadata, and syntax-aware rendering for this listing.
Source from repo
Comprehensive Cloudflare platform skill covering Workers, D1, R2, KV, AI, Durable Objects, and security.
Files
Skill
Size
Entrypoint
Format
Open file
Syntax-highlighted preview of this file as included in the skill package.
references/vectorize/gotchas.md
1# Vectorize Gotchas23## Critical Warnings45### Async Mutations6Insert/upsert/delete return immediately but vectors aren't queryable for 5-10 seconds.78### Batch Size Limit9**Workers API: 1,000 vectors max per call (HTTP API: 5,000).** Silently truncates if exceeded.1011```typescript12// ✅ Chunk into 1000 (Workers API limit; HTTP API allows 5000)13for (let i = 0; i < vectors.length; i += 1000) {14await env.VECTORIZE.upsert(vectors.slice(i, i + 1000));15}16```1718### Metadata Truncation19`returnMetadata: "indexed"` returns only first 64 bytes of strings. Use `"all"` for complete metadata (but max topK drops to 20).2021### topK Limits2223| returnMetadata | returnValues | Max topK |24|----------------|--------------|----------|25| `"none"` / `"indexed"` | `false` | 100 |26| `"all"` | any | **20** |27| any | `true` | **20** |2829### Metadata Indexes First30Create BEFORE inserting - existing vectors not retroactively indexed.3132```bash33# ✅ Create index FIRST34wrangler vectorize create-metadata-index my-index --property-name=category --type=string35wrangler vectorize insert my-index --file=data.ndjson36```3738### Index Config Immutable39Cannot change dimensions/metric after creation. Must create new index and migrate.4041## Limits (V2)4243| Resource | Limit |44|----------|-------|45| Vectors per index | 10,000,000 |46| Max dimensions | 1536 |47| Batch upsert (Workers / HTTP API) | **1,000 / 5,000** |48| Indexed string metadata | **64 bytes** |49| Metadata indexes | 10 |50| Namespaces | 50,000 (paid) / 1,000 (free) |5152## Common Mistakes53541. **Wrong embedding shape:** Extract `result.data[0]` from Workers AI552. **Metadata index after data:** Re-upsert all vectors563. **Insert vs upsert:** `insert` ignores duplicates, `upsert` overwrites574. **Not batching:** Individual inserts ~1K/min, batched ~200K+/min5859## Troubleshooting6061**No results?**62- Wait 5-10s after insert63- Check namespace spelling (case-sensitive)64- Verify metadata index exists65- Check dimension mismatch6667**Metadata filter not working?**68- Index must exist before data insert69- Strings >64 bytes truncated70- Use dot notation for nested: `"product.category"`7172## Model Dimensions7374- `@cf/baai/bge-small-en-v1.5`: 38475- `@cf/baai/bge-base-en-v1.5`: 76876- `@cf/baai/bge-large-en-v1.5`: 102477