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,