# Ошибка "fa-user should be updated to user" при скрапинге ботом

**URL:** https://meta.discourse.org/t/error-fa-user-should-be-updated-to-user-when-a-bot-is-scraping/362041
**Category:** Support
**Created:** [16.Апрель.2025 07:41:53 UTC](https://meta.discourse.org/t/error-fa-user-should-be-updated-to-user-when-a-bot-is-scraping/362041 "2025-04-16T07:41:53Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [16.Апрель.2025 07:41:53 UTC](https://meta.discourse.org/t/error-fa-user-should-be-updated-to-user-when-a-bot-is-scraping/362041/1 "2025-04-16T07:41:53Z")

</div>

У меня возникает множество ошибок вида `The icon name "fa-user" has been removed and should be updated to "user"`, когда боты сканируют контент, независимо от того, используют ли они GET для доступа к теме, тегу, пользователю, ./well-known и т. д. Эта ошибка возникает только от ботов, никогда от реальных пользователей.

Вот один из примеров:

| hostname | foorumi-hel-web-only |
| --- | --- |
| process\_id | 1173 |
| application\_version | f0057c7353b8c81e5c315f51d1be06c8e22e4731 |
| HTTP\_HOST | [foorumi.katiska.eu](http://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**
>
> ```plaintext
> 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
> 
> ```

Я попробовал сделать GET-запрос с моего другого VPS, и ошибка не возникла. Возможно, потому что я не указал User-Agent?

Единственное, что я нашел по GET, как-то связанное с иконкой пользователя, — это кнопка входа (login-button), но вряд ли дело в ней.

Я попытался найти, когда это началось, и похоже, что всё началось 29 марта и с каждым днём становится хуже.

У меня довольно свежая версия Discourse, я обновился в понедельник, кажется.

Идеи? Конечно, это может быть связано с каким-то плагином или темой/компонентом, но как это найти?

(Я использую #Contribute > Bug, потому что получаю ошибки от чего-то, чего раньше не было)

**Edit**

Я проверил, что я делал 29 марта, и тогда я перешёл с компонента Category Icons на новую систему.

---

<div class="post-metadata">

### Author: ![Moin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/moin/32/554653_2.png) [@Moin](https://meta.discourse.org/u/Moin)
#### Post date: [16.Апрель.2025 09:28:18 UTC](https://meta.discourse.org/t/error-fa-user-should-be-updated-to-user-when-a-bot-is-scraping/362041/2 "2025-04-16T09:28:18Z")

</div>

Я думаю, это происходит из-за плагина гео-блокировки

> <https://github.com/communiteq/discourse-geo-blocking/blob/bbe55d50afcaa863bc6244416a200b74693f0597/app/views/exceptions/not_found.html.erb#L5>

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [16.Апрель.2025 09:36:38 UTC](https://meta.discourse.org/t/error-fa-user-should-be-updated-to-user-when-a-bot-is-scraping/362041/3 "2025-04-16T09:36:38Z")

</div>

Я перенёс это в раздел поддержки, потому что это самый простой способ закрыть тему 😏

Конечно, я мог пометить эту тему и попросить перенести её в тему этого плагина, но… ну, я не стал 🤦‍♂️

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [16.Май.2025 10:12:11 UTC](https://meta.discourse.org/t/error-fa-user-should-be-updated-to-user-when-a-bot-is-scraping/362041/5 "2025-05-16T10:12:11Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
