siyuan-note/siyuan · error
Account authentication failed, please login again
Error message
Account authentication failed, please login again
What it means
UploadAssets2Cloud received HTTP 401 from the cloud server: the symphony session cookie (the upload token) is no longer accepted. The localized message (Conf.Language(31)) asks the user to log in again, and the upload batch aborts immediately.
Solutions
- Open Settings - Account, log out and back in, then retry the upload
- Verify the account and subscription status are active
- Check that the system clock is correct
- Disable proxies that strip or rewrite cookies for the cloud domain
Defensive patterns
Strategy: retry
Try / catch
On an error equal to the re-login message, stop the batch, prompt re-login, refresh the token, and retry once from the first un-uploaded asset - never loop on 401 with the same token.
Prevention
- Check account login state before starting bulk uploads
- Re-login after changing account password or subscription
- Keep system time synchronized
When it happens
Trigger: Uploading assets to cloud storage while the account token expired or was revoked - password changed, logged in on another device, subscription lapsed, or the token was invalidated server-side.
Common situations: Long-running sessions that outlive the token; account or subscription changes made after login; system clock far off; proxies stripping cookies.
Understand the failure class
- Authentication and authorization failures — expired tokens, bad credentials, and missing scopes.
Related errors
- invalid cloud login token
- Upload failed
- Conf.Language(31)
- Conf.Language(31)
- Conf.Language(31) (localized cloud auth failure message)
AI-assisted analysis of siyuan-note/siyuan@afa823b6b4 (2026-08-18).
Data as JSON: /api/errors/489fe9593f5e3211.
Report an issue: GitHub.
Appendix: source
Thrown at kernel/model/assets.go:1378
util.PushUpdateMsg(msgId, msg, 3000)
}
requestResult := gulu.Ret.NewResult()
request := httpclient.NewCloudFileRequest2m()
resp, reqErr := request.
SetSuccessResult(requestResult).
SetFile("file[]", absAsset).
SetCookies(&http.Cookie{Name: "symphony", Value: uploadToken}).
SetHeader("meta-type", metaType).
SetHeader("biz-type", bizType).
Post(util.GetCloudServer() + "/apis/siyuan/upload?ver=" + util.Ver)
if nil != reqErr {
logging.LogErrorf("upload assets failed: %s", reqErr)
return count, ErrFailedToConnectCloudServer
}
if 401 == resp.StatusCode {
err = errors.New(Conf.Language(31))
return
}
if 0 != requestResult.Code {
logging.LogErrorf("upload assets failed: %s", requestResult.Msg)
err = fmt.Errorf(Conf.Language(94), requestResult.Msg)
return
}
absAsset = filepath.ToSlash(absAsset)
relAsset := absAsset[strings.Index(absAsset, "assets/"):]
completedUploadAssets = append(completedUploadAssets, relAsset)
logging.LogInfof("uploaded asset [%s]", relAsset)
count++
}
if !ignorePushMsg {
util.PushClearMsg(msgId)View on GitHub (pinned to afa823b6b4)