{"record":{"id":"b7832c3d121c915b","repo":"juicedata/juicefs","slug":"object-storage-s-b7832c","errorCode":null,"errorMessage":"object storage: %s","messagePattern":"object storage: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"critical","filePath":"cmd/object.go","lineNumber":522,"sourceCode":"\tif runtime.GOOS == \"windows\" && utils.IsWinAdminOrElevatedPrivilege() {\n\t\tuid = 0\n\t\tgid = 0\n\t}\n\tmetaUrl := os.Getenv(endpoint)\n\tif metaUrl == \"\" {\n\t\tmetaUrl = endpoint\n\t}\n\tmetaConf := meta.DefaultConf()\n\tmetaConf.MaxDeletes = 10\n\tmetaConf.NoBGJob = true\n\tmetaCli := meta.NewClient(metaUrl, metaConf)\n\tformat, err := metaCli.Load(true)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"load setting: %s\", err)\n\t}\n\tblob, err := NewReloadableStorage(format, metaCli, nil)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"object storage: %s\", err)\n\t}\n\tchunkConf := getDefaultChunkConf(format)\n\tstore := chunk.NewCachedStore(blob, *chunkConf, nil)\n\tregisterMetaMsg(metaCli, store, chunkConf)\n\terr = metaCli.NewSession(false)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"new session: %s\", err)\n\t}\n\tmetaCli.OnReload(func(fmt *meta.Format) {\n\t\tstore.UpdateLimit(fmt.UploadLimit, fmt.DownloadLimit)\n\t})\n\n\tvfsConf := &vfs.Config{\n\t\tMeta:            metaConf,\n\t\tFormat:          *format,\n\t\tVersion:         version.Version(),\n\t\tChunk:           chunkConf,\n\t\tAttrTimeout:     time.Second,","sourceCodeStart":504,"sourceCodeEnd":540,"githubUrl":"https://github.com/juicedata/juicefs/blob/c9a67b23e8e08ec23ec331aa6f1675e2319e921c/cmd/object.go#L504-L540","documentation":"After loading the volume format, newJFS calls NewReloadableStorage(format, metaCli, nil) to construct the underlying object storage named in the volume settings; failure is wrapped as 'object storage: %s'. This typically means the configured bucket cannot be reached or authenticated, or the storage URL is invalid.","triggerScenarios":"NewReloadableStorage fails during newJFS: invalid object storage URL in the volume format, missing cloud-provider credentials (env vars), storage endpoint unreachable, unsupported storage type string.","commonSituations":"Bucket deleted or renamed after formatting the volume; AWS/GCS/OSS credentials not present in the environment; region changed; offline/blocked endpoint when running gateway/sync against jfs:// target.","solutions":["Check the wrapped error for the provider cause (NoSuchBucket, AccessDenied, DNS failure).","Verify credentials/env vars (AWS_ACCESS_KEY_ID, etc.) on the host running the command.","Run `juicefs status <meta-url>` to see the configured storage URL and test access to that bucket.","If the bucket moved, update the volume setting (`juicefs config`/re-format) or restore access to the original bucket."],"exampleFix":"// before\n$ juicefs gateway jfs://redis://host/1 /mnt\n// object storage: Bucket not found\n// after: fix storage config or credentials\n$ export AWS_ACCESS_KEY_ID=... AWS_SECRET_ACCESS_KEY=...\n$ juicefs gateway redis://host/1 /mnt","handlingStrategy":"validation","validationCode":"// before newJFS, check the bucket is reachable with current credentials\n$ juicefs status <meta-url>   // shows configured storage URL\n$ aws s3 ls s3://<bucket>/    // verifies access","typeGuard":null,"tryCatchPattern":"blob, err := NewReloadableStorage(format, metaCli, nil)\nif err != nil {\n    return nil, fmt.Errorf(\"object storage: %s\", err)\n}","preventionTips":["Provision cloud credentials in the environment before starting gateway/sync.","Verify the bucket in the volume format still exists and is in the right region.","Test storage reachability from the host (DNS, egress firewall).","Update volume settings with `juicefs config` if the bucket changed."],"tags":["object-storage","credentials","startup","config"],"backgroundTag":"missing-credentials","analyzedSha":"c9a67b23e8e08ec23ec331aa6f1675e2319e921c","analyzedAt":"2026-09-06T17:55:48.476Z","contentChangedAt":"2026-09-06T17:55:48.476Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}