siyuan-note/siyuan · error
Conf.Language(31)
Error message
Conf.Language(31)
What it means
When the ChatGPT cloud endpoint responds with HTTP 401 Unauthorized, CloudChatGPT calls invalidUser() to clear the stale account and returns errors.New(Conf.Language(31)) — a localized 'please log in to the cloud server' message (i18n key 31) surfaced to the user as the error text.
Source
Thrown at kernel/model/cloud_service.go:77
"content": msg,
})
payload["messages"] = messages
requestResult := gulu.Ret.NewResult()
request := httpclient.NewCloudRequest30s()
resp, err := request.
SetSuccessResult(requestResult).
SetCookies(&http.Cookie{Name: "symphony", Value: user.UserToken}).
SetBody(payload).
Post(util.GetCloudServer() + "/apis/siyuan/ai/chatGPT")
if err != nil {
logging.LogErrorf("chat gpt failed: %s", err)
err = ErrFailedToConnectCloudServer
return
}
if http.StatusUnauthorized == resp.StatusCode {
invalidUser()
return "", true, errors.New(Conf.Language(31))
}
if http.StatusOK != resp.StatusCode {
return "", true, ErrFailedToConnectCloudServer
}
if 0 != requestResult.Code {
err = errors.New(requestResult.Msg)
stop = true
return
}
data := requestResult.Data.(map[string]any)
choices := data["choices"].([]any)
if 1 > len(choices) {
stop = true
return
}
choice := choices[0].(map[string]any)
message := choice["message"].(map[string]any)View on GitHub (pinned to 8641553a1f)
Solutions
- Re-login to the cloud account (Settings - Account - Log in) to obtain a fresh token
- Log out and back in to clear the invalidated user record (invalidUser() already cleared it in the kernel)
- If no cloud account is intended, disable AI features that require cloud auth
Example fix
// caller: detect auth failure and prompt re-login
_, _, err := model.CloudChatGPT(msg, ctx)
if err != nil && err.Error() == Conf.Language(31) {
// token rejected: open the account panel for re-login
openAccountPanel()
} Defensive patterns
Strategy: try-catch
Validate before calling
// caller: only offer AI chat when a cloud user is present
if (!window.siyuan.user) { promptLogin(); return; } Try / catch
_, _, err := model.CloudChatGPT(msg, ctx)
if err != nil && err.Error() == Conf.Language(31) {
invalidUserFlow() // re-login prompt
} Prevention
- Check for a logged-in cloud user before offering AI features
- Handle token expiry proactively by refreshing the session periodically
- After any 401-driven invalidation, clear the UI's cached user state
When it happens
Trigger: Calling the AI chat feature while the stored cloud user token is expired, revoked, or otherwise rejected by the cloud server, causing a 401 response.
Common situations: Cloud session expired after long inactivity; password changed on another device invalidating the token; server-side token revocation; user never logged in but a stale user record exists in config.
Related errors
- invalid user
- Conf.Language(31) (localized cloud auth failure message)
- localized please-sign-in message (Conf.Language(31))
- Account authentication failed, please login again
- Upload failed: %s
AI-assisted analysis of siyuan-note/siyuan@8641553a1f (2026-09-11).
Data as JSON: /api/errors/f691bf13cb5a299a.
Report an issue: GitHub.