From 3246dad53ebd5037b3000d82f6c46ed68c06d2ba Mon Sep 17 00:00:00 2001 From: "SASAPIYO (SASAGAWA Kiyoshi)" Date: Thu, 4 Jun 2026 10:28:26 +0900 Subject: [PATCH] =?UTF-8?q?fix(chart):=20PerUserDriveChart.update=20?= =?UTF-8?q?=E3=81=A7=20userId=20=E3=81=8C=20null=20=E3=81=AE=E3=82=B7?= =?UTF-8?q?=E3=82=B9=E3=83=86=E3=83=A0=E6=89=80=E6=9C=89=E3=83=95=E3=82=A1?= =?UTF-8?q?=E3=82=A4=E3=83=AB=E3=82=92=E3=82=B9=E3=82=AD=E3=83=83=E3=83=97?= =?UTF-8?q?=20(#17499)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix(chart): PerUserDriveChart.update で userId が null のシステム所有ファイルをスキップ (#17498) Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com> --- CHANGELOG.md | 1 + packages/backend/src/core/chart/charts/per-user-drive.ts | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d084006562..41657fd987 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ ### Server - Enhance: リモートノートクリーニングジョブのスキップ処理のパフォーマンス改善 +- Fix: PerUserDriveChart がシステム所有ファイル (userId が null) の更新で `"group"` の非NULL制約違反によりクラッシュする問題を修正 (#17498) - Enhance: リモートノートクリーニングジョブの削除対象検索処理のパフォーマンス改善 - Fix: センシティブメディア自動検出周りの依存関係・ファイルの解決に失敗する問題を修正 - Fix: フォロワー限定投稿を指名投稿で引用した際に、引用した投稿の公開範囲が意図せず変更される問題を修正 diff --git a/packages/backend/src/core/chart/charts/per-user-drive.ts b/packages/backend/src/core/chart/charts/per-user-drive.ts index f7e92aecea..7075d2134c 100644 --- a/packages/backend/src/core/chart/charts/per-user-drive.ts +++ b/packages/backend/src/core/chart/charts/per-user-drive.ts @@ -56,6 +56,10 @@ export default class PerUserDriveChart extends Chart { // eslint- @bindThis public async update(file: MiDriveFile, isAdditional: boolean): Promise { + // MiDriveFile.userId is nullable (system-owned files such as the instance + // icon/banner, fetched system avatars, custom emoji image uploads, etc.). + // Per-user drive accounting is not defined for ownerless files, so skip. + if (file.userId == null) return; const fileSizeKb = file.size / 1000; await this.commit({ 'totalCount': isAdditional ? 1 : -1,