weaviate/weaviate · error
objects bucket not available (store shutting down)
Error message
objects bucket not available (store shutting down)
What it means
During objectVectorSearch, the aggregator fetches the 'objects' LSM bucket from the store to materialize full objects for the doc IDs found by the vector search. After Store.Shutdown clears the bucket map, Bucket() returns nil; the code detects this and fails fast with a clear message instead of nil-pointer panicking.
Source
Thrown at adapters/repos/db/aggregator/vector_search.go:81
if err != nil {
return nil, nil, fmt.Errorf("aggregate search by vector: %w", err)
}
return idsFound, dists, nil
}
func (a *Aggregator) objectVectorSearch(ctx context.Context, searchVector models.Vector,
allowList helpers.AllowList,
) ([]*storobj.Object, []float32, error) {
ids, dists, err := a.vectorSearch(ctx, allowList, searchVector)
if err != nil {
return nil, nil, err
}
// Nil once Store.Shutdown has cleared the bucket map; fail fast.
bucket := a.store.Bucket(helpers.ObjectsBucketLSM)
if bucket == nil {
return nil, nil, fmt.Errorf("objects bucket not available (store shutting down)")
}
objs, err := storobj.ObjectsByDocID(bucket, ids, additional.Properties{}, nil, a.logger)
if err != nil {
return nil, nil, fmt.Errorf("get objects by doc id: %w", err)
}
return objs, dists, nil
}
func (a *Aggregator) buildAllowList(ctx context.Context) (helpers.AllowList, error) {
var (
allow helpers.AllowList
err error
)
if a.params.Filters != nil {
allow, err = inverted.NewSearcher(a.logger, a.store, a.getSchema.ReadOnlyClass, a.propIndices,
a.classSearcher, a.stopwordProvider, a.shardVersion, a.isFallbackToSearchable,
a.isRangeableLocallyReady, a.tenant, a.nestedCrossRefLimit, a.bitmapFactory).View on GitHub (pinned to 75aa4b6d11)
Solutions
- Treat as transient: retry the query against another node once the shutdown completes or drain traffic before stopping the node.
- Stop routing requests to the node before triggering shutdown (drain first, then stop).
- If seen at steady state (not during shutdown), check for a bug where the store was closed prematurely and inspect logs for Store.Shutdown callers.
Defensive patterns
Strategy: retry
Try / catch
if strings.Contains(err.Error(), "store shutting down") {
// transient: fail over to another node / retry after readiness probe recovers
} Prevention
- Drain traffic before stopping nodes (readiness probes + load balancer deregistration).
- Do not send queries during rolling restarts.
When it happens
Trigger: An in-flight aggregation (or gRPC/REST search) that reaches objectVectorSearch while the store is shutting down — e.g. server stopping, SIGTERM handling, or a shard being closed concurrently with a query.
Common situations: Queries issued during rolling restarts or deployments; health checks sending traffic before shutdown completes; load balancers not yet draining the node.
Related errors
- already shut or dropped
- shard shutdown in progress
- %w: adding a bucket %q to store %q
- %w: replacing bucket %q for %q in store %q
- %w: renaming bucket %q for %q in store %q
AI-assisted analysis of weaviate/weaviate@75aa4b6d11 (2026-09-04).
Data as JSON: /api/errors/9c9edf42967f11f3.
Report an issue: GitHub.