{"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/afa823b6b4e4f183511e0bc0a3be93caa94c7c97/kernel/model/blockial.go#L25-L61","documentation":"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'.","triggerScenarios":"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'.","commonSituations":"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.","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."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try {\n  await setCloudReminder(id, content, timed);\n} catch (e) {\n  if (/subscribe|Annual Subscription|sidebar feature/i.test(e.message)) {\n    // entitlement problem, not a bug: prompt login/purchase, do not retry\n    promptSubscription();\n  } else throw e;\n}","preventionTips":["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."],"tags":["siyuan","subscription","paywall","ios","reminder"],"backgroundTag":"feature-requires-subscription","analyzedSha":"afa823b6b4e4f183511e0bc0a3be93caa94c7c97","analyzedAt":"2026-08-18T17:04:10.865Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}