siyuan-note/siyuan · error

Conf.Language(131)

Error message

Conf.Language(131)

What it means

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.

Source

Thrown at kernel/model/sync.go:660

	return
}

var (
	syncLock             = sync.Mutex{}
	isSyncing            = atomic.Bool{}
	syncAutoRequests     = syncRequestState{}
	syncManualRequests   = syncRequestState{}
	syncExitRequests     = syncRequestState{}
	syncUploadRequests   = syncRequestState{}
	syncDownloadRequests = syncRequestState{}
)

func CreateCloudSyncDir(name string) (err error) {
	switch Conf.Sync.Provider {
	case conf.ProviderSiYuan, conf.ProviderLocal:
		break
	default:
		err = errors.New(Conf.Language(131))
		return
	}

	name = util.RemoveInvalid(name)
	if !cloud.IsValidCloudDirName(name) {
		return errors.New(Conf.Language(37))
	}

	repo, err := newRepository()
	if err != nil {
		return
	}

	err = repo.CreateCloudRepo(name)
	if err != nil {
		err = errors.New(formatRepoErrorMsg(err))
		return
	}

View on GitHub (pinned to 251596fc0d)

Solutions

  1. For S3/WebDAV providers, create the bucket/folder in the provider's console (AWS console, MinIO, Nextcloud, etc.), then set it as CloudName.
  2. If you want SiYuan-managed directories, switch the provider to SiYuan cloud or Local first.
  3. Refresh the directory list after creating the external bucket.

Example fix

// before: provider=S3, call createCloudSyncDir -> error 131
// after: create bucket in S3 console, then setSync CloudName to that bucket
Defensive patterns

Strategy: validation

Validate before calling

// Go caller
if Conf.Sync.Provider != conf.ProviderSiYuan && Conf.Sync.Provider != conf.ProviderLocal {
    return errors.New("create the bucket in your provider console instead")
}

Type guard

// Go
func canCreateDirInSiYuan() bool {
    p := Conf.Sync.Provider
    return p == conf.ProviderSiYuan || p == conf.ProviderLocal
}

Prevention

When it happens

Trigger: 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.

Common situations: Switched to S3/WebDAV provider but still using the 'create directory' button meant for the SiYuan cloud. Misunderstanding that buckets are external resources.

Related errors


AI-assisted analysis of siyuan-note/siyuan@251596fc0d (2026-08-12). Data as JSON: /api/errors/00dca7cfad337107. Report an issue: GitHub.