Как отладить проблемы с подключением в ActivityPub

Вот несколько шагов, которые можно предпринять, если ваш экземпляр Discourse не может взаимодействовать с другими серверами в Федиверсе.

  1. Если у вас есть сервис, фильтрующий запросы к вашему серверу, например, гео-блокировщик или Cloudflare, попробуйте отключить его.

  2. Попробуйте отключить настройку сайта activity pub require signed requests.

  3. Включите настройки сайта activity pub verbose logging и activity pub object logging, а затем проверьте логи в /logs на наличие записей с [Discourse Activity Pub]. Отправьте эти логи сюда.

  4. Проверьте, есть ли записи в настройках сайта activity pub allowed request origins или activity pub blocked request origins. Обратите внимание, что если вы разрешите конкретные домены, запросы со всех остальных доменов будут заблокированы.

2 лайка

Только для вас, не в этом выпуске. Я пробовал. Но я могу позволить нашим друзьям из Сингапура и России немного походить по дверям, а затем отключить это. Секунду.

Готово.

Хорошо. Как настроен этот гео-блокировщик? Если вы направляетесь трафик через сервис вроде Cloudflare, он может удалять заголовки из запросов (даже при отключённом блокировщике). ActivityPub также требует определённых заголовков для проверки и аутентификации запросов.

Я вижу много ошибок 403. Поэтому моя первая мысль заключалась в том, что это либо список ботов, либо геоблокировка. Но я не могу найти ничего подозрительного в user-agent при просмотре error.log, и я в основном пытаюсь подключиться с инстансов, расположенных в Финляндии или в других странах, кроме некоторых очень проблемных. Австралия когда-то была головной болью (стоит ли здесь вообще геоблокировка — тема для отдельного обсуждения, но из-за моего опыта с WordPress я использую её).

Что-то вроде этого:

[Discourse Activity Pub] GET request received by https://foorumi.katiska.eu/ap/actor/701e86455ed584115e0d22ddf294698c failed: 403 Forbidden

Я понимаю, что такое может происходить, если есть инстанс, который я не разрешил, но это происходит со всеми.

Однако я могу подключить своего пользователя Discourse к пользователю Mastodon.

Используется плагин для Discourse. Ничего особенного. Я не использую Cloudflare, так как для небольшого форума, расположенного в Финляндии и обслуживающего финских пользователей, это бессмысленно.

Хорошо, следующее, что стоит попробовать, — отключить настройку сайта «activity pub require signed requests». Дайте знать, как только вы это сделаете (просто вслух думаю: возможно, я создам вики-статью по теме «Я получаю ошибку 403», так как вижу, что этот вопрос будет возникать довольно часто).

Также, какой именно плагин? И как он работает?

Я не понимаю, как это работает.

Я могу попробовать пересобрать систему без этого плагина. Но я не до конца понимаю, как это может повлиять на работу, если всё остальное функционирует нормально :thinking:

Я уже пробовал это. В основном потому, что, насколько мне известно, большинство инстансов этого не используют. Это не помогло, хотя я и отключил эту опцию. Это то же самое, что и настройка на серверах Mastodon?

ActivityPub требует большего уровня взаимосвязи, чем любые другие инструменты, которые вы могли бы использовать. Я не утверждаю, что именно этот плагин является причиной, но любой механизм, фильтрующий все запросы к вашему серверу (как это должен делать любой гео-блокировщик), потенциально может вызвать проблемы с ActivityPub. Если какие-либо другие используемые вами плагины также могут подпадать под эту категорию (то есть фильтровать запросы к вашему серверу), пожалуйста, сообщите об этом.

По сути, да.

Хорошо, следующее, что нужно попробовать — проверить ваши конкретные настройки:

  1. Пожалуйста, подтвердите, что activity_pub_enabled установлено в true.
  2. Пожалуйста, подтвердите текущее состояние параметров activity_pub_allowed_request_origins и activity_pub_blocked_request_origins.
  3. Также, пожалуйста, предоставьте текущую конфигурацию актора категории, которую вы ранее поделили.
  1. Да

  2. Есть ли более простой способ получить список activity_pub_allowed_request_origins? Rails или что-то, что можно просто скопировать? Но с включением всех доменов, которые я пробовал, например mastodontti.fi и mastodon.social.
    activity_pub_blocked_request_origins: fedsearch.io

На данном этапе я пересоберу систему без гео-блокировок.

С гео-блокировкой не повезло.

Я всё ещё задаюсь вопросом, не живёт ли ActivityPub моего форума где-то в прошлом и не сделан ли он с парой ошибок.

  • Мой профиль на mastodontti.fi подписан на мою категорию, но ничего не приходит. На стороне форума я этого не вижу. Эта учётная запись использовалась 9 месяцев назад, когда я в последний раз пробовал ActivityPub.
  • У меня два подписчика на форуме, которых я не могу удалить. Они тоже из прошлого. Возможно, проблема в mastodon-server, который я полностью неправильно настроил. Но разве это должно влиять на форум?

Но главная причина — ошибка 403, и нужно понять, откуда она берётся.

Хотя это возможно, единственный способ подойти к таким проблемам, будь то ActivityPub или что-то ещё, — это сначала решить известные проблемы, прежде чем пытаться искать неизвестные.

Да, пока сосредоточимся исключительно на этом.

Хорошо, теперь, пожалуйста, подтвердите мне, что включены activity_pub_verbose_logging и activity_pub_object_logging. Когда вы это сделаете, я отправлю запрос, и мне нужно, чтобы вы затем проверили логи форума в /logs и сообщили, что вы видите в записях с пометкой [Discourse Activity Pub]. Убедитесь, что в вашем просмотрщике логов /log включены все уровни логирования (например, debug и info).

1 лайк

Все включено.

Хорошо, я отправил несколько запросов. Дайте знать, что вы видите.

Я думаю, это эти.

GET-запрос к https://foorumi.katiska.eu/ap/actor/701e86455ed584115e0d22ddf294698c не удался: 403 Запрещено

окружение и т.д.
hostname	foorumi-hel-app
process_id	1069
application_version	486ff2a5643f7a5ac66ccef11a97d6c2a282c9ee
HTTP_HOST	foorumi.katiska.eu
REQUEST_URI	/ap/actor/701e86455ed584115e0d22ddf294698c
REQUEST_METHOD	GET
HTTP_ACCEPT	application/ld+json; profile="https://www.w3.org/ns/activitystreams"
HTTP_X_FORWARDED_FOR	178.222.29.79
HTTP_X_REAL_IP	178.222.29.79
time	13:12
activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:130:in `block in warn'  
activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:231:in `block in dispatch'  
activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:231:in `each'  
activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:231:in `dispatch'  
activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:130:in `warn'  
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/logger.rb:22:in `log'  
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/logger.rb:59:in `warn'  
/var/www/discourse/plugins/discourse-activity-pub/app/controllers/discourse_activity_pub/ap/objects_controller.rb:128:in `log_request_error'  
/var/www/discourse/plugins/discourse-activity-pub/app/controllers/discourse_activity_pub/ap/objects_controller.rb:106:in `render_activity_pub_error'  
/var/www/discourse/plugins/discourse-activity-pub/app/controllers/concerns/discourse_activity_pub/domain_verification.rb:5:in `ensure_domain_allowed'  
activesupport-7.2.2.1/lib/active_support/callbacks.rb:362:in `block in make_lambda'  
activesupport-7.2.2.1/lib/active_support/callbacks.rb:179:in `block in call'  
actionpack-7.2.2.1/lib/abstract_controller/callbacks.rb:34:in `block (2 levels) in <module:Callbacks>'  
activesupport-7.2.2.1/lib/active_support/callbacks.rb:180:in `call'  
activesupport-7.2.2.1/lib/active_support/callbacks.rb:559:in `block in invoke_before'  
activesupport-7.2.2.1/lib/active_support/callbacks.rb:559:in `each'  
activesupport-7.2.2.1/lib/active_support/callbacks.rb:559:in `invoke_before'  
activesupport-7.2.2.1/lib/active_support/callbacks.rb:119:in `block in run_callbacks'  
/var/www/discourse/app/controllers/application_controller.rb:424:in `block in with_resolved_locale'  
i18n-1.14.6/lib/i18n.rb:353:in `with_locale'  
/var/www/discourse/app/controllers/application_controller.rb:424:in `with_resolved_locale'  
activesupport-7.2.2.1/lib/active_support/callbacks.rb:130:in `block in run_callbacks'  
activesupport-7.2.2.1/lib/active_support/callbacks.rb:141:in `run_callbacks'  
actionpack-7.2.2.1/lib/abstract_controller/callbacks.rb:260:in `process_action'  
actionpack-7.2.2.1/lib/action_controller/metal/rescue.rb:27:in `process_action'  
actionpack-7.2.2.1/lib/action_controller/metal/instrumentation.rb:77:in `block in process_action'  
activesupport-7.2.2.1/lib/active_support/notifications.rb:210:in `block in instrument'  
activesupport-7.2.2.1/lib/active_support/notifications/instrumenter.rb:58:in `instrument'  
activesupport-7.2.2.1/lib/active_support/notifications.rb:210:in `instrument'  
actionpack-7.2.2.1/lib/action_controller/metal/instrumentation.rb:76:in `process_action'  
actionpack-7.2.2.1/lib/action_controller/metal/params_wrapper.rb:259:in `process_action'  
activerecord-7.2.2.1/lib/active_record/railties/controller_runtime.rb:39:in `process_action'  
actionpack-7.2.2.1/lib/abstract_controller/base.rb:163:in `process'  
actionview-7.2.2.1/lib/action_view/rendering.rb:40:in `process'  
actionpack-7.2.2.1/lib/action_controller/metal.rb:252:in `dispatch'  
actionpack-7.2.2.1/lib/action_controller/metal.rb:335:in `dispatch'  
actionpack-7.2.2.1/lib/action_dispatch/routing/route_set.rb:67:in `dispatch'  
actionpack-7.2.2.1/lib/action_dispatch/routing/route_set.rb:50:in `serve'  
actionpack-7.2.2.1/lib/action_dispatch/journey/router.rb:53:in `block in serve'  
actionpack-7.2.2.1/lib/action_dispatch/journey/router.rb:133:in `block in find_routes'  
actionpack-7.2.2.1/lib/action_dispatch/journey/router.rb:126:in `each'  
actionpack-7.2.2.1/lib/action_dispatch/journey/router.rb:126:in `find_routes'  
actionpack-7.2.2.1/lib/action_dispatch/journey/router.rb:34:in `serve'  
actionpack-7.2.2.1/lib/action_dispatch/routing/route_set.rb:896:in `call'  
railties-7.2.2.1/lib/rails/engine.rb:535:in `call'  
railties-7.2.2.1/lib/rails/railtie.rb:226:in `public_send'  
railties-7.2.2.1/lib/rails/railtie.rb:226:in `method_missing'  
actionpack-7.2.2.1/lib/action_dispatch/routing/mapper.rb:33:in `block in <class:Constraints>'  
actionpack-7.2.2.1/lib/action_dispatch/routing/mapper.rb:62:in `serve'  
actionpack-7.2.2.1/lib/action_dispatch/journey/router.rb:53:in `block in serve'  
actionpack-7.2.2.1/lib/action_dispatch/journey/router.rb:133:in `block in find_routes'  
actionpack-7.2.2.1/lib/action_dispatch/journey/router.rb:126:in `each'  
actionpack-7.2.2.1/lib/action_dispatch/journey/router.rb:126:in `find_routes'  
actionpack-7.2.2.1/lib/action_dispatch/journey/router.rb:34:in `serve'  
actionpack-7.2.2.1/lib/action_dispatch/routing/route_set.rb:896:in `call'  
/var/www/discourse/lib/middleware/omniauth_bypass_middleware.rb:64:in `call'  
rack-2.2.10/lib/rack/tempfile_reaper.rb:15:in `call'  
rack-2.2.10/lib/rack/conditional_get.rb:27:in `call'  
rack-2.2.10/lib/rack/head.rb:12:in `call'  
actionpack-7.2.2.1/lib/action_dispatch/http/permissions_policy.rb:38:in `call'  
/var/www/discourse/lib/content_security_policy/middleware.rb:12:in `call'  
/var/www/discourse/lib/middleware/anonymous_cache.rb:401:in `call'  
/var/www/discourse/lib/middleware/csp_script_nonce_injector.rb:12:in `call'  
/var/www/discourse/config/initializers/008-rack-cors.rb:14:in `call'  
rack-2.2.10/lib/rack/session/abstract/id.rb:266:in `context'  
rack-2.2.10/lib/rack/session/abstract/id.rb:260:in `call'  
actionpack-7.2.2.1/lib/action_dispatch/middleware/cookies.rb:704:in `call'  
actionpack-7.2.2.1/lib/action_dispatch/middleware/callbacks.rb:31:in `block in call'  
activesupport-7.2.2.1/lib/active_support/callbacks.rb:101:in `run_callbacks'  
actionpack-7.2.2.1/lib/action_dispatch/middleware/callbacks.rb:30:in `call'  
actionpack-7.2.2.1/lib/action_dispatch/middleware/debug_exceptions.rb:31:in `call'  
actionpack-7.2.2.1/lib/action_dispatch/middleware/show_exceptions.rb:32:in `call'  
logster-2.20.0/lib/logster/middleware/reporter.rb:40:in `call'  
railties-7.2.2.1/lib/rails/rack/logger.rb:41:in `call_app'  
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'  
request_store-1.7.0/lib/request_store/middleware.rb:19:in `call'  
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'  
rack-2.2.10/lib/rack/method_override.rb:24:in `call'  
actionpack-7.2.2.1/lib/action_dispatch/middleware/executor.rb:16:in `call'  
rack-2.2.10/lib/rack/sendfile.rb:110:in `call'  
/var/www/discourse/lib/middleware/processing_request.rb:12:in `call'  
message_bus-4.3.8/lib/message_bus/rack/middleware.rb:60:in `call'  
/var/www/discourse/lib/middleware/request_tracker.rb:385:in `call'  
actionpack-7.2.2.1/lib/action_dispatch/middleware/remote_ip.rb:96:in `call'  
railties-7.2.2.1/lib/rails/engine.rb:535:in `call'  
railties-7.2.2.1/lib/rails/railtie.rb:226:in `public_send'  
railties-7.2.2.1/lib/rails/railtie.rb:226:in `method_missing'  
rack-2.2.10/lib/rack/urlmap.rb:74:in `block in call'  
rack-2.2.10/lib/rack/urlmap.rb:58:in `each'  
rack-2.2.10/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_workers'
unicorn-6.1.0/lib/unicorn/http_server.rb:143:in `start'
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>' 

POST-запрос к https://foorumi.katiska.eu/ap/actor/996e21c65a6841b3a6c28f291af8e6c0/inbox не удался: 403 Запрещено

окружение и т.д.
hostname foorumi-hel-app
process_id 1069
application_version 486ff2a5643f7a5ac66ccef11a97d6c2a282c9ee
HTTP_HOST foorumi.katiska.eu
REQUEST_URI /ap/actor/996e21c65a6841b3a6c28f291af8e6c0/inbox
REQUEST_METHOD POST
HTTP_USER_AGENT http.rb/5.1.1 (Mastodon/4.1.21; +https://mastodon.sdf.org/)
HTTP_X_FORWARDED_FOR 66.148.120.148
HTTP_X_REAL_IP 66.148.120.148
time 13:13
activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:130:in `block in warn'  
activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:231:in `block in dispatch'  
activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:231:in `each'  
activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:231:in `dispatch'  
activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:130:in `warn'  
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/logger.rb:22:in `log'  
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/logger.rb:59:in `warn'  
/var/www/discourse/plugins/discourse-activity-pub/app/controllers/discourse_activity_pub/ap/objects_controller.rb:128:in `log_request_error'  
/var/www/discourse/plugins/discourse-activity-pub/app/controllers/discourse_activity_pub/ap/objects_controller.rb:106:in `render_activity_pub_error'  
/var/www/discourse/plugins/discourse-activity-pub/app/controllers/concerns/discourse_activity_pub/domain_verification.rb:5:in `ensure_domain_allowed'  
activesupport-7.2.2.1/lib/active_support/callbacks.rb:362:in `block in make_lambda'  
activesupport-7.2.2.1/lib/active_support/callbacks.rb:179:in `block in call'  
actionpack-7.2.2.1/lib/abstract_controller/callbacks.rb:34:in `block (2 levels) in <module:Callbacks>'  
activesupport-7.2.2.1/lib/active_support/callbacks.rb:180:in `call'  
activesupport-7.2.2.1/lib/active_support/callbacks.rb:559:in `block in invoke_before'  
activesupport-7.2.2.1/lib/active_support/callbacks.rb:559:in `each'  
activesupport-7.2.2.1/lib/active_support/callbacks.rb:559:in `invoke_before'  
activesupport-7.2.2.1/lib/active_support/callbacks.rb:119:in `block in run_callbacks'  
/var/www/discourse/app/controllers/application_controller.rb:424:in `block in with_resolved_locale'  
i18n-1.14.6/lib/i18n.rb:353:in `with_locale'  
/var/www/discourse/app/controllers/application_controller.rb:424:in `with_resolved_locale'  
activesupport-7.2.2.1/lib/active_support/callbacks.rb:130:in `block in run_callbacks'  
activesupport-7.2.2.1/lib/active_support/callbacks.rb:141:in `run_callbacks'  
actionpack-7.2.2.1/lib/abstract_controller/callbacks.rb:260:in `process_action'  
actionpack-7.2.2.1/lib/action_controller/metal/rescue.rb:27:in `process_action'  
actionpack-7.2.2.1/lib/action_controller/metal/instrumentation.rb:77:in `block in process_action'  
activesupport-7.2.2.1/lib/active_support/notifications.rb:210:in `block in instrument'  
activesupport-7.2.2.1/lib/active_support/notifications/instrumenter.rb:58:in `instrument'  
activesupport-7.2.2.1/lib/active_support/notifications.rb:210:in `instrument'  
actionpack-7.2.2.1/lib/action_controller/metal/instrumentation.rb:76:in `process_action'  
actionpack-7.2.2.1/lib/action_controller/metal/params_wrapper.rb:259:in `process_action'  
activerecord-7.2.2.1/lib/active_record/railties/controller_runtime.rb:39:in `process_action'  
actionpack-7.2.2.1/lib/abstract_controller/base.rb:163:in `process'  
actionview-7.2.2.1/lib/action_view/rendering.rb:40:in `process'  
actionpack-7.2.2.1/lib/action_controller/metal.rb:252:in `dispatch'  
actionpack-7.2.2.1/lib/action_controller/metal.rb:335:in `dispatch'  
actionpack-7.2.2.1/lib/action_dispatch/routing/route_set.rb:67:in `dispatch'  
actionpack-7.2.2.1/lib/action_dispatch/routing/route_set.rb:50:in `serve'  
actionpack-7.2.2.1/lib/action_dispatch/journey/router.rb:53:in `block in serve'  
actionpack-7.2.2.1/lib/action_dispatch/journey/router.rb:133:in `block in find_routes'  
actionpack-7.2.2.1/lib/action_dispatch/journey/router.rb:126:in `each'  
actionpack-7.2.2.1/lib/action_dispatch/journey/router.rb:126:in `find_routes'  
actionpack-7.2.2.1/lib/action_dispatch/journey/router.rb:34:in `serve'  
actionpack-7.2.2.1/lib/action_dispatch/routing/route_set.rb:896:in `call'  
railties-7.2.2.1/lib/rails/engine.rb:535:in `call'  
railties-7.2.2.1/lib/rails/railtie.rb:226:in `public_send'  
railties-7.2.2.1/lib/rails/railtie.rb:226:in `method_missing'  
actionpack-7.2.2.1/lib/action_dispatch/routing/mapper.rb:33:in `block in <class:Constraints>'  
actionpack-7.2.2.1/lib/action_dispatch/routing/mapper.rb:62:in `serve'  
actionpack-7.2.2.1/lib/action_dispatch/journey/router.rb:53:in `block in serve'  
actionpack-7.2.2.1/lib/action_dispatch/journey/router.rb:133:in `block in find_routes'  
actionpack-7.2.2.1/lib/action_dispatch/journey/router.rb:126:in `each'  
actionpack-7.2.2.1/lib/action_dispatch/journey/router.rb:126:in `find_routes'  
actionpack-7.2.2.1/lib/action_dispatch/journey/router.rb:34:in `serve'  
actionpack-7.2.2.1/lib/action_dispatch/routing/route_set.rb:896:in `call'  
/var/www/discourse/lib/middleware/omniauth_bypass_middleware.rb:64:in `call'  
rack-2.2.10/lib/rack/tempfile_reaper.rb:15:in `call'  
rack-2.2.10/lib/rack/conditional_get.rb:40:in `call'  
rack-2.2.10/lib/rack/head.rb:12:in `call'  
actionpack-7.2.2.1/lib/action_dispatch/http/permissions_policy.rb:38:in `call'  
/var/www/discourse/lib/content_security_policy/middleware.rb:12:in `call'  
/var/www/discourse/lib/middleware/anonymous_cache.rb:403:in `call'  
/var/www/discourse/lib/middleware/csp_script_nonce_injector.rb:12:in `call'  
/var/www/discourse/config/initializers/008-rack-cors.rb:14:in `call'  
rack-2.2.10/lib/rack/session/abstract/id.rb:266:in `context'  
rack-2.2.10/lib/rack/session/abstract/id.rb:260:in `call'  
actionpack-7.2.2.1/lib/action_dispatch/middleware/cookies.rb:704:in `call'  
actionpack-7.2.2.1/lib/action_dispatch/middleware/callbacks.rb:31:in `block in call'  
activesupport-7.2.2.1/lib/active_support/callbacks.rb:101:in `run_callbacks'  
actionpack-7.2.2.1/lib/action_dispatch/middleware/callbacks.rb:30:in `call'  
actionpack-7.2.2.1/lib/action_dispatch/middleware/debug_exceptions.rb:31:in `call'  
actionpack-7.2.2.1/lib/action_dispatch/middleware/show_exceptions.rb:32:in `call'  
logster-2.20.0/lib/logster/middleware/reporter.rb:40:in `call'  
railties-7.2.2.1/lib/rails/rack/logger.rb:41:in `call_app'  
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'  
request_store-1.7.0/lib/request_store/middleware.rb:19:in `call'  
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'  
rack-2.2.10/lib/rack/method_override.rb:24:in `call'  
actionpack-7.2.2.1/lib/action_dispatch/middleware/executor.rb:16:in `call'  
rack-2.2.10/lib/rack/sendfile.rb:110:in `call'  
/var/www/discourse/lib/middleware/processing_request.rb:12:in `call'  
message_bus-4.3.8/lib/message_bus/rack/middleware.rb:60:in `call'  
/var/www/discourse/lib/middleware/request_tracker.rb:385:in `call'  
actionpack-7.2.2.1/lib/action_dispatch/middleware/remote_ip.rb:96:in `call'  
railties-7.2.2.1/lib/rails/engine.rb:535:in `call'  
railties-7.2.2.1/lib/rails/railtie.rb:226:in `public_send'  
railties-7.2.2.1/lib/rails/railtie.rb:226:in `method_missing'  
rack-2.2.10/lib/rack/urlmap.rb:74:in `block in call'  
rack-2.2.10/lib/rack/urlmap.rb:58:in `each'  
rack-2.2.10/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_workers'
unicorn-6.1.0/lib/unicorn/http_server.rb:143:in `start'
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>' 

Это всегда одно и то же.

Хорошо, мы нашли проблему :slight_smile:

Ваши запросы блокируются списками разрешённых/запрещённых доменов. Это означает, что вы либо:

  • указали домены в списке activity pub allowed request origins. В этом случае будут блокироваться запросы со всех остальных доменов; либо
  • в этом коде есть ошибка.

Пожалуйста, предоставьте точное содержимое настроек activity_pub_allowed_request_origins и activity_pub_blocked_request_origins.

Извините, скриншоты :wink: Я не стал начинать писать.

activity_pub_allowed_request_origins

Там указаны все инстансы, которые я пробовал, и ещё несколько. Например, mstdn.social я не использую, но он часто возвращает ошибку 402. Я в основном пробую использовать mastodontti.fi (там у меня «призрачный» подписчик) и kvarkki.nexus (это мой), но они не работают.

activity_pub_blocked_request_origins

fedsearch.io, и больше ничего.

Для меня наличие бага было бы неплохо, а для вас — не очень. Но если и когда я буду единственным… :man_shrugging:

Так, у вас возникает ошибка, потому что сервер, который вы используете, отсутствует в этом списке, верно?

Я нашел причину вашей проблемы. Технически это не баг, но это упущение в работе функционала разрешения/запрета доменов (имеется в виду, как он взаимодействует с Mastodon). Исправление заключается в том, чтобы разрешать использование функционала разрешения/запрета доменов только в сочетании с использованием подписанных запросов. Я создал pull request по этому поводу.

После того как он будет принят, я попрошу вас снова протестировать систему.

2 лайка

Да! Вы снова справились. Сообщения появляются здесь, там и везде. И обмен работает в обе стороны.

Спасибо. Действительно отличная работа!

3 лайка

Hi there. This is in response to this post over in this thread

  • No service filtering requests/geo-blockers, etc enabled.
  • activity pub require signed requests is disabled.
  • Nothing is listed within activity pub allowed request origins or activity pub blocked request origins.
  • The logs:

This is @padraig@mastodon.ie trying to follow @general@gamersandgeeks.net

  • [Discourse Activity Pub] GET request to https://mastodon.ie/users/padraig failed: Expected([200, 201, 202, 301, 302, 307, 308]) <=> Actual(401 Unauthorized)
backtrace/env
hostname	39Discourse-ubuntu-s-1vcpu-2gb-amd-ams3-01-app
process_id	787
application_version	f4857d3b1c6a33ce6a5e4d2675ae2538d2c36357
job	Jobs::DiscourseActivityPubProcess
db	default
time	9:52 pm

/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:130:in `block in warn'
/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:130:in `warn'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/logger.rb:22:in `log'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/logger.rb:59:in `warn'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/request.rb:61:in `rescue in perform'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/request.rb:48:in `perform'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/request.rb:30:in `get_json_ld'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/request.rb:118:in `get_json_ld'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/json_ld.rb:57:in `request_object'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/json_ld.rb:53:in `resolve_object'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/object.rb:200:in `resolve'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/object.rb:179:in `resolve_and_store'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/activity.rb:132:in `process_actor_and_object'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/activity.rb:56:in `process_activity'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/activity.rb:36:in `block in perform_transactions'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/transaction.rb:616:in `block in within_new_transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2.1/lib/active_support/concurrency/null_lock.rb:9:in `synchronize'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/transaction.rb:613:in `within_new_transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/database_statements.rb:361:in `transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/transactions.rb:234:in `block in transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:421:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/connection_handling.rb:296:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/transactions.rb:233:in `transaction'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/activity.rb:34:in `perform_transactions'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/activity.rb:26:in `process'
/var/www/discourse/plugins/discourse-activity-pub/app/jobs/discourse_activity_pub_process.rb:12:in `execute'
/var/www/discourse/app/jobs/base.rb:316:in `block (2 levels) in perform'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rails_multisite-6.1.0/lib/rails_multisite/connection_management/null_instance.rb:49:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rails_multisite-6.1.0/lib/rails_multisite/connection_management.rb:21:in `with_connection'
/var/www/discourse/app/jobs/base.rb:303:in `block in perform'
/var/www/discourse/app/jobs/base.rb:299:in `each'
/var/www/discourse/app/jobs/base.rb:299:in `perform'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:202:in `execute_job'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:170:in `block (2 levels) in process'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/middleware/chain.rb:177:in `block in invoke'
/var/www/discourse/lib/sidekiq/pausable.rb:132:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/middleware/chain.rb:179:in `block in invoke'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/middleware/chain.rb:182:in `invoke'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:169:in `block in process'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:136:in `block (6 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/job_retry.rb:113:in `local'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:135:in `block (5 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq.rb:44:in `block in <module:Sidekiq>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:131:in `block (4 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:263:in `stats'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:126:in `block (3 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/job_logger.rb:13:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:125:in `block (2 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/job_retry.rb:80:in `global'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:124:in `block in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/job_logger.rb:39:in `prepare'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:123:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:168:in `process'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:78:in `process_one'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:68:in `run'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/component.rb:8:in `watchdog'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/component.rb:17:in `block in safe_thread'
  • [Discourse Activity Pub] Failed to process https://mastodon.ie/users/padraig: Could not resolve actor
backtrace/env
hostname	39Discourse-ubuntu-s-1vcpu-2gb-amd-ams3-01-app
process_id	787
application_version	f4857d3b1c6a33ce6a5e4d2675ae2538d2c36357
job	Jobs::DiscourseActivityPubProcess
db	default
time	9:52 pm

/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:130:in `block in warn'
/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:130:in `warn'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/logger.rb:22:in `log'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/logger.rb:59:in `warn'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/object.rb:140:in `process_failed'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/object.rb:153:in `process_failed'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/object.rb:202:in `resolve'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/object.rb:179:in `resolve_and_store'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/activity.rb:132:in `process_actor_and_object'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/activity.rb:56:in `process_activity'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/activity.rb:36:in `block in perform_transactions'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/transaction.rb:616:in `block in within_new_transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2.1/lib/active_support/concurrency/null_lock.rb:9:in `synchronize'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/transaction.rb:613:in `within_new_transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/database_statements.rb:361:in `transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/transactions.rb:234:in `block in transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:421:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/connection_handling.rb:296:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/transactions.rb:233:in `transaction'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/activity.rb:34:in `perform_transactions'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/activity.rb:26:in `process'
/var/www/discourse/plugins/discourse-activity-pub/app/jobs/discourse_activity_pub_process.rb:12:in `execute'
/var/www/discourse/app/jobs/base.rb:316:in `block (2 levels) in perform'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rails_multisite-6.1.0/lib/rails_multisite/connection_management/null_instance.rb:49:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rails_multisite-6.1.0/lib/rails_multisite/connection_management.rb:21:in `with_connection'
/var/www/discourse/app/jobs/base.rb:303:in `block in perform'
/var/www/discourse/app/jobs/base.rb:299:in `each'
/var/www/discourse/app/jobs/base.rb:299:in `perform'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:202:in `execute_job'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:170:in `block (2 levels) in process'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/middleware/chain.rb:177:in `block in invoke'
/var/www/discourse/lib/sidekiq/pausable.rb:132:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/middleware/chain.rb:179:in `block in invoke'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/middleware/chain.rb:182:in `invoke'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:169:in `block in process'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:136:in `block (6 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/job_retry.rb:113:in `local'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:135:in `block (5 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq.rb:44:in `block in <module:Sidekiq>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:131:in `block (4 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:263:in `stats'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:126:in `block (3 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/job_logger.rb:13:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:125:in `block (2 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/job_retry.rb:80:in `global'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:124:in `block in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/job_logger.rb:39:in `prepare'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:123:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:168:in `process'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:78:in `process_one'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:68:in `run'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/component.rb:8:in `watchdog'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/component.rb:17:in `block in safe_thread'
  • [Discourse Activity Pub] Failed to process https://mastodon.ie/41434029-d0bc-47fa-8ffa-4fe22e28b919: Could not create actor
backtrace/env
hostname	39Discourse-ubuntu-s-1vcpu-2gb-amd-ams3-01-app
process_id	787
application_version	f4857d3b1c6a33ce6a5e4d2675ae2538d2c36357
job	Jobs::DiscourseActivityPubProcess
db	default
time	9:52 pm

/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:130:in `block in warn'
/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:130:in `warn'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/logger.rb:22:in `log'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/logger.rb:59:in `warn'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/object.rb:140:in `process_failed'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/activity.rb:133:in `process_actor_and_object'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/activity.rb:56:in `process_activity'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/activity.rb:36:in `block in perform_transactions'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/transaction.rb:616:in `block in within_new_transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2.1/lib/active_support/concurrency/null_lock.rb:9:in `synchronize'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/transaction.rb:613:in `within_new_transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/database_statements.rb:361:in `transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/transactions.rb:234:in `block in transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:421:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/connection_handling.rb:296:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/transactions.rb:233:in `transaction'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/activity.rb:34:in `perform_transactions'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/activity.rb:26:in `process'
/var/www/discourse/plugins/discourse-activity-pub/app/jobs/discourse_activity_pub_process.rb:12:in `execute'
/var/www/discourse/app/jobs/base.rb:316:in `block (2 levels) in perform'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rails_multisite-6.1.0/lib/rails_multisite/connection_management/null_instance.rb:49:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rails_multisite-6.1.0/lib/rails_multisite/connection_management.rb:21:in `with_connection'
/var/www/discourse/app/jobs/base.rb:303:in `block in perform'
/var/www/discourse/app/jobs/base.rb:299:in `each'
/var/www/discourse/app/jobs/base.rb:299:in `perform'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:202:in `execute_job'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:170:in `block (2 levels) in process'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/middleware/chain.rb:177:in `block in invoke'
/var/www/discourse/lib/sidekiq/pausable.rb:132:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/middleware/chain.rb:179:in `block in invoke'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/middleware/chain.rb:182:in `invoke'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:169:in `block in process'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:136:in `block (6 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/job_retry.rb:113:in `local'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:135:in `block (5 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq.rb:44:in `block in <module:Sidekiq>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:131:in `block (4 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:263:in `stats'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:126:in `block (3 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/job_logger.rb:13:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:125:in `block (2 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/job_retry.rb:80:in `global'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:124:in `block in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/job_logger.rb:39:in `prepare'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:123:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:168:in `process'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:78:in `process_one'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:68:in `run'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/component.rb:8:in `watchdog'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/component.rb:17:in `block in safe_thread'
  • [Discourse Activity Pub] DiscourseActivityPub::AP::Handlers::Warning
backtrace/env
hostname	39Discourse-ubuntu-s-1vcpu-2gb-amd-ams3-01-app
process_id	787
application_version	f4857d3b1c6a33ce6a5e4d2675ae2538d2c36357
job	Jobs::DiscourseActivityPubProcess
db	default
time	9:52 pm

/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:130:in `block in warn'
/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:130:in `warn'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/logger.rb:22:in `log'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/logger.rb:59:in `warn'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/activity.rb:42:in `rescue in block in perform_transactions'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/activity.rb:35:in `block in perform_transactions'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/transaction.rb:616:in `block in within_new_transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2.1/lib/active_support/concurrency/null_lock.rb:9:in `synchronize'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/transaction.rb:613:in `within_new_transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/database_statements.rb:361:in `transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/transactions.rb:234:in `block in transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:421:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/connection_handling.rb:296:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/transactions.rb:233:in `transaction'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/activity.rb:34:in `perform_transactions'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/activity.rb:26:in `process'
/var/www/discourse/plugins/discourse-activity-pub/app/jobs/discourse_activity_pub_process.rb:12:in `execute'
/var/www/discourse/app/jobs/base.rb:316:in `block (2 levels) in perform'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rails_multisite-6.1.0/lib/rails_multisite/connection_management/null_instance.rb:49:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rails_multisite-6.1.0/lib/rails_multisite/connection_management.rb:21:in `with_connection'
/var/www/discourse/app/jobs/base.rb:303:in `block in perform'
/var/www/discourse/app/jobs/base.rb:299:in `each'
/var/www/discourse/app/jobs/base.rb:299:in `perform'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:202:in `execute_job'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:170:in `block (2 levels) in process'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/middleware/chain.rb:177:in `block in invoke'
/var/www/discourse/lib/sidekiq/pausable.rb:132:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/middleware/chain.rb:179:in `block in invoke'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/middleware/chain.rb:182:in `invoke'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:169:in `block in process'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:136:in `block (6 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/job_retry.rb:113:in `local'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:135:in `block (5 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq.rb:44:in `block in <module:Sidekiq>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:131:in `block (4 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:263:in `stats'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:126:in `block (3 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/job_logger.rb:13:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:125:in `block (2 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/job_retry.rb:80:in `global'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:124:in `block in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/job_logger.rb:39:in `prepare'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:123:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:168:in `process'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:78:in `process_one'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:68:in `run'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/component.rb:8:in `watchdog'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/component.rb:17:in `block in safe_thread'

Hope this helps :slight_smile:

Спасибо за полезные логи. В качестве первого шага, не могли бы вы подписаться на announcements@test.pavilion.tech с помощью padraig@mastodon.ie?

Я нажал «Подписаться», и, похоже, всё сработало. :slight_smile: