GitのハングとAdmin/ModユーザーアカウントのOopsエラーページ

少し戻りますが… 在那里で私がやろうとしていたのは、例外を投げるコードが実行される必要がなくなることを期待して、管理者の設定を変更することでした。

しかし、本当に知りたいのは、修正が必要なコードのバグがあるのか、それともデータベースに存在すべきでない奇妙なデータがあるのか、あるいはその両方かということです。

バックトレースは app/serializers/current_user_serializer.rb のこのコードにたどり着きます。

  def has_new_upcoming_changes
    last_visited = object.custom_fields["last_visited_upcoming_changes_at"]
    return false if last_visited.blank? && object.created_at < Discourse.site_creation_date + 1.hour
    cutoff = last_visited.present? ? Time.zone.parse(last_visited) : object.created_at
    UpcomingChangeEvent.added.not_backfilled.where("created_at > ?", cutoff).exists?
  end

データエクスプローラーのクエリを実行して、管理者アカウントの last_visited_upcoming_changes_at の値が何になっているかを確認することができます。

SELECT 
    ucf.id AS custom_field_id, 
    ucf.user_id, 
    u.username,
    ucf.name, 
    ucf.value 
FROM user_custom_fields ucf
INNER JOIN users u ON u.id = ucf.user_id
WHERE ucf.name = 'last_visited_upcoming_changes_at'
  AND u.admin = true

これにより、有益な情報が得られるかもしれません。私の場合(最近 v2026.7.3 に更新しました)は、単なる日付文字列であり、本来そうあるべきだと思います。