weaviate/weaviate · error
no bucket named 'objects' found in store %s
Error message
no bucket named 'objects' found in store %s
What it means
Store.PauseObjectBucketCompaction looks up the 'objects' bucket without re-acquiring the read lock (bucketNoLock, to avoid deadlock against queued writers) and returns this error when that bucket is not loaded in the store. It is a guard so callers don't call pauseCompaction on a nil bucket.
Source
Thrown at adapters/repos/db/lsmkv/store_reindex.go:31
import (
"context"
"fmt"
"github.com/weaviate/weaviate/adapters/repos/db/helpers"
)
// PauseObjectBucketCompaction pauses the compaction cycle for the objects bucket.
// This is so that the BMW migration can run without interference from the
// compaction process, as they both use the same locks.
func (s *Store) PauseObjectBucketCompaction(ctx context.Context) error {
s.bucketAccessLock.RLock()
defer s.bucketAccessLock.RUnlock()
// Bucket() would recursively RLock and deadlock against a queued writer (weaviate/0-weaviate-issues#251).
b := s.bucketNoLock(helpers.ObjectsBucketLSM)
if b == nil {
return fmt.Errorf("no bucket named 'objects' found in store %s", s.dir)
}
return b.pauseCompaction(ctx)
}
// ResumeObjectBucketCompaction resumes the compaction cycle for the objects bucket.
func (s *Store) ResumeObjectBucketCompaction(ctx context.Context) error {
s.bucketAccessLock.RLock()
defer s.bucketAccessLock.RUnlock()
b := s.bucketNoLock(helpers.ObjectsBucketLSM)
if b == nil {
return fmt.Errorf("no bucket named 'objects' found in store %s", s.dir)
}
return b.resumeCompaction(ctx)
}
View on GitHub (pinned to 75aa4b6d11)
Solutions
- Check that the collection/shard exists and its objects bucket is loaded before pausing compaction.
- Treat the error as 'nothing to pause' in orchestration code: skip and continue instead of failing the reindex.
- Serialize compaction-pause calls with shard lifecycle (avoid racing shard deletion).
- Verify bucket initialization completed at startup (deferred/paused-index scenarios) before issuing pause calls.
Example fix
// before
err := store.PauseObjectBucketCompaction(ctx) // fails if bucket absent
// after
if err := store.PauseObjectBucketCompaction(ctx); err != nil {
if strings.Contains(err.Error(), "no bucket named 'objects'") {
return nil // nothing to pause
}
return err
} Defensive patterns
Strategy: validation
Validate before calling
if store.Bucket(helpers.ObjectsBucketLSM) == nil {
return nil // objects bucket not loaded: nothing to pause
} Type guard
func objectsBucketLoaded(s *lsmkv.Store) bool { return s.Bucket(helpers.ObjectsBucketLSM) != nil } Try / catch
err := store.PauseObjectBucketCompaction(ctx)
if err != nil {
if strings.Contains(err.Error(), "no bucket named 'objects'") {
return nil // benign: bucket absent
}
return fmt.Errorf("pause objects compaction: %w", err)
} Prevention
- Only pause compaction after bucket initialization completed for the shard.
- Serialize pause/resume orchestration with shard/collection deletion.
- Treat missing-bucket errors as skip-not-fail in reindex flows.
- Log shard lifecycle events alongside compaction pause attempts.
When it happens
Trigger: Calling PauseObjectBucketCompaction on a store that has no 'objects' bucket — e.g. the index has no objects bucket (empty/nonexistent shard state), the bucket was dropped, or the store was created but buckets were never initialized.
Common situations: Reindex/compaction orchestration running against a shard that was deleted concurrently; calling pause before the store finished loading buckets; a collection that never materialized an objects bucket (e.g. before first write); multi-tenant shards being removed during a reindex.
Related errors
- failed pausing compaction for shard '%s'
- failed resuming compaction for shard '%s'
- could not copy all data into buffer
- not found
- adding prop '%s': %w
AI-assisted analysis of weaviate/weaviate@75aa4b6d11 (2026-09-04).
Data as JSON: /api/errors/c682bf0e67f361c3.
Report an issue: GitHub.