{"record":{"id":"af18d4c93fa08c02","repo":"ruvnet/ruflo","slug":"mailbox-full","errorCode":"MAILBOX_FULL","errorMessage":"JSON content exceeds maximum size of ${maxSize} bytes","messagePattern":"JSON content exceeds maximum size of (.+?) bytes","errorType":"validation","errorClass":"TeammateError","httpStatus":null,"severity":"error","filePath":"v3/plugins/teammate-plugin/src/teammate-bridge.ts","lineNumber":219,"sourceCode":"  const resolvedTarget = path.resolve(targetPath);\n  const resolvedBase = path.resolve(basePath);\n\n  if (!resolvedTarget.startsWith(resolvedBase + path.sep) && resolvedTarget !== resolvedBase) {\n    throw new TeammateError(\n      'Path traversal attempt detected',\n      TeammateErrorCode.PERMISSION_DENIED\n    );\n  }\n\n  return resolvedTarget;\n}\n\n/**\n * Safely parse JSON with size limits\n */\nfunction safeJSONParse<T>(content: string, maxSize: number = MAX_PAYLOAD_SIZE): T {\n  if (content.length > maxSize) {\n    throw new TeammateError(\n      `JSON content exceeds maximum size of ${maxSize} bytes`,\n      TeammateErrorCode.MAILBOX_FULL\n    );\n  }\n\n  try {\n    return JSON.parse(content) as T;\n  } catch (error) {\n    throw new TeammateError(\n      'Invalid JSON content',\n      TeammateErrorCode.PERMISSION_DENIED\n    );\n  }\n}\n\n/**\n * Sanitize environment variable value\n */","sourceCodeStart":201,"sourceCodeEnd":237,"githubUrl":"https://github.com/ruvnet/ruflo/blob/fa13ee4ad60ac2090b1480656eb233521790d640/v3/plugins/teammate-plugin/src/teammate-bridge.ts#L201-L237","documentation":"safeJSONParse() refused to parse because content.length exceeds maxSize (default MAX_PAYLOAD_SIZE). A team config, saved state, messages, or mailbox file being loaded exceeds the configured byte cap — a defensive bound against oversized/untrusted persisted payloads.","triggerScenarios":"Thrown at v3/plugins/teammate-plugin/src/teammate-bridge.ts:219 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Reduce the input size/depth below the documented limit, or batch the input into smaller chunks.","Validate the limit before processing and report the measured versus allowed value to the caller."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"fa13ee4ad60ac2090b1480656eb233521790d640","analyzedAt":"2026-08-18T21:34:22.708Z","contentChangedAt":"2026-08-18T21:34:22.708Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}