{"record":{"id":"7a4534d2e62ab777","repo":"weaviate/weaviate","slug":"init-nested-prop-q-value-bucket-w","errorCode":null,"errorMessage":"init nested prop %q: value bucket: %w","messagePattern":"init nested prop %q: value bucket: %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"adapters/repos/db/shard_init_properties_nested.go","lineNumber":39,"sourceCode":"\t\"github.com/weaviate/weaviate/entities/models\"\n)\n\n// createNestedPropertyBuckets creates the value and metadata buckets for a\n// nested (object/object[]) property. Both use StrategyRoaringSet with keys\n// prefixed by hash8(path) to multiplex all sub-properties into shared buckets.\nfunc (s *Shard) createNestedPropertyBuckets(ctx context.Context, prop *models.Property,\n\tmakeBucketOptions lsmkv.MakeBucketOptions,\n) error {\n\tif err := s.isReadOnly(); err != nil {\n\t\treturn err\n\t}\n\n\tif inverted.HasNestedFilterableIndex(prop) {\n\t\tif err := s.store.CreateOrLoadBucket(ctx,\n\t\t\thelpers.BucketNestedFromPropNameLSM(prop.Name),\n\t\t\tmakeBucketOptions(lsmkv.StrategyRoaringSet)...,\n\t\t); err != nil {\n\t\t\treturn fmt.Errorf(\"init nested prop %q: value bucket: %w\", prop.Name, err)\n\t\t}\n\t}\n\n\t//nolint:staticcheck // intentionally empty, see comment below\n\tif inverted.HasNestedSearchableIndex(prop) {\n\t\t// TODO aliszka:nested_filtering create nested searchable bucket (Phase 2)\n\t}\n\n\t//nolint:staticcheck // intentionally empty, see comment below\n\tif inverted.HasNestedRangeableIndex(prop) {\n\t\t// TODO aliszka:nested_filtering create nested rangeable bucket (Phase 3)\n\t}\n\n\tif inverted.HasAnyNestedInvertedIndex(prop) {\n\t\tif err := s.store.CreateOrLoadBucket(ctx,\n\t\t\thelpers.BucketNestedMetaFromPropNameLSM(prop.Name),\n\t\t\tmakeBucketOptions(lsmkv.StrategyRoaringSet)...,\n\t\t); err != nil {","sourceCodeStart":21,"sourceCodeEnd":57,"githubUrl":"https://github.com/weaviate/weaviate/blob/75aa4b6d11f8818305aafd4440b4e32794f7ca04/adapters/repos/db/shard_init_properties_nested.go#L21-L57","documentation":"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).","triggerScenarios":"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.","commonSituations":"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.","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."],"exampleFix":"// before: schema update with nested filtering on a read-only volume\n//   {\"invertedIndexConfig\": {\"indexNullState\": true, ...nestedFilterable}}\n// after: remount writable first\n//   mount -o remount,rw /var/lib/weaviate\n//   # then re-apply the schema update","handlingStrategy":"validation","validationCode":"// before enabling nested filtering on a property, ensure shard dirs are writable\nif err := syscall.Access(shardPath, unix.W_OK); err != nil {\n    return fmt.Errorf(\"shard %s not writable: %w\", shardPath, err)\n}\n// and confirm feature support in your version\nif !supportsNestedFilterable(version) {\n    return fmt.Errorf(\"nested filterable index unsupported in %s\", version)\n}","typeGuard":null,"tryCatchPattern":"err := applySchema(ctx, class)\nif err != nil {\n    // wrapped chain: 'init nested prop %q: value bucket: <cause>'\n    log.Errorf(\"schema apply failed: %v\", err)\n    if isFilesystemErr(err) { alertOps(err) }\n}","preventionTips":["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."],"tags":["go","storage","lsmkv","nested-filtering","shard-init"],"backgroundTag":"shard-bucket-init-failed","analyzedSha":"75aa4b6d11f8818305aafd4440b4e32794f7ca04","analyzedAt":"2026-09-04T14:58:20.392Z","contentChangedAt":"2026-09-04T14:58:20.392Z","schemaVersion":2},"datasetVersion":"2026-09-11T21:17:09.523Z"}