Déjame retroceder un poco… lo que estaba haciendo allí era intentar cambiar las preferencias de administrador con la esperanza de que el código que lanza la excepción no necesitara ejecutarse.
Pero lo que realmente queremos es ver si hay un error en el código que necesite corrección, o algo extraño en tu base de datos que no debería estar ahí. O incluso ambas cosas.
El backtrace lleva a este código en 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
Se podría ejecutar una consulta en el explorador de datos para ver qué valor tiene last_visited_upcoming_changes_at en tus cuentas de administrador.
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
y eso podría ser fructífero. En mi caso (actualizado recientemente a v2026.7.3), es simplemente una cadena de fecha, lo cual creo que debería ser.