siyuan-note/siyuan · warning
Conf.Language(122) (localized subscription-required message
Error message
Conf.Language(122) (localized subscription-required message for iOS container)
What it means
SetCloudReminder requires an active SiYuan subscription to store reminders in the cloud. When the user is not a subscriber and the kernel runs inside the iOS container (util.Container == "ios"), it returns the iOS-specific localized message from Conf.Language(122). This is a paywall/entitlement guard, not a bug.
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 8641553a1f)
Solutions
- Purchase or renew the SiYuan subscription (Membership in settings) and log in again
- Use local reminders instead of cloud sync features, or skip setCloudReminder for non-subscribers
- Surface the localized message (Conf.Language(122)) to the user and stop retrying until subscription is active
Defensive patterns
Strategy: try-catch
Validate before calling
const isSubscriber = (await fetchPost('/api/setting/...', {})); // check subscription state before calling
if (!isSubscriber) showMessage(window.siyuan.languages[122]); Try / catch
try {
await fetchPost('/api/block/setCloudReminder', {id, content, timed});
} catch (e) {
if (String(e.msg || e) === window.siyuan.languages[122]) {
showMessage('SiYuan Membership required for cloud reminders', 6000, 'info');
return; // do not retry
}
throw e;
} Prevention
- Check subscription state client-side before invoking cloud reminder APIs
- Offer a local-only reminder fallback for non-subscribers
- Do not auto-retry this error; it only clears after subscription activation
When it happens
Trigger: Calling SetCloudReminder (API /api/block/setCloudReminder) on iOS without an active subscription — e.g. a client setting a reminder on a block in the iOS app while the account has no paid subscription or the subscription has expired.
Common situations: iOS app users with expired subscriptions relying on reminder sync; third-party clients hitting the cloud reminder API against an iOS-hosted workspace; trial accounts after expiry.
Related errors
- Conf.Language(29) (localized subscription-required message)
- The sidebar feature that comes with the plugin needs to be c
- This feature requires the purchase of an <a target='_blank'
- Conf.Language(376)
- Conf.Language(298)
AI-assisted analysis of siyuan-note/siyuan@8641553a1f (2026-09-11).
Data as JSON: /api/errors/3dd2ca9049c55133.
Report an issue: GitHub.