{"record":{"id":"67b4bbf3b46f7f3f","repo":"weaviate/weaviate","slug":"container-must-not-be-empty","errorCode":null,"errorMessage":"container must not be empty","messagePattern":"container must not be empty","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"modules/backup-azure/client.go","lineNumber":137,"sourceCode":"\t}\n\treturn &azureClient{client: client, config: *config, serviceURL: serviceURL, dataPath: dataPath, logger: logger, nodeID: nodeID}, nil\n}\n\nfunc (a *azureClient) HomeDir(backupID, overrideBucket, overridePath string) string {\n\tif overrideBucket == \"\" {\n\t\toverrideBucket = a.config.Container\n\t}\n\n\treturn a.serviceURL + path.Join(overrideBucket, a.makeObjectName(overridePath, []string{backupID}))\n}\n\nfunc (a *azureClient) resolveContainer(overrideBucket string) (string, error) {\n\tcontainer := a.config.Container\n\tif overrideBucket != \"\" {\n\t\tcontainer = overrideBucket\n\t}\n\tif container == \"\" {\n\t\treturn \"\", fmt.Errorf(\"container must not be empty\")\n\t}\n\treturn container, nil\n}\n\nfunc (g *azureClient) makeObjectName(overridePath string, parts []string) string {\n\tif overridePath != \"\" {\n\t\tbase := path.Join(parts...)\n\t\treturn path.Join(overridePath, base)\n\t} else {\n\t\tbase := path.Join(parts...)\n\t\treturn path.Join(g.config.BackupPath, base)\n\t}\n}\n\nfunc (a *azureClient) AllBackups(ctx context.Context) ([]*backup.DistributedBackupDescriptor, error) {\n\tprefix := a.config.BackupPath\n\tif prefix != \"\" && !strings.HasSuffix(prefix, \"/\") {\n\t\tprefix += \"/\"","sourceCodeStart":119,"sourceCodeEnd":155,"githubUrl":"https://github.com/weaviate/weaviate/blob/75aa4b6d11f8818305aafd4440b4e32794f7ca04/modules/backup-azure/client.go#L119-L155","documentation":"Guard in resolveContainer on the Azure backup client: after applying any bucket override, the effective container name is still empty — i.e. neither the module config nor an override supplied a container. Every Azure Blob operation (GetObject, PutObject, Initialize, Write, Read) funnels through this resolution, so all of them fail with this error when the container is unconfigured.","triggerScenarios":"Thrown at modules/backup-azure/client.go:137 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set the AZURE_CONTAINER environment variable (or the container field in the backup module config)","Pass an explicit bucket/container override in the backup request","Verify the module was initialized with a non-empty container string"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"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"}