siyuan-note/siyuan · warning
The sidebar feature that comes with the plugin needs to be…
Error message
The sidebar feature that comes with the plugin needs to be configured on the desktop (you can access http://127.0.0.1:6806/stage/build/desktop using a mobile browser, after the configuration is complete, please restart SiYuan APP)
What it means
kernel/model/blockial.go:43, from SetCloudReminder: the cloud reminder feature requires an active subscription (IsSubscriber() false). On the iOS container specifically, the kernel returns language key 122, whose shipped English text is the generic mobile-restriction message about configuring plugin sidebars via the desktop endpoint (http://127.0.0.1:6806/stage/build/desktop) and restarting - the message is only loosely related; semantically it means 'this account/feature is not available in the iOS app here'.
Solutions
- Log in with an active subscription account (purchase via the subscription page).
- If already purchased: refresh or re-login under Settings - Account & Sync - Account, then retry.
- If stuck on iOS, complete/refresh the subscription from the desktop app with the same account, then retry on iOS.
- For local-only automation, avoid the cloud-reminder API and use local reminders instead.
Defensive patterns
Strategy: try-catch
Try / catch
try {
await setCloudReminder(id, content, timed);
} catch (e) {
if (/subscribe|Annual Subscription|sidebar feature/i.test(e.message)) {
// entitlement problem, not a bug: prompt login/purchase, do not retry
promptSubscription();
} else throw e;
} Prevention
- Gate cloud-reminder calls behind an account/subscription check in your integration UI.
- Do not auto-retry entitlement errors - they never succeed without user action.
When it happens
Trigger: Invoking the cloud reminder flow from the SiYuan iOS app while not logged in as an active subscriber: the corresponding HTTP endpoint behind cloud reminders with a non-subscription account and util.Container == 'ios'.
Common situations: Testing API automation against an iOS build with a free account; users who subscribed on desktop but are not logged into the same account on iOS; App Store policy builds where purchase/refresh must happen outside the app.
Related errors
- This feature requires the purchase of an <a target='_blank'…
- -2
- Conf.Language(122)
- Conf.Language(122) (localized subscription-required message…
- Conf.Language(15)
AI-assisted analysis of siyuan-note/siyuan@afa823b6b4 (2026-08-18).
Data as JSON: /api/errors/470c6f90935511b1.
Report an issue: GitHub.
Appendix: source
Thrown at kernel/model/blockial.go:43
"github.com/88250/gulu"
"github.com/88250/lute/ast"
"github.com/88250/lute/editor"
"github.com/88250/lute/html"
"github.com/88250/lute/parse"
"github.com/araddon/dateparse"
"github.com/siyuan-note/siyuan/kernel/av"
"github.com/siyuan-note/siyuan/kernel/cache"
"github.com/siyuan-note/siyuan/kernel/filesys"
"github.com/siyuan-note/siyuan/kernel/sql"
"github.com/siyuan-note/siyuan/kernel/treenode"
"github.com/siyuan-note/siyuan/kernel/util"
)
func SetCloudReminder(id, content, timed string) (err error) {
if !IsSubscriber() {
if "ios" == util.Container {
return errors.New(Conf.Language(122))
}
return errors.New(Conf.Language(29))
}
var timedMills int64
if "0" != timed {
t, e := dateparse.ParseIn(timed, time.Now().Location())
if nil != e {
return e
}
timedMills = t.UnixMilli()
}
content = strings.TrimSpace(content)
err = SetCloudBlockReminder(id, content, timedMills)
if err != nil {
return
}View on GitHub (pinned to afa823b6b4)