# Запросы на подписку не принимаются

**URL:** https://meta.discourse.org/t/follow-requests-not-accepted/357299
**Category:** Support
**Tags:** activitypub
**Created:** [14.Март.2025 13:53:03 UTC](https://meta.discourse.org/t/follow-requests-not-accepted/357299 "2025-03-14T13:53:03Z")
**Posts on this page:** 17
**Page:** 1

<div class="post-metadata">

### Author: ![kuba-orlik](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/kuba-orlik/32/318490_2.png) [@kuba-orlik](https://meta.discourse.org/u/kuba-orlik)
#### Post date: [14.Март.2025 13:53:03 UTC](https://meta.discourse.org/t/follow-requests-not-accepted/357299/1 "2025-03-14T13:53:03Z")

</div>

Я настроил плагин ActivityPub, но не могу подписаться на аккаунты, созданные на моём инстансе, из других федеративных приложений. При попытке подписаться на

`news@forum.internet-czas-dzialac.pl`

через клиент Mastodon и обновлении интерфейса запрос на подписку завис:

 ![image](https://global.discourse-cdn.com/meta/original/4X/6/d/0/6d068cf1bbea36c5bffab2a5027a96906544e0bf.png)

Он уже несколько часов висит в статусе «отозвать запрос на подписку». Отмена и повторная отправка запроса не помогают — он всё равно зависает, и новые публикации в категории не отображаются.

---

<div class="post-metadata">

### Author: ![pmusaraj](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pmusaraj/32/119489_2.png) [@pmusaraj](https://meta.discourse.org/u/pmusaraj)
#### Post date: [14.Март.2025 15:59:12 UTC](https://meta.discourse.org/t/follow-requests-not-accepted/357299/3 "2025-03-14T15:59:12Z")

</div>

Мне удалось воспроизвести проблему, хотя у меня немного другой интерфейс:

 ![CleanShot 2025-03-14 at 11.58.11@2x](https://global.discourse-cdn.com/meta/original/4X/0/d/e/0de4d2d8496b01568493140cce7840158dc8b58c.png)

Попробуйте перейти по ссылке [How to debug connectivity issues with ActivityPub](https://meta.discourse.org/t/how-to-debug-connectivity-issues-with-activitypub/345798) — возможно, там есть что-то полезное.

---

<div class="post-metadata">

### Author: ![kuba-orlik](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/kuba-orlik/32/318490_2.png) [@kuba-orlik](https://meta.discourse.org/u/kuba-orlik)
#### Post date: [15.Март.2025 08:02:07 UTC](https://meta.discourse.org/t/follow-requests-not-accepted/357299/4 "2025-03-15T08:02:07Z")

</div>

1. На моем сервере не настроен геоблокер
2. Отключение требования подписанных запросов в настройках плагина по адресу `admin/site_settings/category/all_results?filter=plugin%3Adiscourse-activity-pub` не решило проблему
3. В логах я вижу следующие предупреждения:

```plaintext
[Discourse Activity Pub] Не удалось обработать https://mastodon.social/users/Ifutig#delete: Объект не готов

[Discourse Activity Pub] DiscourseActivityPub::AP::Handlers::Warning
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:26:in `log'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/logger.rb:63: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'
activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/transaction.rb:616:in `block in within_new_transaction'
activesupport-7.2.2.1/lib/active_support/concurrency/null_lock.rb:9:in `synchronize'
activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/transaction.rb:613:in `within_new_transaction'
activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/database_statements.rb:361:in `transaction'
activerecord-7.2.2.1/lib/active_record/transactions.rb:234:in `block in transaction'
activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:415:in `with_connection'
activerecord-7.2.2.1/lib/active_record/connection_handling.rb:296:in `with_connection'
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:14:in `block in execute'
/var/www/discourse/lib/distributed_mutex.rb:53:in `block in synchronize'
/var/www/discourse/lib/distributed_mutex.rb:49:in `synchronize'
/var/www/discourse/lib/distributed_mutex.rb:49:in `synchronize'
/var/www/discourse/lib/distributed_mutex.rb:34:in `synchronize'
/var/www/discourse/plugins/discourse-activity-pub/app/jobs/discourse_activity_pub_process.rb:8:in `execute'
/var/www/discourse/app/jobs/base.rb:316:in `block (2 levels) in perform'
rails_multisite-6.1.0/lib/rails_multisite/connection_management/null_instance.rb:49:in `with_connection'
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'
sidekiq-7.3.9/lib/sidekiq/processor.rb:220:in `execute_job'
sidekiq-7.3.9/lib/sidekiq/processor.rb:185:in `block (4 levels) in process'
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:180:in `traverse'
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'
/var/www/discourse/lib/sidekiq/pausable.rb:132:in `call'
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:182:in `traverse'
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'
sidekiq-7.3.9/lib/sidekiq/job/interrupt_handler.rb:9:in `call'
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:182:in `traverse'
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'
sidekiq-7.3.9/lib/sidekiq/metrics/tracking.rb:26:in `track'
sidekiq-7.3.9/lib/sidekiq/metrics/tracking.rb:134:in `call'
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:182:in `traverse'
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:173:in `invoke'
sidekiq-7.3.9/lib/sidekiq/processor.rb:184:in `block (3 levels) in process'
sidekiq-7.3.9/lib/sidekiq/processor.rb:145:in `block (6 levels) in dispatch'
sidekiq-7.3.9/lib/sidekiq/job_retry.rb:118:in `local'
sidekiq-7.3.9/lib/sidekiq/processor.rb:144:in `block (5 levels) in dispatch'
sidekiq-7.3.9/lib/sidekiq/config.rb:39:in `block in <class:Config>'
sidekiq-7.3.9/lib/sidekiq/processor.rb:139:in `block (4 levels) in dispatch'
sidekiq-7.3.9/lib/sidekiq/processor.rb:281:in `stats'
sidekiq-7.3.9/lib/sidekiq/processor.rb:134:in `block (3 levels) in dispatch'
sidekiq-7.3.9/lib/sidekiq/job_logger.rb:15:in `call'
sidekiq-7.3.9/lib/sidekiq/processor.rb:133:in `block (2 levels) in dispatch'
sidekiq-7.3.9/lib/sidekiq/job_retry.rb:85:in `global'
sidekiq-7.3.9/lib/sidekiq/processor.rb:132:in `block in dispatch'
sidekiq-7.3.9/lib/sidekiq/job_logger.rb:40:in `prepare'
sidekiq-7.3.9/lib/sidekiq/processor.rb:131:in `dispatch'
sidekiq-7.3.9/lib/sidekiq/processor.rb:183:in `block (2 levels) in process'
sidekiq-7.3.9/lib/sidekiq/processor.rb:182:in `handle_interrupt'
sidekiq-7.3.9/lib/sidekiq/processor.rb:182:in `block in process'
sidekiq-7.3.9/lib/sidekiq/processor.rb:181:in `handle_interrupt'
sidekiq-7.3.9/lib/sidekiq/processor.rb:181:in `process'
sidekiq-7.3.9/lib/sidekiq/processor.rb:86:in `process_one'
sidekiq-7.3.9/lib/sidekiq/processor.rb:76:in `run'
sidekiq-7.3.9/lib/sidekiq/component.rb:10:in `watchdog'
sidekiq-7.3.9/lib/sidekiq/component.rb:19:in `block in safe_thread'

```

1. Настройки `activity pub allowed request origins` и `activity pub blocked request origins` пусты

* * *

Сбоковая очередь Sidekiq в Mastodon сообщает об этой ошибке для очереди `ActivityPub::DeliveryWorker`, вызванной с аргументами

```plaintext
"{\"@context\":\"https://www.w3.org/ns/activitystreams\",\"id\":\"https://toot.kuba-orlik.name/users/kuba#follows/2702/undo\",\"type\":\"Undo\",\"actor\":\"https://toot.kuba-orlik.name/users/kuba\",\"object\":{\"id\":\"https://toot.kuba-orlik.name/afe35800-107b-4843-baf6-763052aa8a79\",\"type\":\"Follow\",\"actor\":\"https://toot.kuba-orlik.name/users/kuba\",\"object\":\"https://forum.internet-czas-dzialac.pl/ap/actor/3120ea9df156a8556848a862fc980366\"}}", 1, "/inbox"

```

```plaintext
HTTP::Request::UnsupportedSchemeError: неизвестная схема: on /inbox

```

Похоже, что в этом фрагменте `ap_id` может быть пустым?

> <https://github.com/discourse/discourse-activity-pub/blob/45287070bbc12512f62560a4d56d95338acdbd22/spec/fabricators/discourse_activity_pub_actor_fabricator.rb#L15>

* * *

Да, я вижу это

```plaintext
curl -H "Accept: application/activity+json" https://forum.internet-czas-dzialac.pl/ap/actor/3120ea9df156a8556848a862fc980366 | jq

```

возвращает:

```json
{
  "id": "https://forum.internet-czas-dzialac.pl/ap/actor/3120ea9df156a8556848a862fc980366",
  "type": "Group",
  "updated": "2025-03-14T12:23:02Z",
  "url": "https://forum.internet-czas-dzialac.pl/c/nowinki-od-icd/65",
  "name": "Forum ICD - Newsy",
  "inbox": "/inbox",
  "outbox": "/outbox",
  "followers": "https://forum.internet-czas-dzialac.pl/ap/actor/3120ea9df156a8556848a862fc980366/followers",
  "preferredUsername": "news",
  "publicKey": {
    "id": "https://forum.internet-czas-dzialac.pl/ap/actor/3120ea9df156a8556848a862fc980366#main-key",
    "owner": "https://forum.internet-czas-dzialac.pl/ap/actor/3120ea9df156a8556848a862fc980366",
    "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2JFbVH7kIfa/14CDnUww\n9x+XwOPsS0qyeec1jdasv8SqqCit22FwDsLhH6vWpSIDisEDOhTLZjFFtpwksA8d\nRZIdOFrFazPkUF69J5VDVGtLgjyRi/KkJewbVaUnxO8zNwnxyBYWe8QoMWbdFwto\nfNzvB/ht+9Pch8ksVzNPnrA3Z7egtWHWGNl5sQ+8eXOKzeMNOn73hCEKcOSPWulz\n1gbbdo0So5ThKpwXC0ViqcZy2yzyTFptdrvL7lphr0BywUsG6AruOuwmghw6eRNe\nFvzx0Pq01bUIyY+MXiYmN6sLMIDqi/kdoALzSE+tHcv7HzCLNuEJb1DCmZo56O2H\nSQIDAQAB\n-----END PUBLIC KEY-----\n"
  },
  "icon": {
    "type": "Image",
    "mediaType": "image/png",
    "url": "https://forum.internet-czas-dzialac.pl/uploads/default/original/1X/adbc19ebc6466183dc0387c3f59d86bd2861b5c9.png"
  },
  "@context": "https://www.w3.org/ns/activitystreams"
}

```

Как видно, URL-адреса `inbox` и `outbox` не содержат протокол и домен.

---

<div class="post-metadata">

### Author: ![kuba-orlik](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/kuba-orlik/32/318490_2.png) [@kuba-orlik](https://meta.discourse.org/u/kuba-orlik)
#### Post date: [15.Март.2025 16:08:24 UTC](https://meta.discourse.org/t/follow-requests-not-accepted/357299/5 "2025-03-15T16:08:24Z")

</div>

Думаю, я нашел проблему. Я отправил PR, который исправляет это:

> <https://github.com/discourse/discourse-activity-pub/pull/193>
>
> See https://meta.discourse.org/t/follow-requests-not-accepted/357299/4 for the e…rror I encountered and my attempts at debugging it. 
> 
> I've tested the PR on our Discourse instance and now following works properly

Суть изменений заключается в добавлении следующих геттеров:

> <https://github.com/discourse/discourse-activity-pub/blob/71c0187261513ebf81797320f95244b105167a27/app/serializers/discourse_activity_pub/ap/actor_serializer.rb#L10-L16>

---

<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: [17.Март.2025 08:11:56 UTC](https://meta.discourse.org/t/follow-requests-not-accepted/357299/6 "2025-03-17T08:11:56Z")

</div>

Ваша проблема заключается в том, что объекты каким-то образом создаются с идентификаторами. Это не связано с сериализатором (или фабрикой). Не могли бы вы сообщить:

1. Окружение вашего Discourse, то есть способ хостинга и версию Discourse, которую вы используете.
2. О любых других используемых вами плагинах.

---

<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: [17.Март.2025 08:35:46 UTC](https://meta.discourse.org/t/follow-requests-not-accepted/357299/7 "2025-03-17T08:35:46Z")

</div>

@kuba-orlik Ваша проблема, скорее всего, вызвана этим PR:

> <https://github.com/discourse/discourse-activity-pub/pull/188>
>
> See further: https://meta.discourse.org/t/local-activitypub-actors-are-being-cre…ated-without-keypairs/356834

Это должно решить её:

> <https://github.com/discourse/discourse-activity-pub/pull/194>
>
> @pmusaraj https://github.com/discourse/discourse-activity-pub/pull/188 introduce…d a bug resulting in https://meta.discourse.org/t/follow-requests-not-accepted/357299
> 
> 1. I considered added a db migration to this, however \[the issue\](https://meta.discourse.org/t/local-activitypub-actors-are-being-created-without-keypairs/356834) the original PR was addressing in the first place was a data anomaly, i.e. it shouldn't have been possible to begin with, so a db migration would not be sufficient.
> 
> 2. More broadly, one of the things that seems to hold in ActivityPub is that you need ongoing data integrity checks, regardless of data ownership.

Спасибо за сообщение об ошибке и за ваше терпение!

---

<div class="post-metadata">

### Author: ![kuba-orlik](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/kuba-orlik/32/318490_2.png) [@kuba-orlik](https://meta.discourse.org/u/kuba-orlik)
#### Post date: [18.Март.2025 20:10:55 UTC](https://meta.discourse.org/t/follow-requests-not-accepted/357299/8 "2025-03-18T20:10:55Z")

</div>

Спасибо @angus за проверку! К сожалению, даже с последней версией проблема сохраняется.

> [@angus](#):
>
> Окружение вашего Discourse, то есть как вы его хостите и какую версию Discourse используете.

Я использую саморазвёрнутую версию с официальным Docker-набором (`./launcher rebuild app`).

Запущен Discourse `3.5.0.beta2-dev`.

> [@angus](#):
>
> Какие ещё плагины вы используете.

`discourse-chat-integration`, `discourse-whos-online`, [discourse-telegram-notifications](https://github.com/davidtaylorhq/discourse-telegram-notifications.git), `discourse-assign`.

> [@angus](#):
>
> Ваша проблема, скорее всего, вызвана этим PR.

Я тоже думал, что дело может быть в этом, но я пробовал устанавливать версии до этого коммита, и проблема оставалась 🤔

Я установил последнюю версию плагина (из коммита `0083654`), но, к сожалению, проблема не решена. Быстрая проверка:

```plaintext
> curl -H "Accept: application/activity+json" https://forum.internet-czas-dzialac.pl/ap/actor/3120ea9df156a8556848a862fc980366 | jq
  % Total % Received % Xferd Average Speed Time Time Time Current
                                 Dload Upload Total Spent Left Speed
100 1298 0 1298 0 0 9151 0 --:--:-- --:--:-- --:--:-- 9205
{
  "id": "https://forum.internet-czas-dzialac.pl/ap/actor/3120ea9df156a8556848a862fc980366",
  "type": "Group",
  "updated": "2025-03-14T12:23:02Z",
  "url": "https://forum.internet-czas-dzialac.pl/c/nowinki-od-icd/65",
  "name": "Forum ICD - Newsy",
  "inbox": "/inbox",
  "outbox": "/outbox",
  "followers": "https://forum.internet-czas-dzialac.pl/ap/actor/3120ea9df156a8556848a862fc980366/followers",
  "preferredUsername": "news",
  "publicKey": {
    "id": "https://forum.internet-czas-dzialac.pl/ap/actor/3120ea9df156a8556848a862fc980366#main-key",
    "owner": "https://forum.internet-czas-dzialac.pl/ap/actor/3120ea9df156a8556848a862fc980366",
    "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2JFbVH7kIfa/14CDnUww\n9x+XwOPsS0qyeec1jdasv8SqqCit22FwDsLhH6vWpSIDisEDOhTLZjFFtpwksA8d\nRZIdOFrFazPkUF69J5VDVGtLgjyRi/KkJewbVaUnxO8zNwnxyBYWe8QoMWbdFwto\nfNzvB/ht+9Pch8ksVzNPnrA3Z7egtWHWGNl5sQ+8eXOKzeMNOn73hCEKcOSPWulz\n1gbbdo0So5ThKpwXC0ViqcZy2yzyTFptdrvL7lphr0BywUsG6AruOuwmghw6eRNe\nFvzx0Pq01bUIyY+MXiYmN6sLMIDqi/kdoALzSE+tHcv7HzCLNuEJb1DCmZo56O2H\nSQIDAQAB\n-----END PUBLIC KEY-----\n"
  },
  "icon": {
    "type": "Image",
    "mediaType": "image/png",
    "url": "https://forum.internet-czas-dzialac.pl/uploads/default/original/1X/adbc19ebc6466183dc0387c3f59d86bd2861b5c9.png"
  },
  "@context": "https://www.w3.org/ns/activitystreams"
}

```

Как видите, ключи `inbox` и `outbox` снова не являются полными URL-адресами.

---

<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: [18.Март.2025 20:29:30 UTC](https://meta.discourse.org/t/follow-requests-not-accepted/357299/9 "2025-03-18T20:29:30Z")

</div>

Возврат к предыдущему коммиту не помог бы после возникновения проблемы. Попробуйте пересохранить акторов в разделе Администрирование \> ActivityPub, то есть нажмите «Сохранить актора» в `/admin/plugins/ap/actor`.

---

<div class="post-metadata">

### Author: ![kuba-orlik](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/kuba-orlik/32/318490_2.png) [@kuba-orlik](https://meta.discourse.org/u/kuba-orlik)
#### Post date: [18.Март.2025 21:37:35 UTC](https://meta.discourse.org/t/follow-requests-not-accepted/357299/10 "2025-03-18T21:37:35Z")

</div>

Ах! Я снова сохранил категорию акторов, и теперь всё работает!

Теперь, как исправить акторов отдельных пользователей, например `https://forum.internet-czas-dzialac.pl/ap/actor/0098dcca74e34cfd2115e9309a7d4531`?

```plaintext
> curl -H "Accept: application/activity+json" https://forum.internet-czas-dzialac.pl/ap/actor/0098dcca74e34cfd2115e9309a7d4531 | jq
  % Total % Received % Xferd Average Speed Time Time Time Current
                                 Dload Upload Total Spent Left Speed
100 1332 0 1332 0 0 9273 0 --:--:-- --:--:-- --:--:-- 9314
{
  "id": "https://forum.internet-czas-dzialac.pl/ap/actor/0098dcca74e34cfd2115e9309a7d4531",
  "type": "Person",
  "updated": "2025-03-14T12:34:26Z",
  "url": "https://forum.internet-czas-dzialac.pl/u/kuba",
  "name": "Kuba",
  "inbox": "/inbox",
  "outbox": "/outbox",
  "sharedInbox": "https://forum.internet-czas-dzialac.pl/ap/users/inbox",
  "followers": "https://forum.internet-czas-dzialac.pl/ap/actor/0098dcca74e34cfd2115e9309a7d4531/followers",
  "preferredUsername": "kuba",
  "publicKey": {
    "id": "https://forum.internet-czas-dzialac.pl/ap/actor/0098dcca74e34cfd2115e9309a7d4531#main-key",
    "owner": "https://forum.internet-czas-dzialac.pl/ap/actor/0098dcca74e34cfd2115e9309a7d4531",
    "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0wp46cDyUbUUTfvbWqy/\nRS3YXY2g69+a3R5n+f4EeCxcpNL1OGPyzgjszdoxAWLSXCHqZk91v2rvpfRZt8wi\nEQ8Sr5CVj1uKIny9bdxKtxVyiT7U1pIZGD1VhWXqY1tMRLxQWWhA2+UtD1pfFzk/\nyqcbqXUvlG6UsQBAlDnaPxKaq3CD1ui1ANVsVY+VEbJyROIVY3q86qw50KSDHu/y\n0TaD6UjZNtnGOVmjh11QZwn2j5A/GYj6gqFDdS58KMMoBuPAfRZ7uD3psJ5CqT6F\nKLwn5q3UvypEm89SmboRIEcq7Pcvv1Zts0QJRDaSA0M4VeW35iuAqnhQ7yHKthAF\nYwIDAQAB\n-----END PUBLIC KEY-----\n"
  },
  "icon": {
    "type": "Image",
    "mediaType": "image/png",
    "url": "https://forum.internet-czas-dzialac.pl/user_avatar/forum.internet-czas-dzialac.pl/kuba/96/1866_2.png"
  },
  "@context": "https://www.w3.org/ns/activitystreams"
}

```

---

<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: [19.Март.2025 10:06:08 UTC](https://meta.discourse.org/t/follow-requests-not-accepted/357299/11 "2025-03-19T10:06:08Z")

</div>

Рада, что всё работает!

> [@kuba-orlik](#):
>
> Теперь, как исправить отдельных акторов пользователей?

Текущие проверки верификации данных будут применяться, когда пользователь участвует в реальной активности (то есть система исправит себя при необходимости). Тем не менее, отличная идея — распространить те же проверки верификации на прямой доступ к актору-человеку, как вы делаете здесь. Вот что это сделает:

> <https://github.com/discourse/discourse-activity-pub/pull/195>
>
> @pmusaraj See https://meta.discourse.org/t/follow-requests-not-accepted/357299/1…1?u=angus

Спасибо за настойчивость в этом вопросе. Очень полезно иметь реальный экземпляр с некорректными данными, чтобы убедиться, что проверки верификации работают как ожидается и когда это необходимо. Исходная проблема с повреждением данных, которая привела к этим недавним изменениям, может возникнуть снова в какой-то другой форме, поэтому цель здесь — обеспечить постоянную согласованность данных в момент их использования (в отличие от обработки через миграции и т.д.). Дайте знать, если заметите подобные проблемы!

---

<div class="post-metadata">

### Author: ![kuba-orlik](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/kuba-orlik/32/318490_2.png) [@kuba-orlik](https://meta.discourse.org/u/kuba-orlik)
#### Post date: [24.Март.2025 16:41:54 UTC](https://meta.discourse.org/t/follow-requests-not-accepted/357299/12 "2025-03-24T16:41:54Z")

</div>

Теперь всё работает! Пока переключаюсь на ваш форк 🙂

---

<div class="post-metadata">

### Author: ![kuba-orlik](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/kuba-orlik/32/318490_2.png) [@kuba-orlik](https://meta.discourse.org/u/kuba-orlik)
#### Post date: [01.Апрель.2025 10:35:43 UTC](https://meta.discourse.org/t/follow-requests-not-accepted/357299/13 "2025-04-01T10:35:43Z")

</div>

@angus спасибо за вашу поддержку до сих пор. Хотя URL-адреса входящих/исходящих писем теперь выглядят нормально, следующее всё ещё не работает. Я пытался подписаться на `@kuba@forum.internet-czas-dzialac.pl` с двух разных экземпляров Mastodon, но в обоих случаях это не сработало.

При отправке запроса на подписку для обычного аккаунта пользователя я получаю эту ошибку:

```plaintext
[Discourse Activity Pub] Не удалось обработать https://mastodon.internet-czas-dzialac.pl/6bef64d0-c8ad-473c-85f6-d3fd190b5ebd: 
Активность не поддерживается для актора и объекта

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:26:in `log'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/logger.rb:63: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:139: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'
activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/transaction.rb:616:in `block in within_new_transaction'
activesupport-7.2.2.1/lib/active_support/concurrency/null_lock.rb:9:in `synchronize'
activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/transaction.rb:613:in `within_new_transaction'
activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/database_statements.rb:361:in `transaction'
activerecord-7.2.2.1/lib/active_record/transactions.rb:234:in `block in transaction'
activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:421:in `with_connection'
activerecord-7.2.2.1/lib/active_record/connection_handling.rb:296:in `with_connection'
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:14:in `block in execute'
/var/www/discourse/lib/distributed_mutex.rb:53:in `block in synchronize'
(...)

```

А вот эта ошибка возникает при отмене запроса на подписку:

```plaintext
[Discourse Activity Pub] Не удалось обработать https://mastodon.internet-czas-dzialac.pl/users/icd#follows/5003/undo: 
Объект не готов

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:26:in `log'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/logger.rb:63: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:137: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'
activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/transaction.rb:616:in `block in within_new_transaction'
(...)

```

---

<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: [04.Апрель.2025 08:38:44 UTC](https://meta.discourse.org/t/follow-requests-not-accepted/357299/14 "2025-04-04T08:38:44Z")

</div>

Второе предупреждение, а именно это

> Не удалось обработать [Internet. Czas działać! 🌎 (@icd@mastodon.internet-czas-dzialac.pl) - Fundacja Internet. Czas działać! - serwer Mastodona](https://mastodon.internet-czas-dzialac.pl/users/icd#follows/5003/undo:)  
> Объект не готов

ожидаемо, так как нельзя «отменить» то, что ещё не было сделано.

Что касается того, почему подписка не работает:

> Не удалось обработать [https://mastodon.internet-czas-dzialac.pl/6bef64d0-c8ad-473c-85f6-d3fd190b5ebd:](https://mastodon.internet-czas-dzialac.pl/6bef64d0-c8ad-473c-85f6-d3fd190b5ebd:) Действие не поддерживается для актёра и объекта

Это говорит о том, что вы пытаетесь подписаться на нестандартного актёра. Такое предупреждение возникает при ошибке валидации типа. Вы можете посмотреть различные поддерживаемые нами типы актёров в этой папке:

[https://github.com/discourse/discourse-activity-pub/tree/main/lib/discourse\_activity\_pub/ap/actor](https://github.com/discourse/discourse-activity-pub/tree/main/lib/discourse_activity_pub/ap/actor)

Кроме того, эта ссылка, похоже, никуда не ведёт.

 ![Screenshot 2025-04-04 at 10.37.28](https://global.discourse-cdn.com/meta/original/4X/a/8/6/a86270cbb27950a7275b20556c8eb66be89e8bf9.jpeg)

---

<div class="post-metadata">

### Author: ![kuba-orlik](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/kuba-orlik/32/318490_2.png) [@kuba-orlik](https://meta.discourse.org/u/kuba-orlik)
#### Post date: [05.Апрель.2025 18:30:15 UTC](https://meta.discourse.org/t/follow-requests-not-accepted/357299/15 "2025-04-05T18:30:15Z")

</div>

> [@angus](#):
>
> Это наводит меня на мысль, что вы пытаетесь подписаться на нестандартного актора. Такое предупреждение появляется при сбое валидации типа. Вы можете увидеть различные поддерживаемые нами типы акторов в этой папке:

Странно — я просто пытаюсь подписаться на обычного актора-человека. Логи здесь относятся к моей попытке подписаться на `@kuba@forum.internet-czas-dzialac.pl` (полагая, что это соответствует [Profile - kuba - Forum Internet. Czas działać!](https://forum.internet-czas-dzialac.pl/u/kuba) — если я не ошибаюсь?)

Из того, что я понял из [https://github.com/discourse/discourse-activity-pub/blob/main/lib/discourse\_activity\_pub/ap/actor/person.rb](https://github.com/discourse/discourse-activity-pub/blob/main/lib/discourse_activity_pub/ap/actor/person.rb), подписка на пользователей Discourse через AP поддерживается, верно?

---

<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: [05.Апрель.2025 18:36:24 UTC](https://meta.discourse.org/t/follow-requests-not-accepted/357299/16 "2025-04-05T18:36:24Z")

</div>

> [@kuba-orlik](#):
>
> Поддержка подписки на пользователей Discourse через AP есть, верно?

Нет, это не так. Поддержка подписки на акторы Discourse, которые являются категориями или тегами, существует. Пользователей форума нельзя отслеживать через ActivityPub. Это «псевдопользователи», чей актор категории/тега поста делает репост.

---

<div class="post-metadata">

### Author: ![kuba-orlik](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/kuba-orlik/32/318490_2.png) [@kuba-orlik](https://meta.discourse.org/u/kuba-orlik)
#### Post date: [05.Апрель.2025 18:45:11 UTC](https://meta.discourse.org/t/follow-requests-not-accepted/357299/17 "2025-04-05T18:45:11Z")

</div>

А, понятно. Планируется ли добавить поддержку подписки на конкретных пользователей? Я с радостью помогу.

---

<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: [07.Апрель.2025 08:30:03 UTC](https://meta.discourse.org/t/follow-requests-not-accepted/357299/18 "2025-04-07T08:30:03Z")

</div>

> [@kuba-orlik](#):
>
> Логи здесь относятся к моей попытке подписаться на `@kuba@forum.internet-czas-dzialac.pl` (полагая, что это соответствует [Профиль — kuba — Форум Интернет. Время действовать!](https://forum.internet-czas-dzialac.pl/u/kuba) — если я не ошибаюсь?)

А, понял, да, на данный момент это не поддерживается.

> [@kuba-orlik](#):
>
> Есть ли планы добавить поддержку подписки на конкретных пользователей?

В краткосрочной и среднесрочной перспективе — нет.
