# 关于 Pings 的 Bug

**URL:** https://meta.discourse.org/t/bug-regarding-pings/401869
**Category:** Bug
**Tags:** chat, fixed
**Created:** [2026年四月30日 01:14 UTC](https://meta.discourse.org/t/bug-regarding-pings/401869 "2026-04-30T01:14:45Z")
**Posts on this page:** 1
**Showing post:** 4

<div class="post-metadata">

### Author: ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)
#### Post date: [2026年四月30日 19:05 UTC](https://meta.discourse.org/t/bug-regarding-pings/401869/4 "2026-04-30T19:05:35Z")

</div>

已修复于

> <https://github.com/discourse/discourse/pull/39670>
>
> Previously, building the web push "Reply" action payload raised because \`inline\_…reply.png\` lived under \`public/images/\` where Propshaft can't resolve it, so \`Jobs::Chat::NotifyMentioned\` retried after \`create\_notification!\` and inflated the bell with duplicate rows.
> 
> This change moves the icon into \`app/assets/images/push-notifications/\` and wraps the action builder in a \`rescue\` so any future payload failure logs and returns \`{}\` instead of stranding the job.
> 
> A post-deploy migration sweeps the duplicate \`chat\_mention\` \`Notification\` rows (and their \`chat\_mention\_notifications\` join entries) created during the deploy window — keeping the oldest row per \`(user\_id, data)\` group and merging the read state forward.

---

_[View the full topic](https://meta.discourse.org/t/bug-regarding-pings/401869)._
