Il blocco di Git e l'errore Oops nella pagina di errore per gli account di Admin/Mod

Lasciatemi tornare indietro… ciò che stavo facendo in quel momento era cercare di modificare le preferenze dell’amministratore nella speranza che il codice che genera l’eccezione non dovesse essere eseguito.

Ma ciò che ci interessa davvero è verificare se esiste un bug nel codice che necessita di una correzione, o qualcosa di anomalo nel vostro database che non dovrebbe esserci. O forse entrambe le cose.

Il backtrace porta a questo codice in 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

Si potrebbe eseguire una query tramite data explorer per vedere quale valore di last_visited_upcoming_changes_at hanno i vostri account di amministratore.

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

e ciò potrebbe essere utile. Nel mio caso (aggiornato di recente a v2026.7.3) è semplicemente una stringa di data, che credo sia il formato corretto.