AIモデル Qwen/Qwen3-8B による翻訳。
原文言語:Simplified Chinese、翻訳先言語:japanese、翻訳時間:2026-05-01 04:58
。AI 翻訳は参考に限り、内容の完全な正確性を保証できません。原文をご参照ください。
私は前回の碎碎念で、umami v3 に追加されたリンク追跡(Link Tracking)、ピクセル追跡(Pixel Tracking)にバグがあることを言及しました。それも少し修正してみたのですが、今日確認したところ、そのバグは完全には修正されておらず、時折ピクセル追跡のデータが記録されないままだったことに気づきました。
なぜ昨日は修正できたとおもったのか?それはIGNORE_IPを無効にした後、ブラウザでトラッキングリンクを開いた数回試してみたところ、問題が起きなかったからです。それゆえにIGNORE_IPのコードに問題があると考えたのです。IGNORE_IPを修正した後、ブラウザでトラッキングリンクを開くとデータが正常に記録されるようになったため、問題の原因がそこだと誤って判断してしまいました。
しかし、今日無痕モードでトラッキングリンクを開いてみたところ、トラッキングデータが記録されませんでした。itdogでテストしてみたところ、統計データも0のままでした。これでは一体何が起こっているのか、イライラしてしまいました。
再度コードを確認し、ログを打ちながら追跡してみたところ、src\app\api\send\route.tsでawait parseRequest(request, schema, { skipAuth: true })が返す値が{error}になっていました。さらにparseRequestの実装部分でログを打ち、そこではschema.safeParse(isGet ? query : body)がエラーを投げていることがわかりました。打ち出したログには"message": "Invalid input: expected string, received null"と表示されていました。
2026-02-18 05:59:02.065 [error] 2026-02-18T05:59:02.063Z umami:my {
success: false,
error: Error [ZodError]: [
{
"expected": "string",
"code": "invalid_type",
"path": [
"payload",
"referrer"
],
"message": "Invalid input: expected string, received null"
}
]
at new ZodError (.next/server/chunks/[root-of-the-server]__e72b30ae._.js:1:8143)
at <unknown> (.next/server/chunks/[root-of-the-server]__e72b30ae._.js:1:21935)
at e.safeParse (.next/server/chunks/[root-of-the-server]__e72b30ae._.js:20:8168)
at h (.next/server/chunks/[root-of-the-server]__e72b30ae._.js:1859:308008)
at async E (.next/server/chunks/[root-of-the-server]__4217576a._.js:11:35752)
at async u (.next/server/chunks/[root-of-the-server]__68667959._.js:1:1731)
at async u (.next/server/chunks/[root-of-the-server]__68667959._.js:1:4926)
}
ここまでの調査で、問題の原因は上流のpayload.referrerがnullになっていることだとわかりました。referrerが空かどうかをチェックせずにそのまま使用していたためです。ブラウザなどは必ずしもreferrerを送信しないことがあるため(例:QQメールではreferrerが送信されません)、このような不具合が発生する可能性があります。
src\app\(collect)\(p/q)\[slug]\route.tsのコードを修正しました。これでバグは修正されたでしょうか?
気に入ったならばコメントを残してくださいね~