{"record":{"id":"b7bb2904531e1ecf","repo":"siyuan-note/siyuan","slug":"response-msg","errorCode":null,"errorMessage":"response.msg","messagePattern":"response\\.msg","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"app/src/protyle/export/util.ts","lineNumber":199,"sourceCode":"                let copied: boolean;\n                if (isInAndroid()) {\n                    const response = await uploadImageBlob(blob);\n                    copied = response.code === 0;\n                    if (copied) {\n                        copyPNGByLink(response.data.file);\n                    }\n                } else {\n                    copied = await writePNGBlob(blob);\n                }\n                hideMessage(msgId);\n                if (!copied) {\n                    return;\n                }\n                showMessage(window.siyuan.languages.copied);\n            } else {\n                const response = await uploadImageBlob(blob);\n                if (response.code !== 0) {\n                    throw new Error(response.msg);\n                }\n                await saveExportFile(response.data.file, msgId);\n            }\n            exportDialog.destroy();\n        } catch (e) {\n            hideMessage(msgId);\n            console.error(\"Export image error:\", e);\n            showMessage(e instanceof Error ? e.message : window.siyuan.languages.exportFileSaveFailed, 7000, \"error\");\n        } finally {\n            outputting = false;\n            if (document.body.contains(exportDialog.element)) {\n                containerElement.style.height = oldHeight;\n                contentElement.style.overflow = oldOverflow;\n                setActionDisabled(false);\n            }\n        }\n    };\n","sourceCodeStart":181,"sourceCodeEnd":217,"githubUrl":"https://github.com/siyuan-note/siyuan/blob/8641553a1f07374001902d3ce773285db1292b2d/app/src/protyle/export/util.ts#L181-L217","documentation":"In outputImage's Android branch, the uploadImageBlob kernel call returned a response whose code is not 0; the response's msg field is the error detail. The exported image blob could not be uploaded, so the subsequent PNG copy is skipped.","triggerScenarios":"Thrown at app/src/protyle/export/util.ts:199 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Inspect response.msg for the kernel-side upload error","Verify assets directory writability and network/proxy settings","Retry the export; fall back to saving the image manually"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"8641553a1f07374001902d3ce773285db1292b2d","analyzedAt":"2026-09-11T16:08:28.414Z","contentChangedAt":"2026-09-11T16:08:28.414Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}