siyuan-note/siyuan · error

Conf.Language(122)

Error message

Conf.Language(122)

What it means

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.

Solutions

  1. Log in with a SiYuan account that has an active paid subscription before setting cloud reminders
  2. Purchase/reactivate the SiYuan subscription (annual/lifetime) for the logged-in account
  3. Handle the error in the iOS client by prompting the user to subscribe
Defensive patterns

Strategy: try-catch

Try / catch

try {
  await setCloudReminder(id, content, timed);
} catch (e) {
  if (isSubscriptionError(e)) showSubscribeDialog(); // localized i18n key 122 on iOS
}

Prevention

When it happens

Trigger: 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.

Common situations: Mobile/iOS builds without an active paid subscription attempting to schedule cloud reminders; API access from an unauthenticated or free-account workspace.

Related errors


AI-assisted analysis of siyuan-note/siyuan@9f775e8a12 (2026-09-19). Data as JSON: /api/errors/d0dd417490b1367c. Report an issue: GitHub.

Appendix: 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 9f775e8a12)