"Une chaîne vide n'est pas une chaîne JSON valide" lors de la mise à jour du composant de thème

Lors de la mise à jour d’un composant de thème, l’erreur suivante se produit.

Échec de la mise à jour du composant de thème Brand Header
Une chaîne vide n'est pas une chaîne JSON valide.
/var/www/discourse/lib/theme_settings_manager/objects.rb:13:in `parse'
/var/www/discourse/lib/theme_settings_manager/objects.rb:13:in `value='
/var/www/discourse/app/models/theme.rb:760:in `update_setting'
/var/www/discourse/app/models/theme.rb:881:in `block (2 levels) in migrate_settings'
/var/www/discourse/app/models/theme.rb:880:in `each'
/var/www/discourse/app/models/theme.rb:880:in `block in migrate_settings'
/var/www/discourse/app/models/theme.rb:919:in `migrate_settings'
/var/www/discourse/app/models/remote_theme.rb:377:in `block in update_from_remote'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.3.4/lib/active_record/connection_adapters/abstract/transaction.rb:535:in `block in within_new_transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.1.3.4/lib/active_support/concurrency/null_lock.rb:9:in `synchronize'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.3.4/lib/active_record/connection_adapters/abstract/transaction.rb:532:in `within_new_transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.3.4/lib/active_record/connection_adapters/abstract/database_statements.rb:344:in `transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.3.4/lib/active_record/transactions.rb:212:in `transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.3.4/lib/active_record/transactions.rb:301:in `transaction'
/var/www/discourse/app/models/remote_theme.rb:383:in `update_from_remote'

Ceci concerne GitHub - discourse/discourse-brand-header: Brand header theme component for Discourse qui est mis à jour de 5b0c2da à f458dc9 (car Discourse est mis à jour de 3.2.4 à 3.3.0).
La raison pour laquelle cela se produit est que le champ “links” est vide et que la logique de mise à jour ne peut apparemment pas le gérer @tgxworld

Solution de contournement :

  • Entrez foo,https://example.com,bar dans le champ “links”
  • Mettez à jour le composant de thème
  • Ouvrez l’éditeur pour les liens et supprimez l’entrée

Cependant, cette solution de contournement est difficile à automatiser… :sob:

4 « J'aime »

Je vais examiner cela aujourd’hui.

3 « J'aime »

Ceci a été corrigé dans

Probablement fusionné et publié dans les prochaines 24 heures.

4 « J'aime »

Ce sujet a été automatiquement fermé après 3 jours. Les nouvelles réponses ne sont plus autorisées.