Errore »fa-user deve essere aggiornato a user" quando un bot effettua lo scraping

Ricevo molti errori del tipo Il nome dell'icona "fa-user" è stato rimosso e dovrebbe essere aggiornato a "user" quando un bot scansiona i contenuti, indipendentemente dal fatto che utilizzi GET per raggiungere un argomento, un tag, un utente, ./well-known, ecc. Questo errore si verifica solo con i bot, mai con gli utenti reali.

Ecco un esempio:

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
stack trace
Messaggio (26 copie riportate)

Errore icona mancante: Il nome dell'icona "fa-user" è stato rimosso e dovrebbe essere aggiornato a "user" nel tuo codice. Maggiori informazioni su https://meta.discourse.org/t/325349.

Stack trace

/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>'

Ambiente

HTTP HOSTS: foorumi.katiska.eu

Ho provato a eseguire una richiesta GET dal mio altro VPS e non ho riscontrato quell’errore, però. Forse perché non ho impostato nessun user agent?

L’unica cosa che ho trovato con GET che è in qualche modo correlata all’icona dell’utente è login-button, ma non può essere quello, vero?

Ho cercato di capire quando è iniziato e sembra che tutto sia iniziato il 29 marzo e che la situazione stia peggiorando ogni giorno.

Sto usando una versione abbastanza recente di Discourse, credo di aver aggiornato lunedì.

Idee? Certo, potrebbe provenire da qualche plugin o tema/componente, ma come potrei individuarlo?

(Sto usando bug perché ricevo errori per qualcosa che prima non succedeva)

Modifica

Ho controllato cosa ho fatto il 29 marzo e all’epoca ho migrato dal componente Category Icons al nuovo sistema.

Penso che succeda a causa del plugin di geo-blocking

Ho spostato questo nel supporto, perché è il modo più semplice per chiuderlo :smirking_face:

Certo, potrei segnalare questo argomento e chiedere di spostarlo sotto l’argomento di quel plugin, ma… beh, non l’ho fatto :man_facepalming: