Erreur lors de la modification d'un post avec une image (NginX Proxy Manager ?)

Je reçois une erreur en essayant d’enregistrer un article après l’avoir modifié dans la version 2.9.0.beta4. L’erreur est une erreur 500 et, d’après toutes les apparences, il semble qu’elle ne puisse pas enregistrer un brouillon. J’ai déjà eu des erreurs de propriété de fichiers dans cette version. Quelqu’un peut-il me dire le chemin où les articles et les brouillons sont stockés afin que je puisse vérifier la propriété et la protection ?

Cela semble être une réponse trop simple, je m’excuse donc si je l’ai mal jugée, mais si vous utilisez le plugin Discourse Data Explorer, les publications se trouvent dans la table posts et les brouillons dans la table drafts.

Y a-t-il une erreur dans la console de votre navigateur qui pourrait ajouter des détails supplémentaires sur ce qui ne fonctionne pas ?

Je n’utilise pas le plugin Explorer. Il semble que cela se produise lors de la modification de documents contenant des graphiques en ligne. Le niveau de protection du dossier où ils sont stockés n’est peut-être pas correct ? Savez-vous où il se trouve ?

1 « J'aime »

Comme l’a mentionné @JammyDodger, la grande majorité des données de Discourse est stockée dans la base de données postgres, il est donc peu probable que vous ayez des problèmes de « propriété de fichier » qui n’affectent que certaines fonctions de Discourse.

Dans une installation standard, les téléchargements sont stockés sous /var/discourse/shared/standalone/.... Ce répertoire est ensuite monté à l’intérieur du conteneur Docker. Il est possible qu’il y ait un problème de permissions là-bas :+1:

Pour être sûr, la cause des erreurs 500 devrait être visible dans les journaux d’erreurs de votre site. Lorsque vous êtes connecté en tant qu’administrateur, visitez /logs et recherchez les erreurs rouges récentes.

4 « J'aime »

J’ai une installation standard que j’ai effectuée à partir du site Web. À l’intérieur du conteneur, /var ne contient pas de ./discourse. Il contient cependant un ./www. Le /var/www/discourse existe. Tout ce qu’il contient appartient à discourse et il n’y a pas de dossier partagé ou autonome.

Il y a un dossier /var/discourse/shared/standalone en dehors du conteneur. Étant une installation Docker, il n’y a pas de Docker en dehors du conteneur.

1 « J'aime »

^^ quelque chose de visible dans les journaux d’erreurs ?

Je n’ai pas de /logs. Il y a un dossier /var/discourse/shared/standalone/log/var-log et un dossier /var/log. Ces deux dossiers contiennent de nombreux fichiers .gz.

Lorsque vous êtes connecté en tant qu’administrateur, vous devriez pouvoir visiter https://{your forum}}/logs dans un navigateur.

Merci ! Je n’étais pas au courant. Je viens de déclencher l’erreur 500 en modifiant un message et j’ai regardé le journal :


L’erreur est déclenchée à la seconde où je clique sur enregistrer.

Pouvez-vous copier/coller l’intégralité de l’onglet « info » et de l’onglet « backtrace » ? (la partie la plus utile du backtrace est le haut, qui est coupé sur cette capture d’écran)

Voici l’onglet d’informations juste après que j’ai déclenché l’erreur 500 en modifiant un article existant.

Salut @vmsman :slightly_smiling_face: Comment ça va ?

Si tu peux, pourrais-tu copier-coller l’intégralité de l’‘info’ et du ‘backtrace’ dans un bloc de code ici sur Meta afin que nous puissions voir tous les éléments importants ?

Voici une erreur différente de mon site de test à titre d’exemple :

Message (35 copies signalées)

Échec du préchauffage du texte formaté : JavaScript a été terminé (soit par dépassement du délai, soit explicitement)

Backtrace

lib/discourse.rb:772:in `rescue in after_fork'
lib/discourse.rb:768:in `after_fork'
/var/www/discourse/lib/demon/base.rb:217:in `establish_app'
/var/www/discourse/lib/demon/base.rb:147:in `block in run'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.4.7/lib/active_support/fork_tracker.rb:10:in `block in fork'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.4.7/lib/active_support/fork_tracker.rb:8:in `fork'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.4.7/lib/active_support/fork_tracker.rb:8:in `fork'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.4.7/lib/active_support/fork_tracker.rb:27:in `fork'
/var/www/discourse/lib/demon/base.rb:144:in `run'
/var/www/discourse/lib/demon/base.rb:140:in `start'

I found something significant. When I edit an existing post I see a message in red indicating that drafts are offline.

Hopefully this is what you need. The 500 error appears to generate a #<Net::OpenTimeout: execution expired>

/usr/local/lib/ruby/2.7.0/net/http.rb:960:in `initialize'
/usr/local/lib/ruby/2.7.0/net/http.rb:960:in `open'
/usr/local/lib/ruby/2.7.0/net/http.rb:960:in `block in connect'
/usr/local/lib/ruby/2.7.0/timeout.rb:105:in `timeout'
/usr/local/lib/ruby/2.7.0/net/http.rb:958:in `connect'
/usr/local/lib/ruby/2.7.0/net/http.rb:943:in `do_start'
/usr/local/lib/ruby/2.7.0/net/http.rb:932:in `start'
/usr/local/lib/ruby/2.7.0/net/http.rb:606:in `start'
/var/www/discourse/lib/final_destination.rb:515:in `safe_session'
/var/www/discourse/lib/final_destination.rb:455:in `safe_get'
/var/www/discourse/lib/final_destination.rb:147:in `get'
/var/www/discourse/lib/retrieve_title.rb:63:in `fetch_title'
/var/www/discourse/lib/retrieve_title.rb:7:in `crawl'
/var/www/discourse/app/jobs/regular/crawl_topic_link.rb:39:in `execute'
/var/www/discourse/app/jobs/base.rb:232:in `block (2 levels) in perform'
rails_multisite-4.0.1/lib/rails_multisite/connection_management.rb:80:in `with_connection'
/var/www/discourse/app/jobs/base.rb:221:in `block in perform'
/var/www/discourse/app/jobs/base.rb:217:in `each'
/var/www/discourse/app/jobs/base.rb:217:in `perform'
sidekiq-6.4.1/lib/sidekiq/processor.rb:196:in `execute_job'
sidekiq-6.4.1/lib/sidekiq/processor.rb:164:in `block (2 levels) in process'
sidekiq-6.4.1/lib/sidekiq/middleware/chain.rb:138:in `block in invoke'
/var/www/discourse/lib/sidekiq/pausable.rb:138:in `call'
sidekiq-6.4.1/lib/sidekiq/middleware/chain.rb:140:in `block in invoke'
sidekiq-6.4.1/lib/sidekiq/middleware/chain.rb:143:in `invoke'
sidekiq-6.4.1/lib/sidekiq/processor.rb:163:in `block in process'
sidekiq-6.4.1/lib/sidekiq/processor.rb:136:in `block (6 levels) in dispatch'
sidekiq-6.4.1/lib/sidekiq/job_retry.rb:114:in `local'
sidekiq-6.4.1/lib/sidekiq/processor.rb:135:in `block (5 levels) in dispatch'
sidekiq-6.4.1/lib/sidekiq.rb:40:in `block in <module:Sidekiq>'
sidekiq-6.4.1/lib/sidekiq/processor.rb:131:in `block (4 levels) in dispatch'
sidekiq-6.4.1/lib/sidekiq/processor.rb:257:in `stats'
sidekiq-6.4.1/lib/sidekiq/processor.rb:126:in `block (3 levels) in dispatch'
sidekiq-6.4.1/lib/sidekiq/job_logger.rb:13:in `call'
sidekiq-6.4.1/lib/sidekiq/processor.rb:125:in `block (2 levels) in dispatch'
sidekiq-6.4.1/lib/sidekiq/job_retry.rb:81:in `global'
sidekiq-6.4.1/lib/sidekiq/processor.rb:124:in `block in dispatch'
sidekiq-6.4.1/lib/sidekiq/job_logger.rb:39:in `prepare'
sidekiq-6.4.1/lib/sidekiq/processor.rb:123:in `dispatch'
sidekiq-6.4.1/lib/sidekiq/processor.rb:162:in `process'
sidekiq-6.4.1/lib/sidekiq/processor.rb:78:in `process_one'
sidekiq-6.4.1/lib/sidekiq/processor.rb:68:in `run'
sidekiq-6.4.1/lib/sidekiq/util.rb:56:in `watchdog'
sidekiq-6.4.1/lib/sidekiq/util.rb:65:in `block in safe_thread'

I am also seeing a ActionView::Template::Error (undefined method `stylesheet_path’ for #Stylesheet::Manager::Builder:0x00007f27b6c2f850 Did you mean? stylesheet_relpath stylesheet_fullpath) lib/stylesh

lib/stylesheet/manager.rb:246:in `block in stylesheet_details'
lib/stylesheet/manager.rb:215:in `synchronize'
lib/stylesheet/manager.rb:215:in `stylesheet_details'
lib/stylesheet/manager.rb:192:in `stylesheet_link_tag'
app/helpers/application_helper.rb:565:in `discourse_stylesheet_link_tag'
app/views/layouts/crawler.html.erb:11
actionview (6.1.4.1) lib/action_view/base.rb:247:in `public_send'
actionview (6.1.4.1) lib/action_view/base.rb:247:in `_run'
actionview (6.1.4.1) lib/action_view/template.rb:154:in `block in render'
activesupport (6.1.4.1) lib/active_support/notifications.rb:205:in `instrument'
actionview (6.1.4.1) lib/action_view/template.rb:345:in `instrument_render_template'
actionview (6.1.4.1) lib/action_view/template.rb:152:in `render'
rack-mini-profiler (2.3.3) lib/mini_profiler/profiling_methods.rb:85:in `block in profile_method'
actionview (6.1.4.1) lib/action_view/renderer/template_renderer.rb:72:in `block in render_with_layout'
activesupport (6.1.4.1) lib/active_support/notifications.rb:203:in `block in instrument'
activesupport (6.1.4.1) lib/active_support/notifications/instrumenter.rb:24:in `instrument'
activesupport (6.1.4.1) lib/active_support/notifications.rb:203:in `instrument'
actionview (6.1.4.1) lib/action_view/renderer/template_renderer.rb:70:in `render_with_layout'
actionview (6.1.4.1) lib/action_view/renderer/template_renderer.rb:55:in `render_template'
actionview (6.1.4.1) lib/action_view/renderer/template_renderer.rb:11:in `render'
actionview (6.1.4.1) lib/action_view/renderer/renderer.rb:61:in `render_template_to_object'
actionview (6.1.4.1) lib/action_view/renderer/renderer.rb:29:in `render_to_object'
actionview (6.1.4.1) lib/action_view/rendering.rb:117:in `block in _render_template'
actionview (6.1.4.1) lib/action_view/base.rb:273:in `in_rendering_context'
actionview (6.1.4.1) lib/action_view/rendering.rb:116:in `_render_template'
actionpack (6.1.4.1) lib/action_controller/metal/streaming.rb:218:in `_render_template'
actionview (6.1.4.1) lib/action_view/rendering.rb:103:in `render_to_body'
actionpack (6.1.4.1) lib/action_controller/metal/rendering.rb:52:in `render_to_body'
actionpack (6.1.4.1) lib/action_controller/metal/renderers.rb:142:in `render_to_body'
actionpack (6.1.4.1) lib/abstract_controller/rendering.rb:25:in `render'
actionpack (6.1.4.1) lib/action_controller/metal/rendering.rb:36:in `render'
actionpack (6.1.4.1) lib/action_controller/metal/instrumentation.rb:46:in `block (2 levels) in render'
/usr/local/lib/ruby/2.7.0/benchmark.rb:308:in `realtime'
activesupport (6.1.4.1) lib/active_support/core_ext/benchmark.rb:14:in `ms'
actionpack (6.1.4.1) lib/action_controller/metal/instrumentation.rb:46:in `block in render'
actionpack (6.1.4.1) lib/action_controller/metal/instrumentation.rb:86:in `cleanup_view_runtime'
activerecord (6.1.4.1) lib/active_record/railties/controller_runtime.rb:34:in `cleanup_view_runtime'
actionpack (6.1.4.1) lib/action_controller/metal/instrumentation.rb:45:in `render'
lib/topic_list_responder.rb:13:in `block (2 levels) in respond_with_list'
actionpack (6.1.4.1) lib/action_controller/metal/mime_responds.rb:214:in `respond_to'
lib/topic_list_responder.rb:9:in `respond_with_list'
app/controllers/list_controller.rb:103:in `block (2 levels) in <class:ListController>'
actionpack (6.1.4.1) lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
actionpack (6.1.4.1) lib/abstract_controller/base.rb:228:in `process_action'
actionpack (6.1.4.1) lib/action_controller/metal/rendering.rb:30:in `process_action'
actionpack (6.1.4.1) lib/abstract_controller/callbacks.rb:42:in `block in process_action'
activesupport (6.1.4.1) lib/active_support/callbacks.rb:117:in `block in run_callbacks'
app/controllers/application_controller.rb:387:in `block in with_resolved_locale'
i18n (1.9.1) lib/i18n.rb:328:in `with_locale'
app/controllers/application_controller.rb:387:in `with_resolved_locale'
activesupport (6.1.4.1) lib/active_support/callbacks.rb:126:in `block in run_callbacks'
activesupport (6.1.4.1) lib/active_support/callbacks.rb:137:in `run_callbacks'
actionpack (6.1.4.1) lib/abstract_controller/callbacks.rb:41:in `process_action'
actionpack (6.1.4.1) lib/action_controller/metal/rescue.rb:22:in `process_action'
actionpack (6.1.4.1) lib/action_controller/metal/instrumentation.rb:34:in `block in process_action'
activesupport (6.1.4.1) lib/active_support/notifications.rb:203:in `block in instrument'
activesupport (6.1.4.1) lib/active_support/notifications/instrumenter.rb:24:in `instrument'
activesupport (6.1.4.1) lib/active_support/notifications.rb:203:in `instrument'
actionpack (6.1.4.1) lib/action_controller/metal/instrumentation.rb:33:in `process_action'
actionpack (6.1.4.1) lib/action_controller/metal/params_wrapper.rb:249:in `process_action'
activerecord (6.1.4.1) lib/active_record/railties/controller_runtime.rb:27:in `process_action'
actionpack (6.1.4.1) lib/abstract_controller/base.rb:165:in `process'
actionview (6.1.4.1) lib/action_view/rendering.rb:39:in `process'
rack-mini-profiler (2.3.3) lib/mini_profiler/profiling_methods.rb:85:in `block in profile_method'
actionpack (6.1.4.1) lib/action_controller/metal.rb:190:in `dispatch'
actionpack (6.1.4.1) lib/action_controller/metal.rb:254:in `dispatch'
actionpack (6.1.4.1) lib/action_dispatch/routing/route_set.rb:50:in `dispatch'
actionpack (6.1.4.1) lib/action_dispatch/routing/route_set.rb:33:in `serve'
actionpack (6.1.4.1) lib/action_dispatch/routing/mapper.rb:19:in `block in <class:Constraints>'
actionpack (6.1.4.1) lib/action_dispatch/routing/mapper.rb:49:in `serve'
actionpack (6.1.4.1) lib/action_dispatch/journey/router.rb:50:in `block in serve'
actionpack (6.1.4.1) lib/action_dispatch/journey/router.rb:32:in `each'
actionpack (6.1.4.1) lib/action_dispatch/journey/router.rb:32:in `serve'
actionpack (6.1.4.1) lib/action_dispatch/routing/route_set.rb:842:in `call'
lib/middleware/omniauth_bypass_middleware.rb:71:in `call'
rack (2.2.3) lib/rack/tempfile_reaper.rb:15:in `call'
rack (2.2.3) lib/rack/conditional_get.rb:27:in `call'
rack (2.2.3) lib/rack/head.rb:12:in `call'
actionpack (6.1.4.1) lib/action_dispatch/http/permissions_policy.rb:22:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:354:in `call'
rack (2.2.3) lib/rack/session/abstract/id.rb:266:in `context'
rack (2.2.3) lib/rack/session/abstract/id.rb:260:in `call'
actionpack (6.1.4.1) lib/action_dispatch/middleware/cookies.rb:689:in `call'
actionpack (6.1.4.1) lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'
activesupport (6.1.4.1) lib/active_support/callbacks.rb:98:in `run_callbacks'
actionpack (6.1.4.1) lib/action_dispatch/middleware/callbacks.rb:26:in `call'
actionpack (6.1.4.1) lib/action_dispatch/middleware/actionable_exceptions.rb:18:in `call'
actionpack (6.1.4.1) lib/action_dispatch/middleware/debug_exceptions.rb:29:in `call'
actionpack (6.1.4.1) lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'
logster (2.10.1) lib/logster/middleware/reporter.rb:43:in `call'
railties (6.1.4.1) lib/rails/rack/logger.rb:37:in `call_app'
railties (6.1.4.1) lib/rails/rack/logger.rb:28:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
actionpack (6.1.4.1) lib/action_dispatch/middleware/remote_ip.rb:81:in `call'
actionpack (6.1.4.1) lib/action_dispatch/middleware/request_id.rb:26:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
rack (2.2.3) lib/rack/method_override.rb:24:in `call'
actionpack (6.1.4.1) lib/action_dispatch/middleware/executor.rb:14:in `call'
rack (2.2.3) lib/rack/sendfile.rb:110:in `call'
actionpack (6.1.4.1) lib/action_dispatch/middleware/host_authorization.rb:92:in `call'
rack-mini-profiler (2.3.3) lib/mini_profiler/profiler.rb:249:in `call'
message_bus (4.0.0) lib/message_bus/rack/middleware.rb:60:in `call'
lib/middleware/request_tracker.rb:198:in `call'
railties (6.1.4.1) lib/rails/engine.rb:539:in `call'
railties (6.1.4.1) lib/rails/railtie.rb:207:in `public_send'
railties (6.1.4.1) lib/rails/railtie.rb:207:in `method_missing'
rack (2.2.3) lib/rack/urlmap.rb:74:in `block in call'
rack (2.2.3) lib/rack/urlmap.rb:58:in `each'
rack (2.2.3) 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'

Il s’avère que je n’avais pas remarqué, mais apparemment je ne peux plus télécharger d’images. Toute tentative de téléchargement d’une image sur un nouveau message entraîne le message « Désolé, une erreur s’est produite lors du téléchargement du fichier. Veuillez réessayer. ». Donc, apparemment, je ne peux ni modifier ni enregistrer quoi que ce soit dans un ancien message sans une erreur 500 et je ne peux pas créer un nouveau message s’il n’est pas uniquement textuel. Je peux donc à la fois créer et supprimer un message uniquement textuel. Je pense donc que nous avons réduit le problème à un type d’erreur avec tout message contenant des graphiques, nouveaux et anciens. Je suis l’utilisateur administrateur dans ces tests.

Par conséquent, dans une frustration totale, j’ai décidé d’essayer une reconstruction. Les premières erreurs que je vois sont :

I, [2022-04-29T00:19:51.497560 #1]  INFO -- : cd /var/www/discourse & [ ! -d 'node_modules' ] || su discourse -c 'yarn install --production & yarn cache clean'
warning Skipping preferred cache folder "/home/discourse/.cache/yarn" because it is not writable.
warning Selected the next writable cache folder in the list, will be "/tmp/.yarn-cache-1000".
warning Cannot find a suitable global folder. Tried these: "/usr/local, /home/discourse/.yarn"
warning Skipping preferred cache folder "/home/discourse/.cache/yarn" because it is not writable.
warning Selected the next writable cache folder in the list, will be "/tmp/.yarn-cache-1000".

Ce sont des erreurs intéressantes car j’ai mis 777 sur /home/discourse et j’obtiens toujours ces erreurs.
Aucune autre erreur jusqu’à la fin :

FAILED
--------------------
Pups::ExecError: cd /var/www/discourse & su discourse -c 'bundle exec rake themes:update assets:precompile' failed with return #<Process::Status: pid 716 exit 1>
Location of failure: /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"assets_precompile", "cmd"=>["su discourse -c 'bundle exec rake themes:update assets:precompile'"]}
bootstrap failed with exit code 1
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
451d4b5ee8d036df6ab8f7717019d94b66d10d261c3d1201547dad7a1722a544
==================== END REBUILD LOG ====================
Failed to rebuild app.

Quoi qu’il en soit, après avoir exécuté ./discourse-doctor, j’ai pu publier avec des graphiques et modifier des publications avec des graphiques à nouveau jusqu’à ce que je redémarre, et maintenant j’ai les mêmes erreurs.

Je pense que nous devrions peut-être examiner cela depuis les bases :

  • S’agit-il d’une installation standard ?
  • Avez-vous installé des plugins ou des thèmes personnalisés ?
  • Lorsque vous reconstruisez, quelles sont les erreurs dans la sortie (c’est-à-dire à la fin, lorsqu’on vous demande de faire défiler vers le haut pour des erreurs plus spécifiques, quelles erreurs voyez-vous/pouvez-vous tout copier dans un bloc de code ici pour que nous puissions voir)
  • Quels changements discourse-doctor a-t-il apportés/suggérés, et qu’avez-vous fait pour « redémarrer » votre instance qui a fait que ces changements ont cessé de fonctionner ?

Ceci est une installation standard. Elle existe depuis environ 2 ans.
Je n’utilise aucun plugin ni thème personnalisé.
J’ai collé toutes les erreurs que j’obtiens pendant la reconstruction.
Les toutes premières erreurs sont :

I, [2022-04-29T00:19:51.497560 #1]  INFO -- : > cd /var/www/discourse & [ ! -d 'node_modules' ] || su discourse -c 'yarn install --production & yarn cache clean'
warning Skipping preferred cache folder "/home/discourse/.cache/yarn" because it is not writable.
warning Selected the next writable cache folder in the list, will be "/tmp/.yarn-cache-1000".
warning Cannot find a suitable global folder. Tried these: "/usr/local, /home/discourse/.yarn"
warning Skipping preferred cache folder "/home/discourse/.cache/yarn" because it is not writable.
warning Selected the next writable cache folder in the list, will be "/tmp/.yarn-cache-1000".

Discourse-doctor ne suggère aucun changement et semble fonctionner correctement.

Je ne sais pas exactement quand les erreurs 500 ont commencé, ce qui coïncide avec mon incapacité à enregistrer des brouillons ou des publications avec des graphiques. Allez visiter mon forum à : https://discussion.scottibyte.com pour le voir par vous-même. Dans les messages ci-dessus, j’ai mis absolument TOUTES les erreurs que j’ai vues pendant la reconstruction et le discourse-doctor.

Je peux vous dire qu’après avoir exécuté :

./discourse-setup rebuild

L’instance ne démarre pas comme vous pouvez le voir ci-dessus. Si j’exécute :

./discourse-doctor

Immédiatement après, l’instance est d’une manière ou d’une autre au moins démarrée, mais j’ai les mêmes erreurs.
J’aime ce produit, mais il semble tellement truffé d’erreurs aléatoires tous les quelques mois qui sont difficiles à corriger. Mon installation est absolument standard sans modifications et elle se casse aléatoirement.

1 « J'aime »

Votre disque est-il plein ? Je pense que vous recevriez un avertissement, cependant.

Je serai de retour en ligne correctement plus tard, mais juste pour vérifier rapidement, est-ce une faute de frappe ?

La commande devrait être :

./launcher rebuild app

Non, ce n’est pas une faute de frappe. J’utilise apparemment la mauvaise commande. Je suis en train de l’essayer.