Ciao,
Ho un problema con il admin_detailed_user_serializer che causa errori 500 quando un amministratore tenta di visualizzare un utente dalla ricerca utenti. L’errore 500 si verifica anche quando si effettuano chiamate API GET a https://mycommunity/admin/users/2000020409.json. Di seguito è riportata l’eccezione dai log. Circa il 50% degli utenti presenta questo errore. Ho provato a confrontare gli utenti funzionanti e quelli non funzionanti nel database ma non riesco a capire quale sia il problema. Sospetto che qualcosa che ho fatto durante una migrazione utente da un altro sistema abbia causato questo problema.
Di seguito sono stati i miei passaggi di migrazione dati:
- Inseriti manualmente i dati nelle tabelle
users,user_profiles,user_emailseuser_stats. - Inizialmente tutti gli utenti avevano un’email ‘someid@example.com’.
- Ho quindi aggiornato la tabella
user_emailper l’utente in modo che avesse l’email corretta. - Dopo questo punto, ho notato che il 50% di questi utenti non può essere visualizzato dall’elenco utenti dell’amministratore. Tuttavia, se si fa clic con il pulsante destro del mouse sul loro nome nell’elenco dei profili per far apparire la scheda del profilo, è possibile fare clic al suo interno e accedere al profilo senza problemi. È possibile apportare modifiche al profilo ma se si tenta di rendere qualcuno un amministratore si otterrà lo stesso errore 500 che ho elencato di seguito.
Qualcuno sa cosa sta controllando questo codice? Suppongo che ad alcuni utenti debba mancare un pezzo critico di dati che causa questa eccezione 500. Qualcuno ha qualche ipotesi? Sono nuovo a Discourse e qualsiasi consiglio sarebbe molto apprezzato.
Grazie!
app/serializers/admin_user_list_serializer.rb:95:in `time_read'
(eval):27:in `_fast_attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:468:in `rescue in attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:455:in `attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:480:in `_serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:359:in `serializable_hash'
active_model_serializers (0.8.4) lib/active_model/array_serializer.rb:89:in `block in _serializable_array'
activerecord (7.0.4.3) lib/active_record/relation/delegation.rb:88:in `each'
activerecord (7.0.4.3) lib/active_record/relation/delegation.rb:88:in `each'
active_model_serializers (0.8.4) lib/active_model/array_serializer.rb:79:in `map'
active_model_serializers (0.8.4) lib/active_model/array_serializer.rb:79:in `_serializable_array'
active_model_serializers (0.8.4) lib/active_model/array_serializer.rb:73:in `serializable_array'
active_model_serializers (0.8.4) lib/active_model/array_serializer.rb:53:in `as_json'
app/serializers/admin_detailed_user_serializer.rb:166:in `similar_users'
(eval):72:in `_fast_attributes'
active_model_serializers (0.8.4