weaviate/weaviate · error
backup class %v descriptor: %w
Error message
backup class %v descriptor: %w
What it means
Wraps any failure from idx.descriptor(...) — the per-class backup descriptor construction — and stores it in desc.Error as "backup class <name> descriptor: <cause>". This means building the class's backup description (listing/validating shard backups against the base descriptor) failed locally on this node.
Source
Thrown at adapters/repos/db/backup.go:146
return
}
idx.dropIndex.RLock()
defer idx.dropIndex.RUnlock()
if err := idx.enterRead(); err != nil {
desc.Error = fmt.Errorf("index for class %v is closed", c)
return
}
defer idx.exitRead()
var classBaseDescr []*backup.ClassDescriptor
for _, b := range baseDescrs {
classbaseDescrTmp := b.GetClassDescriptor(c)
if classbaseDescrTmp == nil {
continue
}
classBaseDescr = append(classBaseDescr, classbaseDescrTmp)
}
if err := idx.descriptor(ctx, bakid, &desc, classBaseDescr); err != nil {
desc.Error = fmt.Errorf("backup class %v descriptor: %w", c, err)
}
}()
ds <- desc
if desc.Error != nil {
break
}
}
}
enterrors.GoWrapper(f, db.logger)
return ds
}
// ReleaseBackup release resources acquired by the index during backup
func (db *DB) ReleaseBackup(ctx context.Context, bakID, class string) (err error) {
fields := logrus.Fields{
"op": "release_backup",
"class": class,View on GitHub (pinned to 75aa4b6d11)
Solutions
- Inspect the wrapped cause for the underlying storage error
- Verify the backup backend (S3/GCS/Azure/FS) credentials, permissions and availability
- Clean up stale/partial backup artifacts and retry with a fresh backup ID
- Retry the backup; transient backend errors are a common cause
Example fix
// before client.Backup().Create(backend, id, "Articles") // backend misconfigured // after // validate backend first client.Backup().Creator().WithBackend(backend).WithBackupID(id) // check store access/permissions beforehand
Defensive patterns
Strategy: retry
Validate before calling
// Verify backend accessibility first
if err := checkBackupBackendAccess(ctx, backend); err != nil {
return fmt.Errorf("fix backend before backup: %w", err)
} Try / catch
if strings.Contains(err.Error(), "backup class") {
var cause error
errors.As(err, &cause) // inspect underlying storage error
// fix backend/permissions, then retry with fresh backup ID
} Prevention
- Test backup backend credentials/permissions regularly
- Clean up stale partial backups from failed runs
- Use unique backup IDs per attempt to avoid descriptor mismatches
When it happens
Trigger: idx.descriptor returns an error during backup AllClasses: missing or corrupt shard backup files, backend storage errors, or mismatch between the current descriptor and the base descriptors from previous backup attempts.
Common situations: Object-store outages or misconfigured backup backends, partial backups left behind by earlier failed runs, permission errors on the backup bucket.
Related errors
- fetch descriptor %q: %w
- unmarshal descriptor %q: %w
- The V0 gRPC API is deprecated and will be removed in the nex
- could not cast generative result additional prop
- could not cast generative search params
AI-assisted analysis of weaviate/weaviate@75aa4b6d11 (2026-09-04).
Data as JSON: /api/errors/b0a961b5c8779322.
Report an issue: GitHub.