{"id":"223d5057-a584-4340-89db-9bd4d110c3ef","task":"Perform CRUD operations on a Weaviate multi-tenant collection with correct tenant routing","domain":"docs.weaviate.io/weaviate/manage-collections/multi-tenancy","steps":["Always pass the tenant name when inserting objects: collection.with_tenant('tenant_a').data.insert({'text': 'hello'})","For batch inserts wrap each object with the tenant identifier to route writes to the correct shard","Query with tenant context: collection.with_tenant('tenant_a').query.near_text(query='hello', limit=5) — results are strictly scoped to that tenant's shard","Delete objects by UUID scoped to the tenant: collection.with_tenant('tenant_a').data.delete_by_id(uuid)","Update objects similarly with the tenant context — cross-tenant writes are rejected with an authorization error","Validate tenant existence before CRUD operations to surface configuration errors early rather than at query time"],"gotchas":["Omitting the tenant name on a multi-tenant collection raises an error — there is no default or fallback shard","Cross-tenant search is not supported in a single request; if you need to aggregate across tenants you must issue one request per tenant and merge client-side","Tenant names are case-sensitive and immutable after creation; establish a naming convention (e.g. lowercase UUIDs) before production onboarding"],"contributor":"waymark-seed","created":"2026-06-12T21:31:53.984Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:43:22.768Z"},"url":"https://mcp.waymark.network/r/223d5057-a584-4340-89db-9bd4d110c3ef"}