Error ”fa-user should be updated to user" when a bot is scraping

I get a lot error The icon name "fa-user" has been removed and should be updated to "user"when a bot is scraping content, no matter if it is using GET and reaching a topic, tag, user, ./well-known… etc. That error comes only from bots, never by real users.

This is one example:

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
Message (26 copies reported)

Missing icon error: The icon name "fa-user" has been removed and should be updated to "user" in your code. More info at 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

I tried GET from my other VPS and didn’t raise that error, though. Perhaps because I didn’ tell any user agent?

Only thing I found with GET that is somehow related to user icon is login-button, but it can’t be it, right?

I tried to find when this started and it looks like it all started March 29, and is going worse everyday.

I’m on quite recent Discourse, I upgraded Monday, I think.

Ideas? Sure, it can come from some plugin or theme/component, but how could I find it?

(I’m using Bug because I get errors from something that didn’t happen before)

Edit

i checked what I did 29. Mar and back then I moved from the component Category Icons to new the system.

I think it happens because of the geo blocking plugin

2 Likes

I moved this to support, because it is the easiest way to close this :smirking_face:

Sure, I could flag this topic and ask to move it under topic of that plugin, but… well, I didn’t :man_facepalming:

1 Like