{"record":{"id":"f54f664c6f52d2a9","repo":"siyuan-note/siyuan","slug":"conf-language-94","errorCode":null,"errorMessage":"Conf.Language(94)","messagePattern":"Conf\\.Language\\(94\\)","errorType":"http","errorClass":null,"httpStatus":null,"severity":"error","filePath":"kernel/model/assets.go","lineNumber":1497,"sourceCode":"\t\t\tSetSuccessResult(requestResult).\n\t\t\tSetFile(\"file[]\", absAsset).\n\t\t\tSetCookies(&http.Cookie{Name: \"symphony\", Value: uploadToken}).\n\t\t\tSetHeader(\"meta-type\", metaType).\n\t\t\tSetHeader(\"biz-type\", bizType).\n\t\t\tPost(util.GetCloudServer() + \"/apis/siyuan/upload?ver=\" + util.Ver)\n\t\tif nil != reqErr {\n\t\t\tlogging.LogErrorf(\"upload assets failed: %s\", reqErr)\n\t\t\treturn count, ErrFailedToConnectCloudServer\n\t\t}\n\n\t\tif 401 == resp.StatusCode {\n\t\t\terr = errors.New(Conf.Language(31))\n\t\t\treturn\n\t\t}\n\n\t\tif 0 != requestResult.Code {\n\t\t\tlogging.LogErrorf(\"upload assets failed: %s\", requestResult.Msg)\n\t\t\terr = fmt.Errorf(Conf.Language(94), requestResult.Msg)\n\t\t\treturn\n\t\t}\n\n\t\tabsAsset = filepath.ToSlash(absAsset)\n\t\trelAsset := absAsset[strings.Index(absAsset, \"assets/\"):]\n\t\tcompletedUploadAssets = append(completedUploadAssets, relAsset)\n\t\tlogging.LogInfof(\"uploaded asset [%s]\", relAsset)\n\t\tcount++\n\t}\n\n\tif !ignorePushMsg {\n\t\tutil.PushClearMsg(msgId)\n\t}\n\n\tif 0 < len(completedUploadAssets) {\n\t\tlogging.LogInfof(\"uploaded [%d] assets\", len(completedUploadAssets))\n\t}\n\treturn","sourceCodeStart":1479,"sourceCodeEnd":1515,"githubUrl":"https://github.com/siyuan-note/siyuan/blob/9f775e8a12daef8255556097396f9b2739078892/kernel/model/assets.go#L1479-L1515","documentation":"After the 401 check, uploadAssets2Cloud inspects the JSON body's Code field; a non-zero Code means the cloud server accepted the request but rejected the upload, producing fmt.Errorf(Conf.Language(94), requestResult.Msg) — \"Upload failed: %s\" with the server's message. This is a server-reported business error surfaced through the localized upload-failed wrapper.","triggerScenarios":"Uploading assets to SiYuan cloud when the server responds HTTP 200 but with requestResult.Code != 0 — e.g. storage quota exceeded, file type/size rejected, or account not authorized for cloud storage.","commonSituations":"Exceeding cloud storage quota; uploading disallowed file types or oversized assets; subscription expired so cloud storage is disabled; server-side maintenance or policy changes rejecting uploads.","solutions":["Read the wrapped requestResult.Msg in the error message and address the server-stated cause","Free up cloud storage quota or upgrade the subscription if quota/plan limits are the cause","Reduce asset size or convert to an allowed type before uploading","Retry later if the server message indicates temporary unavailability; report persistent server errors to SiYuan support"],"exampleFix":"// before\nerr = fmt.Errorf(Conf.Language(94), requestResult.Msg)\n// caller: log.Fatal(err)\n// after (caller handles server msg)\nif err != nil {\n    var uploadErr *fmt.WrapError\n    log.Printf(\"cloud upload rejected: %v\", err) // inspect server Msg inside\n    return retryable(err) ? retryLater(err) : err\n}","handlingStrategy":"try-catch","validationCode":"if assetSize > maxCloudAssetSize {\n    return errors.New(\"asset exceeds cloud upload size limit\")\n}","typeGuard":null,"tryCatchPattern":"if err != nil && strings.Contains(err.Error(), \"Upload failed:\") {\n    serverMsg := extractServerMsg(err) // quota/type/account hints live in the wrapped Msg\n    handleServerRejection(serverMsg)\n}","preventionTips":["Monitor cloud storage quota before bulk uploads","Compress or downscale large assets before uploading","Keep the subscription active if cloud storage is in use"],"tags":["go","cloud","upload","api-error"],"backgroundTag":"api-error-response","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"}