{"record":{"id":"020bae8e16e47c29","repo":"siyuan-note/siyuan","slug":"this-feature-requires-the-purchase-of-an-a-target","errorCode":null,"errorMessage":"This feature requires the purchase of an <a target='_blank' href='${accountServer}/subscribe/siyuan'>[Annual Subscription]</a> (if you have already purchased, please refresh or re-login in [Settings - Account & Sync - Account])","messagePattern":"This feature requires the purchase of an <a target='_blank' href='(.+?)/subscribe/siyuan'>\\[Annual Subscription\\]</a> \\(if you have already purchased, please refresh or re-login in \\[Settings - Account & Sync - Account\\]\\)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"kernel/model/blockial.go","lineNumber":45,"sourceCode":"\t\"github.com/88250/lute/ast\"\n\t\"github.com/88250/lute/editor\"\n\t\"github.com/88250/lute/html\"\n\t\"github.com/88250/lute/parse\"\n\t\"github.com/araddon/dateparse\"\n\t\"github.com/siyuan-note/siyuan/kernel/av\"\n\t\"github.com/siyuan-note/siyuan/kernel/cache\"\n\t\"github.com/siyuan-note/siyuan/kernel/filesys\"\n\t\"github.com/siyuan-note/siyuan/kernel/sql\"\n\t\"github.com/siyuan-note/siyuan/kernel/treenode\"\n\t\"github.com/siyuan-note/siyuan/kernel/util\"\n)\n\nfunc SetCloudReminder(id, content, timed string) (err error) {\n\tif !IsSubscriber() {\n\t\tif \"ios\" == util.Container {\n\t\t\treturn errors.New(Conf.Language(122))\n\t\t}\n\t\treturn errors.New(Conf.Language(29))\n\t}\n\n\tvar timedMills int64\n\tif \"0\" != timed {\n\t\tt, e := dateparse.ParseIn(timed, time.Now().Location())\n\t\tif nil != e {\n\t\t\treturn e\n\t\t}\n\t\ttimedMills = t.UnixMilli()\n\t}\n\n\tcontent = strings.TrimSpace(content)\n\terr = SetCloudBlockReminder(id, content, timedMills)\n\tif err != nil {\n\t\treturn\n\t}\n\n\tif \"0\" == timed {","sourceCodeStart":27,"sourceCodeEnd":63,"githubUrl":"https://github.com/siyuan-note/siyuan/blob/251596fc0de2f9528c00c224252fd073a99973f4/kernel/model/blockial.go#L27-L63","documentation":"Returned by SetCloudReminder on any non-iOS container when IsSubscriber() is false. Conf.Language(29) is the standard 'feature requires [Annual Subscription]' message with the subscribe link. Cloud reminders are a subscriber-only feature on every platform.","triggerScenarios":"Calling SetCloudReminder from desktop/web/mobile-web without an active subscription; subscriber whose session expired; user never logged in.","commonSituations":"Free-tier user attempting cloud reminder; subscriber logged out; account token stale after subscription purchase.","solutions":["Purchase the annual subscription at the link in the message.","Refresh or re-login in Settings - Account & Sync - Account after purchasing.","Use a local reminder (non-cloud) if subscription is not desired."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"if !model.IsSubscriber() {\n    return errors.New(\"cloud reminders require subscription\")\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Hide or disable SetCloudReminder for non-subscribers in the UI.","Refresh account state before checking IsSubscriber to avoid stale tokens.","Offer local reminders as the free-tier alternative."],"tags":["subscription","cloud-reminder","paywall","account"],"backgroundTag":null,"analyzedSha":"251596fc0de2f9528c00c224252fd073a99973f4","analyzedAt":"2026-08-12T21:18:37.123Z","schemaVersion":2},"datasetVersion":"2026-08-12T23:17:12.415Z"}