Skip to content

finding:线索详情页显示「Confirmed duplicate — conversion will be refused」,但该记录的判重字段全为 null、全库也无可匹配记录 #1887

Description

@yinlianghui

Restart-when: a published @objectstack/console > 17.4.0 whose .objectui-sha contains objectstack-ai/objectui@689953ae9a (PR #9104, fixing objectui#9100) — probe in a browser that a lead with duplicate_status null shows neither record:alert banner

finding,⛔ 不认领、⛔ 零修改零提交。 由 steedos-labs/video-studio 促销片车道(#78)在真浏览器 + 真 hotcrm 实例(基线 62e23f51)录制取景时观察到。先搜重:duplicate banner lead、duplicate_status 在本仓 issue 中均零命中。

现象

crm_lead 详情页(Mira Costa · Atlas Construction)在记录标题正下方、Lead Owner 之上,渲染两条横幅,合计约占内容区纵向三成:

🟡 Suspected duplicate — compare before you convert
Intake matched this lead to a record this app already has. Duplicate Management below links that record — open it and compare. You can still convert this lead: this is the match intake guessed at, not a reviewer's decision. But if it is the same buyer, disqualify it instead, because converting creates a second account, contact and opportunity for them.

🔴 Confirmed duplicate — conversion will be refused
A reviewer checked this lead and recorded that it repeats a record this app already has, so Convert Lead refuses it — this banner is the only warning you get before you press the button. Disqualify this lead instead, naming the surviving record from Duplicate Management below. If the verdict is wrong, a reviewer revises Duplicate Status; there is no override here.

与数据的矛盾(只读实测)

对同一条记录读字段:

字段 值
duplicate_status null
duplicate_of_type / duplicate_of_lead / duplicate_of_contact 全 null
is_converted / converted_* false / 全 null

全库横向核(也全空):

  • crm_account 中没有名称含 atlas 的账户;
  • crm_contact 中没有同名(Mira)或同邮箱的联系人;
  • crm_lead 中没有第二条同邮箱或同公司的线索。

⇒ 🔴 横幅声称「a reviewer checked this lead and recorded that it repeats a record this app already has」,但 duplicate_status 为 null,且那条「已存在的记录」在库里不存在。

⚠ 两个都说得通的解释,本单不选

  1. UI 侧无条件渲染:这两条横幅可能不受 duplicate_status 约束,对任意线索都显示 ⇒ 属渲染条件缺陷;
  2. 有意为之的示教型横幅:文案风格偏说明书("this banner is the only warning you get before you press the button"),可能是本演示应用刻意常驻的教学说明,而非真实告警。

⛔ 本单未读渲染这两条横幅的源码(它在已安装的平台包里,取证时间不足)⇒ 不下 UI 侧结论、不猜。请你们按自己的口径判是 1 还是 2。

为什么值得看一眼(若为解释 1)

横幅正文对用户说的是事实性断言——「已有一条重复记录」「Convert Lead 会拒绝」「没有 override」。若它在没有重复的记录上也照样显示,用户会据此放弃一次本可正常进行的转换,或去 Duplicate Management 找一条不存在的记录。

复现

  1. 起本仓 pnpm dev(本单实例钉在 62e23f51)、pnpm demo:staff;
  2. 打开任一 crm_lead 详情页;
  3. 对照该记录的 duplicate_status 与页面横幅。

⚠ 本单只在一条记录上核过字段,⛔ 未遍历全部线索确认「每条都显示」——这一步留给你们。

关联

同一批录制此前已转记 #1877(completed_date 校验方向相反)与 #1879(update_record 的 recordId 参数名诱导)。本单与它们不同源,一并列出仅为出处可追。


Generated by Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingmetadataDeclarative metadata — schema, security posture, UI surfacespriority:p2Medium: important, M3ui

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions