siyuan-note/siyuan · error

Conf.Language(77), msg: endpoint

Error message

Conf.Language(77), msg: endpoint [%s] not exist

What it means

Error from SetSyncProviderLocal: the local sync endpoint directory does not exist on disk. The message is logged then wrapped with Conf.Language(77), the localized sync-failure template, so the user sees a translated error containing "endpoint [%s] not exist".

Solutions

  1. Create the endpoint directory or correct the path
  2. Verify the path is reachable from the kernel process (permissions, mounts)
  3. Re-run the sync provider setup after fixing the path
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at kernel/model/sync.go:706 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of siyuan-note/siyuan@9f775e8a12 (2026-09-19). Data as JSON: /api/errors/bbeedffc90e2b18e. Report an issue: GitHub.

Appendix: source

Thrown at kernel/model/sync.go:706

}

func SetSyncProviderLocal(local *conf.Local) (err error) {
	release := lockAssetSourceChange()
	defer release()
	local.Endpoint = strings.TrimSpace(local.Endpoint)
	local.Endpoint = util.NormalizeLocalPath(local.Endpoint)

	absPath, err := filepath.Abs(local.Endpoint)
	if nil != err {
		msg := fmt.Sprintf("get endpoint [%s] abs path failed: %s", local.Endpoint, err)
		logging.LogError(msg)
		err = fmt.Errorf(Conf.Language(77), msg)
		return
	}
	if !gulu.File.IsExist(absPath) {
		msg := fmt.Sprintf("endpoint [%s] not exist", local.Endpoint)
		logging.LogError(msg)
		err = fmt.Errorf(Conf.Language(77), msg)
		return
	}
	if util.IsAbsPathInWorkspace(absPath) || filepath.Clean(absPath) == filepath.Clean(util.WorkspaceDir) {
		msg := fmt.Sprintf("endpoint [%s] is in workspace", local.Endpoint)
		logging.LogError(msg)
		err = fmt.Errorf(Conf.Language(77), msg)
		return
	}

	if gulu.File.IsSubPath(absPath, util.WorkspaceDir) {
		msg := fmt.Sprintf("endpoint [%s] is parent of workspace", local.Endpoint)
		logging.LogError(msg)
		err = fmt.Errorf(Conf.Language(77), msg)
		return
	}

	local.Timeout = util.NormalizeTimeout(local.Timeout)
	local.ConcurrentReqs = util.NormalizeConcurrentReqs(local.ConcurrentReqs, conf.ProviderLocal)

View on GitHub (pinned to 9f775e8a12)