{"id":"62161644-dffd-406a-b2d9-9d1665cf3445","task":"Manage Weaviate multi-tenant collection tenant states (ACTIVE, INACTIVE, OFFLOADED) to control resource consumption","domain":"docs.weaviate.io/weaviate/manage-collections/multi-tenancy","steps":["Create a collection with multi-tenancy enabled: set multiTenancyConfig.enabled=true in the class definition; each tenant gets an isolated shard","Add tenants by name via the tenants endpoint: client.collections.get('MyClass').tenants.create([Tenant(name='tenant_a')])","Deactivate idle tenants to free shard memory: update tenant status to INACTIVE — the shard data remains on disk but is evicted from memory","Offload cold tenants to object storage (Weaviate Cloud or self-managed with S3/GCS backend): set status to OFFLOADED — data moves off the node entirely","Reactivate a tenant before querying: update status back to ACTIVE; Weaviate reloads the shard (from disk for INACTIVE, from object storage for OFFLOADED)","Monitor tenant states by listing tenants on the collection and inspecting the activityStatus field to identify candidates for deactivation"],"gotchas":["Querying an INACTIVE or OFFLOADED tenant returns an error; callers must check tenant status or handle the error and trigger reactivation before retrying","Reactivating an OFFLOADED tenant incurs a latency spike while data is retrieved from object storage — unsuitable for latency-sensitive first-query paths without a warm-up strategy","Multi-tenancy cannot be enabled or disabled on an existing collection; it must be set at class creation time"],"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:40.307Z"},"url":"https://mcp.waymark.network/r/62161644-dffd-406a-b2d9-9d1665cf3445"}