2026-11-15,用户提供熊梓含初中(ID1850)的会员详情截图:修改性别、年级后保存提示“运营云函数执行失败”。本次查明原因并完成本地修复,未部署,未提交正式资料保存。
updateMemberProfile 即使邮箱未填写,也无条件 target.set('email', data.email),实际待写值为 ''。_User_unique_email 和 unique_email 两个email唯一索引;已有另一个账号的email为 '',目标账号email未设置。空字符串参与唯一约束,而多个NULL允许共存。'',性别/年级合法,SDK自身validate无错误。没有调用正式用户save。duplicate key value violates unique constraint "_User_unique_email",无效邮箱校验用例正常。这与截图的后台500兜底提示相符。原请求完整异常日志未取得,不能宣称捕获了那一笔请求的原始SQL错误。因此失败不是性别或“赣州初二”本身的问题,而是可选邮箱被错误写成了空的唯一键。数据库拒绝了整次保存,界面又用通用500文案遮住了原因。
仅修改 updateMemberProfile:有邮箱时继续保存并执行既有格式校验;空白邮箱通过完整Parse SDK的unset清除,落为未设置值,不再写空字符串。legacyUserData.Email保留既有空字符串表示,此JSON字段没有顶层email唯一约束。
没有删除或修改那个已占用空邮箱的其他账号,没有清理用户表,没有修改唯一索引、权限、余额或收费规则。当前网关兼容层使用完整SDK,支持unset。
使用同一阻断式SDK探针检查候选:待保存email操作为 {"__op":"Delete"},性别/年级校验通过,所有写入仍被阻断。它验证真实SDK序列化与前置流程,不等于完成正式HTTP保存或线上验收。
/Users/mac/.local/state/xiaoshu/qa/2026-11-15-profile-save/,不进入Git。状态:原因已定位,本地修复已准备;尚未上线,也未代用户提交女/赣州初二资料。