{"record":{"id":"470c6f90935511b1","repo":"siyuan-note/siyuan","slug":"the-sidebar-feature-that-comes-with-the-plugin-nee","errorCode":null,"errorMessage":"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)","messagePattern":"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\\)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"kernel/model/blockial.go","lineNumber":43,"sourceCode":"\n\t\"github.com/88250/gulu\"\n\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}","sourceCodeStart":25,"sourceCodeEnd":61,"githubUrl":"https://github.com/siyuan-note/siyuan/blob/251596fc0de2f9528c00c224252fd073a99973f4/kernel/model/blockial.go#L25-L61","documentation":"Returned by SetCloudReminder when util.Container == \"ios\" and IsSubscriber() is false. Conf.Language(122) is the iOS-specific message instructing the user that the sidebar/cloud feature must be configured on desktop. iOS App Store policy requires routing such features through subscription, so the kernel gates them on iOS.","triggerScenarios":"Calling SetCloudReminder from the iOS build without an active subscription; calling from a non-subscriber iOS session.","commonSituations":"User on iOS attempting to set a cloud-based reminder; iOS user whose subscription expired; iOS user logged out of their account.","solutions":["Purchase the annual subscription and refresh login in Settings - Account & Sync.","Perform the operation on desktop (or via the desktop endpoint from a mobile browser) where the iOS gate does not apply.","Refresh account state (Settings - Account & Sync - Account) if recently subscribed."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"if util.Container == \"ios\" && !model.IsSubscriber() {\n    return errors.New(\"cloud reminders on iOS require a subscription\")\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Gate the SetCloudReminder UI affordance on subscription status when running on iOS.","Prompt the user to subscribe before the call rather than after.","Offer a desktop flow as a fallback on iOS."],"tags":["subscription","ios","cloud-reminder","paywall"],"backgroundTag":null,"analyzedSha":"251596fc0de2f9528c00c224252fd073a99973f4","analyzedAt":"2026-08-12T21:18:37.123Z","schemaVersion":2},"datasetVersion":"2026-08-14T00:17:13.853Z"}