ActivityPub 연결 문제를 디버깅하는 방법

Fediverse의 다른 서버와 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 에러가 많이 보입니다. 그래서 제 첫 번째 생각이 봇 차단 목록이나 지리 차단(geo blocking) 때문일 거라고 했습니다. 하지만 error.log를 확인하면서 사용자 에이전트를 살펴봐도 아무것도 찾을 수 없으며, 저는 대부분 핀란드에 위치한 인스턴스나 매우 문제가 많은 국가를 제외한 곳에서 시도하고 있습니다. 호주(Australia)는 어떤 시점에 큰 문제가 되었었습니다(여기서 지리 차단을 정말로 필요한지는 다른 주제로 논의할 가치가 있지만, 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:

이미 시도해봤습니다. AFAIK 대부분의 인스턴스가 이를 사용하지 않기 때문이죠. 하지만 도움이 되지는 않았습니다. 그래도 비활성화했습니다. 이는 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의 내 프로필은 내 카테고리를 팔로우하고 있지만, 아무것도 받아들이지 못합니다. 포럼 쪽에서는 그걸 볼 수도 없습니다. 해당 계정은 지난번 ActivityPub를 시도했던 9개월 전에도 사용 중이었습니다.
  • 포럼에서 삭제할 수 없는 팔로워가 두 명 있습니다. 이 두 명도 과거의 것입니다. 제가 완전히 잘못된 방식으로 종료한 마스토돈 서버에 문제가 있는 것일 수 있습니다. 하지만 그것이 포럼에 영향을 미칠 리는 없지 않나요?

하지만 주된 이유는 403 에러이며, 그것이 어디서 발생하는지입니다.

이것이 가능한 일이긴 하지만, ActivityPub든 다른 것이든 이러한 문제를 다루는 유일한 방법은 알려지지 않은 문제를 찾기 전에 이미 알려진 문제들을 해결하는 것입니다.

네, 일단 이것에만 집중합시다.

좋습니다, 이제 activity_pub_verbose_logging과 activity_pub_object_logging이 활성화되어 있는지 확인해 주시겠습니까? 확인해 주시면 제가 요청을 보내고, 그 후 포럼의 /logs를 확인하여 [Discourse Activity Pub]가 포함된 로그에서 무엇을 보셨는지 알려주세요. /log 뷰어에서 모든 로그 레벨(예: debug 및 info)이 활성화되어 있는지 확인하십시오.

1개의 좋아요

모두 켜져 있습니다.

알겠습니다. 요청을 몇 개 보냈습니다. 확인되는 내용을 알려주세요.

아래 항목들을 의심하고 있습니다.

GET request received by https://foorumi.katiska.eu/ap/actor/701e86455ed584115e0d22ddf294698c failed: 403 Kielletty

env etc
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	1:12 pm
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 request received by https://foorumi.katiska.eu/ap/actor/996e21c65a6841b3a6c28f291af8e6c0/inbox failed: 403 Kielletty

env etc
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 1:13 pm
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과의 상호운용성)에 누락이 있는 것입니다. 수정 방안은 서명된 요청(signed request) 사용과 함께 도메인 허용/차단 기능만 사용하도록 제한하는 것입니다. 이를 위한 PR을 올렸습니다.

해당 PR이 병합되면 다시 테스트해 주실 것입니다.

2개의 좋아요

네! 또 해냈네요. 메시지는 여기, 저기, 어디에나 보내집니다. 그리고 팔로우 기능은 양방향으로 작동합니다.

감사합니다. 정말 잘하셨어요!

3개의 좋아요

안녕하세요. 이 글은 이 스레드 안의 해당 게시물에 대한 답변입니다.

  • 서비스 필터링, 요청 차단/지오블로커 등이 활성화되어 있지 않습니다.
  • activity pub require signed requests가 비활성화되어 있습니다.
  • activity pub allowed request origins 또는 activity pub blocked request origins에 아무것도 목록에 올라 있지 않습니다.
  • 로그 내용:

@padraig@mastodon.ie가 @general@gamersandgeeks.net을(를) 팔로우하려는 시도입니다.

  • [Discourse Activity Pub] https://mastodon.ie/users/padraig에 대한 GET 요청 실패: 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] https://mastodon.ie/users/padraig 처리 실패: 액터(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] https://mastodon.ie/41434029-d0bc-47fa-8ffa-4fe22e28b919 처리 실패: 액터를 생성할 수 없음
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'

도움이 되길 바랍니다 :slight_smile:

도움이 되는 로그를 보내 주셔서 감사합니다. 첫 단계로 announcements@test.pavilion.tech를 padraig@mastodon.ie로 팔로우해 보시겠어요?

I clicked 'Follow" and it looks like it worked. :slight_smile: