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,