# How to debug connectivity issues with ActivityPub

**URL:** https://meta.discourse.org/t/how-to-debug-connectivity-issues-with-activitypub/345798
**Category:** Administrators
**Tags:** activitypub
**Created:** [January 6, 2025, 9:38am UTC](https://meta.discourse.org/t/how-to-debug-connectivity-issues-with-activitypub/345798 "2025-01-06T09:38:44Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![angus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/angus/32/341715_2.png) [@angus](https://meta.discourse.org/u/angus)
#### Post date: [January 6, 2025, 9:38am UTC](https://meta.discourse.org/t/how-to-debug-connectivity-issues-with-activitypub/345798/1 "2025-01-06T09:38:44Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [January 6, 2025, 9:45am UTC](https://meta.discourse.org/t/how-to-debug-connectivity-issues-with-activitypub/345798/2 "2025-01-06T09:45:38Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![angus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/angus/32/341715_2.png) [@angus](https://meta.discourse.org/u/angus)
#### Post date: [January 6, 2025, 9:53am UTC](https://meta.discourse.org/t/how-to-debug-connectivity-issues-with-activitypub/345798/3 "2025-01-06T09:53:36Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [January 6, 2025, 9:59am UTC](https://meta.discourse.org/t/how-to-debug-connectivity-issues-with-activitypub/345798/4 "2025-01-06T09:59:25Z")

</div>

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:

```plaintext
[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.

> [@angus](#):
>
> How is that geo-blocker set up

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.

---

<div class="post-metadata">

### Author: ![angus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/angus/32/341715_2.png) [@angus](https://meta.discourse.org/u/angus)
#### Post date: [January 6, 2025, 10:02am UTC](https://meta.discourse.org/t/how-to-debug-connectivity-issues-with-activitypub/345798/5 "2025-01-06T10:02:52Z")

</div>

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).

> [@Jagster](#):
>
> Using Discourse plugin.

Also, which plugin? And how does it work?

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [January 6, 2025, 10:09am UTC](https://meta.discourse.org/t/how-to-debug-connectivity-issues-with-activitypub/345798/6 "2025-01-06T10:09:32Z")

</div>

I don’t know how it’s working.

> [@Geo Blocking plugin](https://meta.discourse.org/t/geo-blocking-plugin/227824):
>
> Summary: Geo Blocking plugin for Discourse link GitHub: [GitHub - communiteq/discourse-geo-blocking · GitHub](https://github.com/communiteq/discourse-geo-blocking)arrow_right Install: Follow the [plugin installation guide](https://meta.discourse.org/t/install-a-plugin/19157). moneybag Client: This plugin has been sponsored by [Sketchfab](https://sketchfab.com). Features This can be used to completely block access to your forum for certain countries or networks, for example fraud prevention or to comply with sanctions. The plugin leverages the MaxMindDB database that is already available in Discourse. Configuration …

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 🤔

> [@angus](#):
>
> `activity pub require signed requests`

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?

---

<div class="post-metadata">

### Author: ![angus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/angus/32/341715_2.png) [@angus](https://meta.discourse.org/u/angus)
#### Post date: [January 6, 2025, 10:14am UTC](https://meta.discourse.org/t/how-to-debug-connectivity-issues-with-activitypub/345798/7 "2025-01-06T10:14:48Z")

</div>

> [@Jagster](#):
>
> But I don’t totally understand how it could affect when everything else is working 🤔

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.

> [@Jagster](#):
>
> Is it same thing that Mastodon servers have a setting for?

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.

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [January 6, 2025, 10:24am UTC](https://meta.discourse.org/t/how-to-debug-connectivity-issues-with-activitypub/345798/8 "2025-01-06T10:24:00Z")

</div>

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`

3. 

 ![The image shows a settings page for a user's profile on a social media platform, with details such as username, name, visibility, post object type, and publication type. (Captioned by AI)](https://global.discourse-cdn.com/meta/original/4X/2/c/c/2cc0c6b8633bbc26ce77e261ea41164e3a1702f8.jpeg)

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

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [January 6, 2025, 10:52am UTC](https://meta.discourse.org/t/how-to-debug-connectivity-issues-with-activitypub/345798/9 "2025-01-06T10:52:00Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![angus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/angus/32/341715_2.png) [@angus](https://meta.discourse.org/u/angus)
#### Post date: [January 6, 2025, 11:08am UTC](https://meta.discourse.org/t/how-to-debug-connectivity-issues-with-activitypub/345798/10 "2025-01-06T11:08:37Z")

</div>

> [@Jagster](#):
>
> I’m still wondering if ActivityPub of my forum lives somehow in the past, and has a bite or two in wrong position.

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.

> [@Jagster](#):
>
> But the main reason is 403, and where it comes.

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.

 ![Screenshot at Jan 06 12-09-25](https://global.discourse-cdn.com/meta/original/4X/3/f/5/3f57284532568d45a693baa46eefadf1281962f7.png)

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [January 6, 2025, 11:11am UTC](https://meta.discourse.org/t/how-to-debug-connectivity-issues-with-activitypub/345798/11 "2025-01-06T11:11:32Z")

</div>

All are on.

---

<div class="post-metadata">

### Author: ![angus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/angus/32/341715_2.png) [@angus](https://meta.discourse.org/u/angus)
#### Post date: [January 6, 2025, 11:13am UTC](https://meta.discourse.org/t/how-to-debug-connectivity-issues-with-activitypub/345798/12 "2025-01-06T11:13:34Z")

</div>

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

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [January 6, 2025, 11:22am UTC](https://meta.discourse.org/t/how-to-debug-connectivity-issues-with-activitypub/345798/13 "2025-01-06T11:22:08Z")

</div>

I think these.

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

> **env etc**
>
> ```plaintext
> 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
> 
> ```
> 
> ```plaintext
> 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](http://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 |
> 
> ```plaintext
> 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.

---

<div class="post-metadata">

### Author: ![angus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/angus/32/341715_2.png) [@angus](https://meta.discourse.org/u/angus)
#### Post date: [January 6, 2025, 11:27am UTC](https://meta.discourse.org/t/how-to-debug-connectivity-issues-with-activitypub/345798/14 "2025-01-06T11:27:16Z")

</div>

Ok, we’ve found the issue 🙂

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.

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [January 6, 2025, 11:36am UTC](https://meta.discourse.org/t/how-to-debug-connectivity-issues-with-activitypub/345798/15 "2025-01-06T11:36:33Z")

</div>

Sorry screenshots 😉 I didnt bother start writing.

**`activity_pub_allowed_request_origins`**

 ![The image shows a list of web addresses for various social networks, with the main one being "mastodonotfi.social." (Captioned by AI)](https://global.discourse-cdn.com/meta/original/4X/1/3/f/13f84b24f893bda47cc916b5c905e8d04f4b2d4f.jpeg)

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… 🤷‍♂️

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

---

<div class="post-metadata">

### Author: ![angus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/angus/32/341715_2.png) [@angus](https://meta.discourse.org/u/angus)
#### Post date: [January 6, 2025, 2:33pm UTC](https://meta.discourse.org/t/how-to-debug-connectivity-issues-with-activitypub/345798/16 "2025-01-06T14:33:01Z")

</div>

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.

[https://github.com/discourse/discourse-activity-pub/pull/148](https://github.com/discourse/discourse-activity-pub/pull/148)

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

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [January 6, 2025, 8:42pm UTC](https://meta.discourse.org/t/how-to-debug-connectivity-issues-with-activitypub/345798/17 "2025-01-06T20:42:21Z")

</div>

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

Thanks. Great job indeed!

---

<div class="post-metadata">

### Author: ![Crakila](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/crakila/32/439545_2.png) [@Crakila](https://meta.discourse.org/u/Crakila)
#### Post date: [January 21, 2025, 10:08pm UTC](https://meta.discourse.org/t/how-to-debug-connectivity-issues-with-activitypub/345798/18 "2025-01-21T22:08:16Z")

</div>

Hi there. This is in response to [this post over in this thread](https://meta.discourse.org/t/activitypub-plugin/266794/356)

- 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**
>
> ```plaintext
> 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
> 
> ```
> 
> * * *
> 
> ```plaintext
> /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**
>
> ```plaintext
> 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
> 
> ```
> 
> * * *
> 
> ```plaintext
> /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**
>
> ```plaintext
> 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
> 
> ```
> 
> * * *
> 
> ```plaintext
> /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**
>
> ```plaintext
> 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
> 
> ```
> 
> * * *
> 
> ```plaintext
> /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 🙂

---

<div class="post-metadata">

### Author: ![angus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/angus/32/341715_2.png) [@angus](https://meta.discourse.org/u/angus)
#### Post date: [January 22, 2025, 2:16pm UTC](https://meta.discourse.org/t/how-to-debug-connectivity-issues-with-activitypub/345798/19 "2025-01-22T14:16:29Z")

</div>

Thanks for the helpful logs. As a first step, could you try following `announcements@test.pavilion.tech` with `padraig@mastodon.ie`.

---

<div class="post-metadata">

### Author: ![Crakila](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/crakila/32/439545_2.png) [@Crakila](https://meta.discourse.org/u/Crakila)
#### Post date: [January 22, 2025, 4:53pm UTC](https://meta.discourse.org/t/how-to-debug-connectivity-issues-with-activitypub/345798/20 "2025-01-22T16:53:13Z")

</div>

I clicked 'Follow" and it _looks_ like it worked. 🙂

 ![The image shows a notification from the Announcements group on test.pavilion.tech, with an unfollow button and several unclickable icons on a dark background. (Captioned by AI)](https://global.discourse-cdn.com/meta/original/4X/4/9/5/495a825626e181c867d4070198eb2d5804fdb0f9.png)

[Next page](https://meta.discourse.org/t/how-to-debug-connectivity-issues-with-activitypub/345798.md?page=2)
