From 758130babef140a51dee8d386ddebe3926d9eef5 Mon Sep 17 00:00:00 2001 From: SASAGAWA Kiyoshi Date: Tue, 26 May 2026 17:11:36 +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(#17498)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 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 e3cd6c6a429..ce890f9a271 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ ### Server - Enhance: リモートノートクリーニングジョブのスキップ処理のパフォーマンス改善 +- Fix: PerUserDriveChart がシステム所有ファイル (userId が null) の更新で `"group"` の非NULL制約違反によりクラッシュする問題を修正 (#17498) ## 2026.5.4 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 f7e92aecead..7075d2134c6 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,