Erreur 422 lors de la traduction de textes et de liens

Je reçois une erreur 422 lors de la traduction de texte brut et de liens avec LibreTranslate. Cependant, des publications similaires (juste du texte et des liens) se traduisent bien.

Sur l’interface utilisateur, une popup affiche « Erreur 422 », rien de plus.

Dans les journaux de discourse, nous avons la trace de la pile suivante (elle dit que je ne peux pas inclure de liens dans les messages) :

Failed to handle exception in exception app middleware : ActiveRecord::RecordInvalid : Validation échouée : Nous sommes désolés, vous ne pouvez pas inclure de liens dans vos messages.
activerecord-7.0.8/lib/active_record/validations.rb:80:in `raise_validation_error'
activerecord-7.0.8/lib/active_record/validations.rb:53:in `save!'
activerecord-7.0.8/lib/active_record/transactions.rb:302:in `block in save!'
activerecord-7.0.8/lib/active_record/transactions.rb:354:in `block in with_transaction_returning_status'
activerecord-7.0.8/lib/active_record/connection_adapters/abstract/transaction.rb:319:in `block in within_new_transaction'
activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'
activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'
activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'
activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'
activerecord-7.0.8/lib/active_record/connection_adapters/abstract/transaction.rb:317:in `within_new_transaction'
activerecord-7.0.8/lib/active_record/connection_adapters/abstract/database_statements.rb:316:in `transaction'
activerecord-7.0.8/lib/active_record/transactions.rb:350:in `with_transaction_returning_status'
activerecord-7.0.8/lib/active_record/transactions.rb:302:in `save!'
activerecord-7.0.8/lib/active_record/suppressor.rb:54:in `save!'
/var/www/discourse/plugins/discourse-translator/services/discourse_translator/base.rb:46:in `from_custom_fields'
/var/www/discourse/plugins/discourse-translator/services/discourse_translator/libretranslate.rb:115:in `translate'
/var/www/discourse/plugins/discourse-translator/plugin.rb:78:in `translate'
actionpack-7.0.8/lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
actionpack-7.0.8/lib/abstract_controller/base.rb:215:in `process_action'
actionpack-7.0.8/lib/action_controller/metal/rendering.rb:165:in `process_action'
actionpack-7.0.8/lib/abstract_controller/callbacks.rb:234:in `block in process_action'
activesupport-7.0.8/lib/active_support/callbacks.rb:118:in `block in run_callbacks'
/var/www/discourse/app/controllers/application_controller.rb:423:in `block in with_resolved_locale'
i18n-1.14.1/lib/i18n.rb:322:in `with_locale'
/var/www/discourse/app/controllers/application_controller.rb:423:in `with_resolved_locale'
activesupport-7.0.8/lib/active_support/callbacks.rb:127:in `block in run_callbacks'
activesupport-7.0.8/lib/active_support/callbacks.rb:138:in `run_callbacks'
actionpack-7.0.8/lib/abstract_controller/callbacks.rb:233:in `process_action'
actionpack-7.0.8/lib/action_controller/metal/rescue.rb:23:in `process_action'
actionpack-7.0.8/lib/action_controller/metal/instrumentation.rb:67:in `block in process_action'
activesupport-7.0.8/lib/active_support/notifications.rb:206:in `block in instrument'
activesupport-7.0.8/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
activesupport-7.0.8/lib/active_support/notifications.rb:206:in `instrument'
actionpack-7.0.8/lib/action_controller/metal/instrumentation.rb:66:in `process_action'
actionpack-7.0.8/lib/action_controller/metal/params_wrapper.rb:259:in `process_action'
activerecord-7.0.8/lib/active_record/railties/controller_runtime.rb:27:in `process_action'
actionpack-7.0.8/lib/abstract_controller/base.rb:151:in `process'
actionview-7.0.8/lib/action_view/rendering.rb:39:in `process'
rack-mini-profiler-3.3.0/lib/mini_profiler/profiling_methods.rb:89:in `block in profile_method'
actionpack-7.0.8/lib/action_controller/metal.rb:188:in `dispatch'
actionpack-7.0.8/lib/action_controller/metal.rb:251:in `dispatch'
actionpack-7.0.8/lib/action_dispatch/routing/route_set.rb:49:in `dispatch'
actionpack-7.0.8/lib/action_dispatch/routing/route_set.rb:32:in `serve'
actionpack-7.0.8/lib/action_dispatch/journey/router.rb:50:in `block in serve'
actionpack-7.0.8/lib/action_dispatch/journey/router.rb:32:in `each'
actionpack-7.0.8/lib/action_dispatch/journey/router.rb:32:in `serve'
actionpack-7.0.8/lib/action_dispatch/routing/route_set.rb:852:in `call'
railties-7.0.8/lib/rails/engine.rb:530:in `call'
railties-7.0.8/lib/rails/railtie.rb:226:in `public_send'
railties-7.0.8/lib/rails/railtie.rb:226:in `method_missing'
actionpack-7.0.8/lib/action_dispatch/routing/mapper.rb:19:in `block in <class:Constraints>'
actionpack-7.0.8/lib/action_dispatch/routing/mapper.rb:48:in `serve'
actionpack-7.0.8/lib/action_dispatch/journey/router.rb:50:in `block in serve'
actionpack-7.0.8/lib/action_dispatch/journey/router.rb:32:in `each'
actionpack-7.0.8/lib/action_dispatch/journey/router.rb:32:in `serve'
actionpack-7.0.8/lib/action_dispatch/routing/route_set.rb:852:in `call'
/var/www/discourse/lib/middleware/omniauth_bypass_middleware.rb:64:in `call'
rack-2.2.8/lib/rack/tempfile_reaper.rb:15:in `call'
rack-2.2.8/lib/rack/conditional_get.rb:40:in `call'
rack-2.2.8/lib/rack/head.rb:12:in `call'
actionpack-7.0.8/lib/action_dispatch/http/permissions_policy.rb:38:in `call'
/var/www/discourse/lib/content_security_policy/middleware.rb:12:in `call'
/var/www/discourse/lib/middleware/anonymous_cache.rb:393:in `call'
/var/www/discourse/lib/middleware/gtm_script_nonce_injector.rb:10:in `call'
/var/www/discourse/config/initializers/008-rack-cors.rb:14:in `call'
rack-2.2.8/lib/rack/session/abstract/id.rb:266:in `context'
rack-2.2.8/lib/rack/session/abstract/id.rb:260:in `call'
actionpack-7.0.8/lib/action_dispatch/middleware/cookies.rb:704:in `call'
actionpack-7.0.8/lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'
activesupport-7.0.8/lib/active_support/callbacks.rb:99:in `run_callbacks'
actionpack-7.0.8/lib/action_dispatch/middleware/callbacks.rb:26:in `call'
actionpack-7.0.8/lib/action_dispatch/middleware/debug_exceptions.rb:28:in `call'
actionpack-7.0.8/lib/action_dispatch/middleware/show_exceptions.rb:29:in `call'
logster-2.15.0/lib/logster/middleware/reporter.rb:40:in `call'
railties-7.0.8/lib/rails/rack/logger.rb:40:in `call_app'
railties-7.0.8/lib/rails/rack/logger.rb:27:in `call'
/var/www/discourse/config/initializers/100-quiet_logger.rb:20:in `call'
/var/www/discourse/config/initializers/100-silence_logger.rb:29:in `call'
actionpack-7.0.8/lib/action_dispatch/middleware/remote_ip.rb:93:in `call'
actionpack-7.0.8/lib/action_dispatch/middleware/request_id.rb:26:in `call'
/var/www/discourse/lib/middleware/enforce_hostname.rb:24:in `call'
rack-2.2.8/lib/rack/method_override.rb:24:in `call'
actionpack-7.0.8/lib/action_dispatch/middleware/executor.rb:14:in `call'
rack-2.2.8/lib/rack/sendfile.rb:110:in `call'
actionpack-7.0.8/lib/action_dispatch/middleware/host_authorization.rb:131:in `call'
rack-mini-profiler-3.3.0/lib/mini_profiler.rb:191:in `call'
message_bus-4.3.8/lib/message_bus/rack/middleware.rb:60:in `call'
/var/www/discourse/lib/middleware/request_tracker.rb:236:in `call'
railties-7.0.8/lib/rails/engine.rb:530:in `call'
railties-7.0.8/lib/rails/railtie.rb:226:in `public_send'
railties-7.0.8/lib/rails/railtie.rb:226:in `method_missing'
rack-2.2.8/lib/rack/urlmap.rb:74:in `block in call'
rack-2.2.8/lib/rack/urlmap.rb:58:in `each'
rack-2.2.8/lib/rack/urlmap.rb:58:in `call'
unicorn-6.1.0/lib/unicorn/http_server.rb:634:in `process_client'
unicorn-6.1.0/lib/unicorn/http_server.rb:739:in `worker_loop'
unicorn-6.1.0/lib/unicorn/http_server.rb:547:in `spawn_missing_workers'
unicorn-6.1.0/lib/unicorn/http_server.rb:143:in `start'
unicorn-6.1.0/bin/unicorn:128:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/3.2.0/bin/unicorn:25:in `load'
/var/www/discourse/vendor/bundle/ruby/3.2.0/bin/unicorn:25:in `<main>'

Trois requêtes atteignent l’instance libretranslate avant qu’elle n’échoue :

[25/Jan/2024:15:56:36 +0000] "POST /libretranslatedetect HTTP/1.1" 200 39 "-" "-" "170.187.194.*"
[25/Jan/2024:15:56:36 +0000] "GET /libretranslatelanguages HTTP/1.1" 200 11115 "-" "excon/0.109.0" "170.187.194.*"
[25/Jan/2024:15:56:40 +0000] "POST /libretranslatetranslate HTTP/1.1" 200 852 "-" "-" "170.187.194.*"

Pour une requête réussie, j’en ai plus :

[25/Jan/2024:16:05:37 +0000] "POST /libretranslatedetect HTTP/1.1" 200 39 "-" "-" "170.187.194.*"
[25/Jan/2024:16:05:37 +0000] "POST /libretranslatedetect HTTP/1.1" 200 39 "-" "-" "170.187.194.*"
[25/Jan/2024:16:05:41 +0000] "POST /libretranslatedetect HTTP/1.1" 200 39 "-" "-" "170.187.194.*"
[25/Jan/2024:16:05:41 +0000] "GET /libretranslatelanguages HTTP/1.1" 200 11115 "-" "excon/0.109.0" "170.187.194.*"
[25/Jan/2024:16:05:42 +0000] "POST /libretranslatetranslate HTTP/1.1" 200 132 "-" "-" "170.187.194.*"

Voici le texte, c’est la section “à propos” d’une catégorie :

BON in a Box est un portail d’outils et de projets, ainsi qu’un moteur de pipeline modulaire pour les EBV et les indicateurs. Plus d’infos. Toute discussion sur la plateforme BON in a Box, les pipelines et les partenariats peut avoir lieu ici. Les discussions sont ouvertes à tous les membres de GEO BON.

Pour les rapports de bugs concernant le moteur de pipeline et l’interface utilisateur, veuillez soumettre un problème dans le dépôt GitHub du moteur de pipeline.
Si vous trouvez un problème avec un script ou un pipeline, veuillez soumettre un problème dans le dépôt GitHub des pipelines.

1 « J'aime »

Pourriez-vous partager la version de Discourse sur laquelle vous vous trouvez actuellement ?

En raison du message indiquant que je ne peux pas publier de liens, je soupçonne que cela pourrait être similaire à ce Bug :

Si c’est le cas, je pense qu’il pourrait y avoir une solution temporaire en place, ce qui signifie qu’une mise à jour pourrait résoudre ce problème. :crossed_fingers:

1 « J'aime »

Certainement, le voici :

3.2.0.beta5-dev

(a840c295d8)

(Commit du 19 janvier 2024… donc assez récent)

1 « J'aime »

La correction pour cela a été fusionnée au cours des dernières heures : DEV: Exclude system users when calculating group user count by Drenmi · Pull Request #25400 · discourse/discourse · GitHub

Pouvez-vous reconstruire votre site et nous faire savoir si cela résout le problème ?

2 « J'aime »

Testé aujourd’hui : corrigé !

Merci beaucoup !

2 « J'aime »

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