siyuan-note/siyuan · error

This operation is not supported, please go to the cloud stor

Error message

This operation is not supported, please go to the cloud storage provider management console to operate

What it means

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.

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 afa823b6b4)

Solutions

  1. Create the bucket or directory in the provider's own management console, then select it as the sync dir
  2. Or switch the provider back to SiYuan or Local if in-app directory creation is required
Defensive patterns

Strategy: type-guard

Validate before calling

func canManageCloudSyncDirs(provider int) bool {
	return provider == conf.ProviderSiYuan || provider == conf.ProviderLocal
}

if !canManageCloudSyncDirs(model.Conf.Sync.Provider) {
	// create the bucket/dir in the provider console instead of calling the API
	return nil
}
model.CreateCloudSyncDir(name)

Type guard

func canManageCloudSyncDirs(provider int) bool {
	return provider == conf.ProviderSiYuan || provider == conf.ProviderLocal
}

Prevention

When it happens

Trigger: Calling CreateCloudSyncDir (POST /api/sync/createCloudSyncDir, Settings - Sync - add cloud sync directory) while Conf.Sync.Provider is S3 or WebDAV.

Common situations: After switching the provider to S3/WebDAV, a stale UI tab or automation script still calls the create-directory endpoint.

Related errors


AI-assisted analysis of siyuan-note/siyuan@afa823b6b4 (2026-08-18). Data as JSON: /api/errors/9e55c5ce1753c628. Report an issue: GitHub.