我在上篇碎碎念里提到了 umami v3 新增的链接追踪(Link Tracking)、像素追踪(Pixel Tracking)有 Bug,也尝试修复了一下。
今天发现,该 Bug 其实并没有完全修复,有时还是压根就没有记录到像素追踪的数据。
为什么昨天就以为修复了呢?因为我发现关了 IGNORE_IP 后,在浏览器打开了几次跟踪链接,都没有问题。就以为是 IGNORE_IP 的代码出了问题。修复了 IGNORE_IP 后,在浏览器打开跟踪链接,就可以正常记录到数据了。就这么以为找出了问题所在了。
然后今天我在无痕模式下打开跟踪链接,发现都没有记录到追踪的数据。又在 itdog 上测试了一下,看到统计数据还是 0。
然后炸毛了,这啥鬼!
再去翻看那鬼代码,不断地打日志(log),
在 src\app\api\send\route.ts 里,看到 await parseRequest(request, schema, { skipAuth: true }) 返回了个 {error},再继续在 parseRequest 的实现里打日志(log),发现是里面的 schema.safeParse(isGet ? query : body) 抛出了错误。从打的日志中可看到 "message": "Invalid input: expected string, received null"。
1 | 2026-02-18 05:59:02.065 [error] 2026-02-18T05:59:02.063Z umami:my { |
到这里就可以看出,是上游的 payload.referrer 有问题,是 null。没检查 referrer 是否为空,就直接用了它。毕竟浏览器等不一定会发送 referrer,(例如 QQ 邮箱就不会发送 referrer)。
修改了 src\app\(collect)\(p/q)\[slug]\route.ts 的代码,应该 Bug 修复了吧?




