weaviate/weaviate · error
init nested prop %q: value bucket: %w
Error message
init nested prop %q: value bucket: %w
What it means
This error wraps a failure to create or load the per-property nested 'value' inverted-index bucket (StrategyRoaringSet) used by nested filtering. Weaviate throws it during shard property initialization (createNestedPropertyBuckets) when inverted.HasNestedFilterableIndex(prop) is true but CreateOrLoadBucket fails on helpers.BucketNestedFromPropNameLSM(prop.Name). The wrapped error carries the underlying cause (I/O, corrupt dir, bad strategy).
Source
Thrown at adapters/repos/db/shard_init_properties_nested.go:39
"github.com/weaviate/weaviate/entities/models"
)
// createNestedPropertyBuckets creates the value and metadata buckets for a
// nested (object/object[]) property. Both use StrategyRoaringSet with keys
// prefixed by hash8(path) to multiplex all sub-properties into shared buckets.
func (s *Shard) createNestedPropertyBuckets(ctx context.Context, prop *models.Property,
makeBucketOptions lsmkv.MakeBucketOptions,
) error {
if err := s.isReadOnly(); err != nil {
return err
}
if inverted.HasNestedFilterableIndex(prop) {
if err := s.store.CreateOrLoadBucket(ctx,
helpers.BucketNestedFromPropNameLSM(prop.Name),
makeBucketOptions(lsmkv.StrategyRoaringSet)...,
); err != nil {
return fmt.Errorf("init nested prop %q: value bucket: %w", prop.Name, err)
}
}
//nolint:staticcheck // intentionally empty, see comment below
if inverted.HasNestedSearchableIndex(prop) {
// TODO aliszka:nested_filtering create nested searchable bucket (Phase 2)
}
//nolint:staticcheck // intentionally empty, see comment below
if inverted.HasNestedRangeableIndex(prop) {
// TODO aliszka:nested_filtering create nested rangeable bucket (Phase 3)
}
if inverted.HasAnyNestedInvertedIndex(prop) {
if err := s.store.CreateOrLoadBucket(ctx,
helpers.BucketNestedMetaFromPropNameLSM(prop.Name),
makeBucketOptions(lsmkv.StrategyRoaringSet)...,
); err != nil {View on GitHub (pinned to 75aa4b6d11)
Solutions
- Inspect the wrapped error from CreateOrLoadBucket for the root cause (I/O error vs strategy determination).
- Fix filesystem permissions / read-only mount so Weaviate can write under the shard's LSM path.
- If the specific nested bucket directory is corrupt, stop the node and restore the shard from backup or remove the shard dir on one replica for a rebuild.
- Run a Weaviate version that supports nested filterable buckets consistently across the cluster.
- Verify the index config (nestedFilterable) is intentional — disabling it avoids creating the bucket.
Example fix
// before: schema update with nested filtering on a read-only volume
// {"invertedIndexConfig": {"indexNullState": true, ...nestedFilterable}}
// after: remount writable first
// mount -o remount,rw /var/lib/weaviate
// # then re-apply the schema update Defensive patterns
Strategy: validation
Validate before calling
// before enabling nested filtering on a property, ensure shard dirs are writable
if err := syscall.Access(shardPath, unix.W_OK); err != nil {
return fmt.Errorf("shard %s not writable: %w", shardPath, err)
}
// and confirm feature support in your version
if !supportsNestedFilterable(version) {
return fmt.Errorf("nested filterable index unsupported in %s", version)
} Try / catch
err := applySchema(ctx, class)
if err != nil {
// wrapped chain: 'init nested prop %q: value bucket: <cause>'
log.Errorf("schema apply failed: %v", err)
if isFilesystemErr(err) { alertOps(err) }
} Prevention
- Enable nestedFilterable only when the cluster runs a supporting version.
- Gracefully shut down to prevent torn nested bucket directories.
- After restoring backups, chown data to the Weaviate UID before start.
- Monitor disk and inode usage on the storage volume.
- Avoid manually removing single bucket dirs; rebuild the whole shard from replicas instead.
When it happens
Trigger: Creating/updating a schema class whose property has nested filtering enabled, during shard init, when the nested-value bucket cannot be created or loaded — corrupt bucket directory, unexpected strategy on disk, permission/read-only filesystem, or full disk.
Common situations: Enabling nested filtering (nestedFilterable index config) on a collection and hitting a torn bucket directory from a previous crash; read-only data volume; running multiple Weaviate versions against the same data dir where the nested bucket feature differs; permission problems after restoring a backup as root.
Related errors
- init nested prop %q: meta bucket: %w
- create id property: %w
- create dimensions tracking property: %w
- create creation time property: %w
- create last update time property: %w
AI-assisted analysis of weaviate/weaviate@75aa4b6d11 (2026-09-04).
Data as JSON: /api/errors/7a4534d2e62ab777.
Report an issue: GitHub.