How to debug connectivity issues with ActivityPub

Here’s a few things to try if you can’t seem to get your Discourse instance to communicate with other servers in the Fediverse.

  1. If you have a service that is filtering requests to your server, such as a geo-blocker or Cloudflare try turning that off.

  2. Try disabling the site setting activity pub require signed requests.

  3. Enable the site settings activity pub verbose logging and activity pub object logging and look for entries in /logs with [Discourse Activity Pub] in them. Report those logs here.

  4. Check whether the site settings activity pub allowed request origins or activity pub blocked request origins have entries in them. Note that if you allow specific domains, requests from all other domains will be blocked.

2 Likes

Only for you, not in this issue. I’ve tried it. But I can let our friends from Singapore and Russia knock doors a while and I disable it. Just a second.

And done.

Ok. How is that geo-blocker set up? If you’re routing your traffic via a service like Cloudflare it may be stripping headers from requests (even with the blocker disabled). ActivityPub also requires specific headers for request validation and authentication.

I see a lot of error 403. That’s why my first though was it is either bot list or geo blocking. But I can’t find anything from user agents when browsing error.log and I mostly try from instances located in Finland or other than some very problematic countries. Australia was a headache at some point (do we really need geo blocking here is worth of other topic, but because of my history with WordPress I’m using it).

Something like this:

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

I understand something like this would happen if there is an instance that I’ve not allowed, but it happens with everyone

I can connect my Discourse user to a Mastodon user, though.

Using Discourse plugin. Nothing fancy. I’m not using Cloudflare because there is no point on small forum located in Finland and serving finnish users.

Ok, the next thing to try is disable the site setting activity pub require signed requests. Let me know when you’ve done that (just thinking out loud I think I’ll turn this subject of “I’m getting 403s” into a wiki as I can see it coming up a fair bit).

Also, which plugin? And how does it work?

I don’t know how it’s working.

I can do rebuilding without it and give a try. But I don’t totally understand how it could affect when everything else is working :thinking:

I already tried that. Mainly because AFAIK most of instances don’t use it. It didn’t help, though. But I disable it. Is it same thing that Mastodon servers have a setting for?

ActivityPub requires more inter-connectivity than anything else you’d be using. Not saying that plugin is the cause, but anything that filters all requests to your server (as any geo-blocker would have to do) could potentially cause issues with ActivityPub. If any other plugin you’re using could potentially fall into this category (i.e. filtering requests to your server) please share that too.

Effectively, yes.

Ok, the next thing to try is your specific settings:

  1. Please confirm that activity_pub_enabled is true.
  2. Please confirm the current state of activity_pub_allowed_request_origins and activity_pub_blocked_request_origins.
  3. Also, please share the current configuration of the category actor you shared.
  1. Yes

  2. Is there an easier way to get list of activity_pub_allowed_request_origins? Rails or something copypasteable? But includes all domains I’ve tried i.e. mastodontti.fi and mastodon.social.
    activity_pub_blocked_request_origins: fedsearch.io

I`ll do rebuilding without geo blocking ar this point.

No luck with geo blocking.

I’m still wondering if ActivityPub of my forum lives somehow in the past, and has a bite or two in wrong position.

  • my profile on mastodontti.fi follows my category, but it doesn’t get anything. I can’t see it on forum side. That account was in use 9 months ago when I tried ActivityPub last time.
  • I have two followers on forum I can’t remove. Those two are from past too. There may be an issue with mastodon-server that I killed totally wrong. But it shouldn’t play any roll in the forum?

But the main reason is 403, and where it comes.

While this is possible, the only way to approach issues like this, whether we’re dealing with ActivityPub or anything else, is to address the known problems, before we try to find unknown problems.

Yes, let’s focus entirely on this for now.

Ok, can you now please confirm for me that activity_pub_verbose_logging and activity_pub_object_logging is enabled. When you do, I’m going to send a request and I want you to then check the forum /logs and let me know what you see with [Discourse Activity Pub] in them. Make sure you have all log levels (e.g. debug and info) enabled in your /log viewer.

1 Like

All are on.

Ok, I sent a few requests. Let me know what you see.

I think these.

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

It is always same.

Ok, we’ve found the issue :slight_smile:

Your requests are being blocked by the domain allow / deny lists. So you’ve either:

  • entered domains in the activity pub allowed request origins list. This means requests from all other domains will be blocked; or
  • there is a bug with this code.

Please share exactly what you have in both the activity_pub_allowed_request_origins and activity_pub_blocked_request_origins settings.

Sorry screenshots :wink: I didnt bother start writing.

activity_pub_allowed_request_origins

Every instance I’ve tried are there, and couple more. For example mstdn.social I’m not using, but it gets 402 a lot. I mostly try using mastodontti.fi (that one has the ghost follower of mine) and kvarkki.nexus (that’s mine) and those aren’t working

activity_pub_blocked_request_origins

fedsearch.io, nothing more.

For me a bug would be nice, for you not so much. But if and when I’m the only one… :man_shrugging:

So, you get an error because the server you used isn’t in that list, right?

I’ve found the cause of your issue. It’s technically not a bug, but it is a oversight in how the domain allow / deny functionality works (and by that I mean, how it interoperates with Mastodon). The fix will be to only allow domain allow / deny usage alongside signed request usage. I’ve raised a PR for it.

When that is merged, I’ll get you to test again.

2 Likes

Yes! You did it, again. Messages go here, there and everywhere. And following works both ways.

Thanks. Great job indeed!

3 Likes