{"record":{"id":"00dca7cfad337107","repo":"siyuan-note/siyuan","slug":"conf-language-131","errorCode":null,"errorMessage":"Conf.Language(131)","messagePattern":"Conf\\.Language\\(131\\)","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/251596fc0de2f9528c00c224252fd073a99973f4/kernel/model/sync.go#L642-L678","documentation":"CreateCloudSyncDir only supports providers ProviderSiYuan and ProviderLocal; any other provider (S3, WebDAV) returns Conf.Language(131) = 'This operation is not supported, please go to the cloud storage provider management console to operate'. For S3/WebDAV, cloud directories (buckets/folders) must be managed in the provider's own console, not through SiYuan.","triggerScenarios":"POST /api/sync/createCloudSyncDir while Conf.Sync.Provider is S3 or WebDAV. The user tries to create a sync subfolder from inside SiYuan instead of the S3/WebDAV provider's UI.","commonSituations":"Switched to S3/WebDAV provider but still using the 'create directory' button meant for the SiYuan cloud. Misunderstanding that buckets are external resources.","solutions":["For S3/WebDAV providers, create the bucket/folder in the provider's console (AWS console, MinIO, Nextcloud, etc.), then set it as CloudName.","If you want SiYuan-managed directories, switch the provider to SiYuan cloud or Local first.","Refresh the directory list after creating the external bucket."],"exampleFix":"// before: provider=S3, call createCloudSyncDir -> error 131\n// after: create bucket in S3 console, then setSync CloudName to that bucket","handlingStrategy":"validation","validationCode":"// Go caller\nif Conf.Sync.Provider != conf.ProviderSiYuan && Conf.Sync.Provider != conf.ProviderLocal {\n    return errors.New(\"create the bucket in your provider console instead\")\n}","typeGuard":"// Go\nfunc canCreateDirInSiYuan() bool {\n    p := Conf.Sync.Provider\n    return p == conf.ProviderSiYuan || p == conf.ProviderLocal\n}","tryCatchPattern":null,"preventionTips":["Hide/disable the Create Directory button in the UI when provider is S3 or WebDAV.","Link to the relevant provider console from the sync settings.","Educate users that SiYuan-managed dirs only exist for SiYuan cloud and Local."],"tags":["sync","cloud","provider","s3","webdav","i18n","kernel","validation"],"backgroundTag":null,"analyzedSha":"251596fc0de2f9528c00c224252fd073a99973f4","analyzedAt":"2026-08-12T21:18:37.123Z","schemaVersion":2},"datasetVersion":"2026-08-12T23:17:12.415Z"}