{"record":{"id":"2511b955dea4db8d","repo":"usememos/memos","slug":"aisetting-transcription-configuration-exceeds-a-su","errorCode":null,"errorMessage":"aiSetting transcription configuration exceeds a supported length limit","messagePattern":"aiSetting transcription configuration exceeds a supported length limit","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"store/deployment_config.go","lineNumber":338,"sourceCode":"\t\t\tif provider.Endpoint == \"\" {\n\t\t\t\tprovider.Endpoint = \"https://generativelanguage.googleapis.com/v1beta\"\n\t\t\t}\n\t\tdefault:\n\t\t\treturn errors.Errorf(\"aiSetting provider %q has unsupported type\", provider.Id)\n\t\t}\n\t}\n\tif transcription := setting.Transcription; transcription != nil {\n\t\ttranscription.ProviderId = strings.TrimSpace(transcription.ProviderId)\n\t\ttranscription.Model = strings.TrimSpace(transcription.Model)\n\t\ttranscription.Language = strings.TrimSpace(transcription.Language)\n\t\ttranscription.Prompt = strings.TrimSpace(transcription.Prompt)\n\t\tif transcription.ProviderId != \"\" {\n\t\t\tif _, ok := providers[transcription.ProviderId]; !ok {\n\t\t\t\treturn errors.Errorf(\"aiSetting transcription providerId %q does not reference a provider\", transcription.ProviderId)\n\t\t\t}\n\t\t}\n\t\tif len(transcription.Model) > maxTranscriptionModelLength || len(transcription.Language) > maxTranscriptionLanguageLength || len(transcription.Prompt) > maxTranscriptionPromptLength {\n\t\t\treturn errors.New(\"aiSetting transcription configuration exceeds a supported length limit\")\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (s *Store) validateDeploymentAuthenticationState(ctx context.Context, config *deploymentConfiguration) error {\n\t_, generalConfigured := config.instanceSettings[storepb.InstanceSettingKey_GENERAL]\n\tif !generalConfigured && len(config.identityProviders) == 0 {\n\t\tgeneral, err := s.getRawInstanceSetting(ctx, storepb.InstanceSettingKey_GENERAL.String())\n\t\tif err != nil {\n\t\t\treturn errors.Wrap(err, \"failed to inspect stored GENERAL setting\")\n\t\t}\n\t\tif general == nil || !general.GetGeneralSetting().DisallowPasswordAuth {\n\t\t\treturn nil\n\t\t}\n\t\tproviders, err := s.listStoredIdentityProviders(ctx, &FindIdentityProvider{})\n\t\tif err != nil {\n\t\t\treturn errors.Wrap(err, \"failed to inspect stored identity providers\")","sourceCodeStart":320,"sourceCodeEnd":356,"githubUrl":"https://github.com/usememos/memos/blob/14d757ce1fb31c78590f374bc042f8dbedbc20d7/store/deployment_config.go#L320-L356","documentation":"Thrown during AI setting normalization when the transcription block's model, language, or prompt exceeds the hard caps (model <= 256 chars, language <= 32, prompt <= 4096, constants in store/deployment_config.go). These limits bound what gets forwarded to transcription providers; oversized values (typically a prompt pasted from a document) fail deployment loading at startup.","triggerScenarios":"aiSetting.transcription with a prompt longer than 4096 characters, a model string longer than 256 characters, or a language string longer than 32 characters (after trimming).","commonSituations":"Pasting a long system prompt or whole instructions document into transcription.prompt; a language field accidentally holding a full locale list instead of a single code like \"en\".","solutions":["Trim transcription.prompt to <= 4096 characters, model to <= 256, language to a single code like \"en\" (<= 32 chars).","Move long instructions into the provider-side configuration if the provider supports it."],"exampleFix":"// before\n\"transcription\": { \"providerId\": \"openai\", \"model\": \"whisper-1\", \"language\": \"en\", \"prompt\": \"<6000-char document>\" }\n\n// after\n\"transcription\": { \"providerId\": \"openai\", \"model\": \"whisper-1\", \"language\": \"en\", \"prompt\": \"<concise <=4096-char prompt>\" }","handlingStrategy":"validation","validationCode":"const (\n    maxModel = 256\n    maxLang  = 32\n    maxPrompt = 4096\n)\nif len(transcription.Model) > maxModel || len(transcription.Language) > maxLang || len(transcription.Prompt) > maxPrompt {\n    return errors.New(\"transcription config exceeds length limits\")\n}","typeGuard":"func transcriptionWithinLimits(t *storepb.TranscriptionSetting) bool {\n    return len(t.GetModel()) <= 256 && len(t.GetLanguage()) <= 32 && len(t.GetPrompt()) <= 4096\n}","tryCatchPattern":null,"preventionTips":["Keep transcription prompts short and specific; long instructions belong in provider-side configuration.","Language is a single BCP-47 code like \"en\" or \"zh-CN\", never a list."],"tags":["configuration","validation","ai","transcription","startup"],"backgroundTag":null,"analyzedSha":"14d757ce1fb31c78590f374bc042f8dbedbc20d7","analyzedAt":"2026-08-15T09:27:36.538Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}