Error »fa-user debería actualizarse a user" cuando un bot está raspando

Recibo muchos errores El nombre del icono "fa-user" ha sido eliminado y debe actualizarse a "user" cuando un bot está raspando contenido, sin importar si usa GET y accede a un tema, etiqueta, usuario, ./well-known, etc. Ese error solo proviene de bots, nunca de usuarios reales.

Este es un ejemplo:

hostname foorumi-hel-web-only
process_id 1173
application_version f0057c7353b8c81e5c315f51d1be06c8e22e4731
HTTP_HOST foorumi.katiska.eu
REQUEST_URI /.well-known/traffic-advice
REQUEST_METHOD GET
HTTP_USER_AGENT lwp-request/6.61 libwww-perl/6.61
HTTP_X_FORWARDED_FOR 138.197.182.164
HTTP_X_REAL_IP 138.197.182.164
time 10:04 am
backtrace
Mensaje (26 copias reportadas)

Error de icono faltante: El nombre del icono "fa-user" ha sido eliminado y debe actualizarse a "user" en tu código. Más información en https://meta.discourse.org/t/325349.

Backtrace

/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:134:in `block in error'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:231:in `block in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:231:in `each'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:231:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:134:in `error'
/var/www/discourse/lib/deprecated_icon_handler.rb:693:in `convert_icon'
/var/www/discourse/lib/svg_sprite.rb:533:in `process'
/var/www/discourse/lib/svg_sprite.rb:437:in `search'
/var/www/discourse/lib/svg_sprite.rb:452:in `block in raw_svg'
/var/www/discourse/lib/distributed_cache.rb:20:in `defer_get_set'
/var/www/discourse/lib/svg_sprite.rb:537:in `get_set_cache'
/var/www/discourse/lib/svg_sprite.rb:451:in `raw_svg'
/var/www/discourse/plugins/discourse-geo-blocking/app/views/exceptions/not_found.html.erb:5:in `_plugins_discourse_geo_blocking_app_views_exceptions_not_found_html_erb___1317140915584559193_287120'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionview-7.2.2.1/lib/action_view/base.rb:281:in `public_send'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionview-7.2.2.1/lib/action_view/base.rb:281:in `_run'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionview-7.2.2.1/lib/action_view/template.rb:285:in `block in render'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2.1/lib/active_support/notifications.rb:212:in `instrument'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionview-7.2.2.1/lib/action_view/template.rb:584:in `instrument_render_template'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionview-7.2.2.1/lib/action_view/template.rb:273:in `render'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionview-7.2.2.1/lib/action_view/renderer/template_renderer.rb:66:in `block (2 levels) in render_template'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2.1/lib/active_support/notifications.rb:212:in `instrument'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionview-7.2.2.1/lib/action_view/renderer/template_renderer.rb:60:in `block in render_template'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionview-7.2.2.1/lib/action_view/renderer/template_renderer.rb:76:in `block in render_with_layout'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2.1/lib/active_support/notifications.rb:210:in `block in instrument'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2.1/lib/active_support/notifications/instrumenter.rb:58:in `instrument'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2.1/lib/active_support/notifications.rb:210:in `instrument'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionview-7.2.2.1/lib/action_view/renderer/template_renderer.rb:75:in `render_with_layout'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionview-7.2.2.1/lib/action_view/renderer/template_renderer.rb:59:in `render_template'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionview-7.2.2.1/lib/action_view/renderer/template_renderer.rb:11:in `render'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionview-7.2.2.1/lib/action_view/renderer/renderer.rb:58:in `render_template_to_object'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionview-7.2.2.1/lib/action_view/renderer/renderer.rb:31:in `render_to_object'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionview-7.2.2.1/lib/action_view/rendering.rb:135:in `block in _render_template'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionview-7.2.2.1/lib/action_view/base.rb:308:in `in_rendering_context'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionview-7.2.2.1/lib/action_view/rendering.rb:134:in `_render_template'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionpack-7.2.2.1/lib/action_controller/metal/streaming.rb:258:in `_render_template'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionview-7.2.2.1/lib/action_view/rendering.rb:121:in `render_to_body'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionpack-7.2.2.1/lib/action_controller/metal/rendering.rb:186:in `render_to_body'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionpack-7.2.2.1/lib/action_controller/metal/renderers.rb:142:in `render_to_body'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionpack-7.2.2.1/lib/abstract_controller/rendering.rb:47:in `render_to_string'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionpack-7.2.2.1/lib/action_controller/metal/rendering.rb:175:in `render_to_string'
/var/www/discourse/app/controllers/application_controller.rb:894:in `build_not_found_page'
/var/www/discourse/app/controllers/application_controller.rb:347:in `block in rescue_discourse_actions'
/var/www/discourse/app/controllers/application_controller.rb:427:in `block in with_resolved_locale'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/i18n-1.14.7/lib/i18n.rb:353:in `with_locale'
/var/www/discourse/app/controllers/application_controller.rb:427:in `with_resolved_locale'
/var/www/discourse/app/controllers/application_controller.rb:345:in `rescue_discourse_actions'
/var/www/discourse/plugins/discourse-geo-blocking/plugin.rb:27:in `rescue_discourse_actions'
/var/www/discourse/app/controllers/application_controller.rb:159:in `block in <class:ApplicationController>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2.1/lib/active_support/rescuable.rb:116:in `instance_exec'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2.1/lib/active_support/rescuable.rb:116:in `block in handler_for_rescue'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2.1/lib/active_support/rescuable.rb:94:in `rescue_with_handler'
/var/www/discourse/lib/middleware/discourse_public_exceptions.rb:67:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionpack-7.2.2.1/lib/action_dispatch/middleware/show_exceptions.rb:55:in `render_exception'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionpack-7.2.2.1/lib/action_dispatch/middleware/show_exceptions.rb:41:in `rescue in call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionpack-7.2.2.1/lib/action_dispatch/middleware/show_exceptions.rb:31:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/logster-2.20.1/lib/logster/middleware/reporter.rb:40:in `call'
/var/www/discourse/lib/middleware/default_headers.rb:13:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2.1/lib/rails/rack/logger.rb:41:in `call_app'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2.1/lib/rails/rack/logger.rb:29: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'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionpack-7.2.2.1/lib/action_dispatch/middleware/request_id.rb:33:in `call'
/var/www/discourse/lib/middleware/enforce_hostname.rb:24:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-2.2.13/lib/rack/method_override.rb:24:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionpack-7.2.2.1/lib/action_dispatch/middleware/executor.rb:16:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-2.2.13/lib/rack/sendfile.rb:110:in `call'
/var/www/discourse/lib/middleware/processing_request.rb:12:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/message_bus-4.4.1/lib/message_bus/rack/middleware.rb:60:in `call'
/var/www/discourse/lib/middleware/request_tracker.rb:385:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionpack-7.2.2.1/lib/action_dispatch/middleware/remote_ip.rb:96:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2.1/lib/rails/engine.rb:535:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2.1/lib/rails/railtie.rb:226:in `public_send'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2.1/lib/rails/railtie.rb:226:in `method_missing'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-2.2.13/lib/rack/urlmap.rb:74:in `block in call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-2.2.13/lib/rack/urlmap.rb:58:in `each'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-2.2.13/lib/rack/urlmap.rb:58:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/unicorn-6.1.0/lib/unicorn/http_server.rb:634:in `process_client'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/unicorn-6.1.0/lib/unicorn/http_server.rb:739:in `worker_loop'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/unicorn-6.1.0/lib/unicorn/http_server.rb:547:in `spawn_missing_workers'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/unicorn-6.1.0/lib/unicorn/http_server.rb:143:in `start'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/unicorn-6.1.0/bin/unicorn:128:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/bin/unicorn:25:in `load'
/var/www/discourse/vendor/bundle/ruby/3.3.0/bin/unicorn:25:in `<main>'

Env

HTTP HOSTS: foorumi.katiska.eu

Sin embargo, intenté hacer GET desde mi otro VPS y no surgió ese error. Quizás porque no indiqué ningún agente de usuario.

Lo único que encontré con GET que de alguna manera está relacionado con el icono de usuario es login-button, pero no puede ser eso, ¿verdad?

Intenté averiguar cuándo comenzó esto y parece que todo empezó el 29 de marzo y va empeorando cada día.

Estoy usando una versión bastante reciente de Discourse; creo que actualicé el lunes.

¿Alguna idea? Seguro que puede provenir de algún plugin o tema/componente, pero ¿cómo podría encontrarlo?

(Usé bug porque estoy recibiendo errores de algo que antes no ocurría)

Edición

Verifiqué qué hice el 29 de marzo y, en ese momento, pasé del componente Category Icons al nuevo sistema.

Creo que sucede debido al plugin de bloqueo geográfico

Lo he movido a soporte, porque es la forma más fácil de cerrar esto :smirking_face:

Claro, podría marcar este tema y pedir que se mueva al tema de ese plugin, pero… bueno, no lo hice :man_facepalming: