{"record":{"id":"9e55c5ce1753c628","repo":"siyuan-note/siyuan","slug":"this-operation-is-not-supported-please-go-to-the","errorCode":null,"errorMessage":"This operation is not supported, please go to the cloud storage provider management console to operate","messagePattern":"This operation is not supported, please go to the cloud storage provider management console to operate","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"kernel/model/sync.go","lineNumber":660,"sourceCode":"\treturn\n}\n\nvar (\n\tsyncLock             = sync.Mutex{}\n\tisSyncing            = atomic.Bool{}\n\tsyncAutoRequests     = syncRequestState{}\n\tsyncManualRequests   = syncRequestState{}\n\tsyncExitRequests     = syncRequestState{}\n\tsyncUploadRequests   = syncRequestState{}\n\tsyncDownloadRequests = syncRequestState{}\n)\n\nfunc CreateCloudSyncDir(name string) (err error) {\n\tswitch Conf.Sync.Provider {\n\tcase conf.ProviderSiYuan, conf.ProviderLocal:\n\t\tbreak\n\tdefault:\n\t\terr = errors.New(Conf.Language(131))\n\t\treturn\n\t}\n\n\tname = util.RemoveInvalid(name)\n\tif !cloud.IsValidCloudDirName(name) {\n\t\treturn errors.New(Conf.Language(37))\n\t}\n\n\trepo, err := newRepository()\n\tif err != nil {\n\t\treturn\n\t}\n\n\terr = repo.CreateCloudRepo(name)\n\tif err != nil {\n\t\terr = errors.New(formatRepoErrorMsg(err))\n\t\treturn\n\t}","sourceCodeStart":642,"sourceCodeEnd":678,"githubUrl":"https://github.com/siyuan-note/siyuan/blob/afa823b6b4e4f183511e0bc0a3be93caa94c7c97/kernel/model/sync.go#L642-L678","documentation":"CreateCloudSyncDir only allows the SiYuan and Local providers through its switch; every other provider (S3, WebDAV) gets i18n key 131 ('This operation is not supported, please go to the cloud storage provider management console to operate'). SiYuan cannot create buckets or directories on external storage services through its API, so nothing is created.","triggerScenarios":"Calling CreateCloudSyncDir (POST /api/sync/createCloudSyncDir, Settings - Sync - add cloud sync directory) while Conf.Sync.Provider is S3 or WebDAV.","commonSituations":"After switching the provider to S3/WebDAV, a stale UI tab or automation script still calls the create-directory endpoint.","solutions":["Create the bucket or directory in the provider's own management console, then select it as the sync dir","Or switch the provider back to SiYuan or Local if in-app directory creation is required"],"exampleFix":null,"handlingStrategy":"type-guard","validationCode":"func canManageCloudSyncDirs(provider int) bool {\n\treturn provider == conf.ProviderSiYuan || provider == conf.ProviderLocal\n}\n\nif !canManageCloudSyncDirs(model.Conf.Sync.Provider) {\n\t// create the bucket/dir in the provider console instead of calling the API\n\treturn nil\n}\nmodel.CreateCloudSyncDir(name)","typeGuard":"func canManageCloudSyncDirs(provider int) bool {\n\treturn provider == conf.ProviderSiYuan || provider == conf.ProviderLocal\n}","tryCatchPattern":null,"preventionTips":["Gate create/remove cloud dir UI actions on provider being SiYuan or Local","Document that S3/WebDAV buckets are managed in the provider console"],"tags":["sync","s3","webdav","provider-unsupported"],"backgroundTag":"unsupported-provider-operation","analyzedSha":"afa823b6b4e4f183511e0bc0a3be93caa94c7c97","analyzedAt":"2026-08-18T17:04:10.865Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}