{"record":{"id":"76585ddf1dd90f0e","repo":"openclaw/openclaw","slug":"invalid-canvas-snapshot-payload","errorCode":null,"errorMessage":"invalid canvas.snapshot payload","messagePattern":"invalid canvas\\.snapshot payload","errorType":"validation","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"extensions/canvas/src/cli-helpers.ts","lineNumber":66,"sourceCode":"  return Buffer.from(canonical, \"base64\").toString(\"base64\") === canonical ? canonical : undefined;\n}\n\n/** Normalizes Canvas snapshot output extensions, mapping jpeg to jpg. */\nexport function normalizeCanvasSnapshotFileExtension(value: string): CanvasSnapshotFileExtension {\n  const format = normalizeCanvasSnapshotFormat(value.startsWith(\".\") ? value.slice(1) : value);\n  if (!format) {\n    throw new Error(\"invalid canvas.snapshot format\");\n  }\n  return format === \"jpeg\" ? \"jpg\" : format;\n}\n\n/** Parses the node.invoke canvas.snapshot payload shape. */\nexport function parseCanvasSnapshotPayload(value: unknown): CanvasSnapshotPayload {\n  const obj = asRecord(value);\n  const format = normalizeCanvasSnapshotFormat(readStringValue(obj.format));\n  const base64 = canonicalizeCanvasSnapshotBase64(readStringValue(obj.base64));\n  if (!format || !base64) {\n    throw new Error(\"invalid canvas.snapshot payload\");\n  }\n  return { format, base64 };\n}\n\nfunction resolveCliName(): string {\n  return \"openclaw\";\n}\n\nfunction resolveCanvasSnapshotId(id: string): string {\n  if (!/^[A-Za-z0-9_-]+$/.test(id)) {\n    throw new Error(\"invalid canvas snapshot id\");\n  }\n  return id;\n}\n\nfunction resolveTempPathParts(opts: { ext: string; tmpDir?: string; id?: string }) {\n  const tmpDir = opts.tmpDir ?? resolvePreferredOpenClawTmpDir();\n  if (!opts.tmpDir) {","sourceCodeStart":48,"sourceCodeEnd":84,"githubUrl":"https://github.com/openclaw/openclaw/blob/01804a75319da4b69c9ab98ceaa30477e22b8c0b/extensions/canvas/src/cli-helpers.ts#L48-L84","documentation":"Error \"invalid canvas.snapshot payload\" thrown in openclaw/openclaw.","triggerScenarios":"Thrown at extensions/canvas/src/cli-helpers.ts:66 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"01804a75319da4b69c9ab98ceaa30477e22b8c0b","analyzedAt":"2026-08-12T04:37:58.197Z","schemaVersion":2},"datasetVersion":"2026-08-12T13:17:24.610Z"}