{"record":{"id":"d0dd417490b1367c","repo":"siyuan-note/siyuan","slug":"conf-language-122","errorCode":null,"errorMessage":"Conf.Language(122)","messagePattern":"Conf\\.Language\\(122\\)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","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/9f775e8a12daef8255556097396f9b2739078892/kernel/model/blockial.go#L25-L61","documentation":"SetCloudReminder requires an active SiYuan paid subscription (IsSubscriber). When the caller is not a subscriber, it returns a localized error. On iOS (util.Container == \"ios\") the message is i18n language key 122; on all other platforms key 29 is used instead (see error 1098). Key 122 is the iOS-specific wording telling the user a subscription is required for cloud reminders.","triggerScenarios":"Calling SetCloudReminder (exposed via the reminder-related kernel API) while the workspace is not logged in with a subscription account, on an iOS container build.","commonSituations":"Mobile/iOS builds without an active paid subscription attempting to schedule cloud reminders; API access from an unauthenticated or free-account workspace.","solutions":["Log in with a SiYuan account that has an active paid subscription before setting cloud reminders","Purchase/reactivate the SiYuan subscription (annual/lifetime) for the logged-in account","Handle the error in the iOS client by prompting the user to subscribe"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try {\n  await setCloudReminder(id, content, timed);\n} catch (e) {\n  if (isSubscriptionError(e)) showSubscribeDialog(); // localized i18n key 122 on iOS\n}","preventionTips":["Check the subscription status via the account API before offering reminder features","Gate reminder UI behind a subscription check in the client","Renew the subscription before using cloud features"],"tags":["subscription","licensing","cloud-reminder","ios","i18n"],"backgroundTag":"authentication-required","analyzedSha":"9f775e8a12daef8255556097396f9b2739078892","analyzedAt":"2026-09-19T03:17:15.984Z","contentChangedAt":"2026-09-19T03:17:15.984Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}