Unable to follow threads.net user #166

Open
opened 2025-02-05 20:52:06 +09:00 by naskya · 6 comments
Owner

What type of issue is this?

  • label: Server
  • label: Bug

What happened?

I was unable to follow a particular threads.net user. I'm certain that that user has enabled federation in their threads account.

After entering a threads.net user id in the search field and pressing "Lookup", I expected to see the user's profile, but instead saw "An error has occurred". The journal listed the following log messages at that time:

[remote resolve-user]        WebFinger for XXXXXXXXXXX@threads.net
[remote ap]        Update
[queue check-expired-mutings]        Checking expired mutings...
[queue check-expired-mutings]        All expired mutings checked.
[remote resolve-user]        return new remote user: XXXXXXXXXXX@threads.net
[remote ap]        Resolving: https://threads.net/ap/users/XXXXXXXXXXXXXXXXX/
[remote ap]        Getting object from remote, authenticated as user YYYYYYYYYYYYYYYY
[api]        failed to resolve remote user: StatusError: 500 Internal Server Error
[api]        SLOW API CALL DETECTED: users/show (2339.1347800046206ms)
[remote ap]        Unrecognized activity type: View

What did you expect to happen?

I expected to be able to lookup and follow threads users who have federation enabled

Steps to reproduce the issue

Reproduces how often

always

What did you try to solve the issue / Do you have any insights

Without more logging information about the particular error, I wasn't able to gain deeper insight

Version

20240714

Instance

My personal, private instance

How do you deploy Firefish on your server? (server-side issues only)

Podman

What operating system are you using? (Server-side issues only)

Linux

Contribution Guidelines

By submitting this issue, you agree to follow our Contribution Guidelines

  • I agree to follow this project's Contribution Guidelines
  • I have searched the issue tracker for similar issues, and this is not a duplicate.

Are you willing to fix this bug? (optional)

  • Yes, I will open a merge request that closes this ticket.
<!-- This issue template is for bug reports. There are other issue templates for feature requests, refactor proposals, and discussions, so please use them if this is not a bug report. Also, you don't need to prefix the issue title with "Bug:", because it's managed by issue labels. --> <!-- 💖 Thanks for taking the time to fill out this bug report! 💁 Having trouble with deployment? [Ask the support chat.](https://matrix.to/#/#firefish-community:nitro.chat) 🔒 Found a security vulnerability? [Please disclose it responsibly.](https://firefish.dev/firefish/firefish/-/blob/develop/SECURITY.md) 🤝 By submitting this issue, you agree to follow our [Contribution Guidelines.](https://firefish.dev/firefish/firefish/-/blob/develop/CONTRIBUTING.md) --> ## What type of issue is this? <!-- If this happens on your device and has to do with the user interface, it's client-side. If this happens on either with the API or the backend, or you got a server-side error in the client, it's server-side. --> <!-- Uncomment (remove surrounding arrow signs) the following line(s) to specify the category of this issue. --> * label: Server <!-- * label: Client --> <!-- * label: Mobile --> <!-- * label: Third-party-client --> <!-- * label: Docs --> <!-- * label: Locale --> <!-- * label: Build from source --> <!-- * label: Container --> <!-- * label: Firefish API --> <!-- * label: Mastodon API --> <!-- Please do not edit the next line --> * label: Bug ## What happened? I was unable to follow a particular threads.net user. I'm certain that that user has enabled federation in their threads account. After entering a threads.net user id in the search field and pressing "Lookup", I expected to see the user's profile, but instead saw "An error has occurred". The journal listed the following log messages at that time: ``` [remote resolve-user] WebFinger for XXXXXXXXXXX@threads.net [remote ap] Update [queue check-expired-mutings] Checking expired mutings... [queue check-expired-mutings] All expired mutings checked. [remote resolve-user] return new remote user: XXXXXXXXXXX@threads.net [remote ap] Resolving: https://threads.net/ap/users/XXXXXXXXXXXXXXXXX/ [remote ap] Getting object from remote, authenticated as user YYYYYYYYYYYYYYYY [api] failed to resolve remote user: StatusError: 500 Internal Server Error [api] SLOW API CALL DETECTED: users/show (2339.1347800046206ms) [remote ap] Unrecognized activity type: View ``` ## What did you expect to happen? I expected to be able to lookup and follow threads users who have federation enabled ## Steps to reproduce the issue <!-- Please describe how to reproduce this issue (preferably, in a ordered list) --> ## Reproduces how often always ## What did you try to solve the issue / Do you have any insights Without more logging information about the particular error, I wasn't able to gain deeper insight ## Version 20240714 <details> ### Instance My personal, private instance ### How do you deploy Firefish on your server? (server-side issues only) Podman ### What operating system are you using? (Server-side issues only) Linux </details> ## Contribution Guidelines By submitting this issue, you agree to follow our [Contribution Guidelines](https://firefish.dev/firefish/firefish/-/blob/develop/CONTRIBUTING.md) - [x] I agree to follow this project's Contribution Guidelines - [x] I have searched the issue tracker for similar issues, and this is not a duplicate. ## Are you willing to fix this bug? (optional) - [ ] Yes, I will open a merge request that closes this ticket. <!-- Please tell us how to fix this bug. As noted in the contribution guidelines, there is a good chance that your merge request will not be merged if there is no agreement with the project maintainers. However, we are currently so understaffed that it is virtually impossible to respond to every single proposal. So, feel free to implement it if there is no response for more than a week or there is a thumbs-up emoji reaction from the project maintainer(s). Many thanks for your involvement! -->
Author
Owner

Author: naskya

When I browsed to the (unredacted) url https://threads.net/ap/users/xxxxxxxxxxxxxxxxx/ I got this response
{"success":false,"error":"Not found"}

This is expected. Threads requires authorized fetch, so you can’t fetch the info from your browser unless you provide credentials.

*Author: naskya* > When I browsed to the (unredacted) url https://threads.net/ap/users/xxxxxxxxxxxxxxxxx/ I got this response > `{"success":false,"error":"Not found"}` This is expected. Threads requires [authorized fetch](https://docs.joinmastodon.org/admin/config/#authorized_fetch), so you can’t fetch the info from your browser unless you provide credentials.
Author
Owner

Author: naskya

I can’t say anything for sure, as there are many servers (not only Firefish) that have problems with Threads for unknown reason. But I don’t think your database is corrupted, it’s just that your server got error responses from Threads (for some reason) and Firefish retries the failed jobs (the jobs will be discarded after a certain number of failures).

Firefish (as a software) itself should be compatible with Threads, so frankly I don’t think it’s a bug/something we can fix: https://firefish.ranranhome.info/@threads@threads.net

*Author: naskya* I can’t say anything for sure, as there are many servers (not only Firefish) that have problems with Threads for unknown reason. But I don’t think your database is corrupted, it’s just that your server got error responses from Threads (for some reason) and Firefish retries the failed jobs (the jobs will be discarded after a certain number of failures). Firefish (as a software) itself should be compatible with Threads, so frankly I don’t think it’s a bug/something we can fix: https://firefish.ranranhome.info/@threads@threads.net
Author
Owner

Author: Benny Powers

In the mean time i've added a privacy policy and enabled the public feed, which are the main requirements afaict. I'm nonetheless unable to lookup threads users. Perhaps I have some corrupted db entries or something?

I have a bunch of jobs queued up in the Bull Dashboard, related to threads.net. Here's an example job. I hope this provides some clarity.

Data
{
  "jobData": {
    "activity": {
      "@context": [
        "https://www.w3.org/ns/activitystreams"
      ],
      "id": "https://threads.net/ap/users/XXXXXXXXXXXXXXXXX/post/XXXXXXXXXXXXXXXXX/#delete",
      "type": "Delete",
      "actor": "https://threads.net/ap/users/XXXXXXXXXXXXXXXXX/",
      "to": [
        "https://www.w3.org/ns/activitystreams#Public"
      ],
      "object": {
        "id": "https://threads.net/ap/users/XXXXXXXXXXXXXXXXX/post/XXXXXXXXXXXXXXXXX/",
        "type": "Tombstone"
      }
    },
    "signature": {
      "scheme": "Signature",
      "params": {
        "keyId": "https://threads.net/ap/users/XXXXXXXXXXXXXXXXX/#main-key",
        "algorithm": "rsa-sha256",
        "headers": [
          "(request-target)",
          "host",
          "date",
          "digest"
        ],
        "signature": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
      },
      "signingString": "(request-target): post /inbox\nhost: XXXXXXXX.XXXXXXXXX.XXX\ndate: Fri, 02 Aug 2024 03:55:51 GMT\ndigest: SHA-256=FOpjRKCSWkSEE4WuVsNW42EN4yOwi7NJF4nn9rjOKkI=",
      "algorithm": "RSA-SHA256",
      "keyId": "https://threads.net/ap/users/XXXXXXXXXXXXXXXXX/#main-key"
    }
  },
  "returnValue": null
}
Options:
{
  "attempts": 8,
  "timeout": 300000,
  "backoff": {
    "type": "apBackoff"
  },
  "removeOnComplete": true,
  "removeOnFail": true,
  "delay": 0,
  "timestamp": 1722570264545
}
Error:
Error: Error in actor https://threads.net/ap/users/XXXXXXXXXXXXXXXXX/
StatusError: 500 Internal Server Error
    at getResponse (file:///firefish/packages/backend/built/misc/fetch.js:58:15)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async apGet (file:///firefish/packages/backend/built/remote/activitypub/request.js:51:15)
    at async Resolver.resolve (file:///firefish/packages/backend/built/remote/activitypub/resolver.js:85:47)
    at async createPerson (file:///firefish/packages/backend/built/remote/activitypub/models/person.js:123:21)
    at async resolvePerson (file:///firefish/packages/backend/built/remote/activitypub/models/person.js:500:12)
    at async DbResolver.getAuthUserFromApId (file:///firefish/packages/backend/built/remote/activitypub/db-resolver.js:112:23)
    at async Queue.default (file:///firefish/packages/backend/built/queue/processors/inbox.js:50:24)
    at async /firefish/node_modules/.pnpm/bull@4.15.1/node_modules/bull/lib/p-timeout.js:69:17 {
  statusCode: 500,
  statusMessage: 'Internal Server Error',
  isClientError: false
}
    at Queue.default (file:///firefish/packages/backend/built/queue/processors/inbox.js:58:23)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async /firefish/node_modules/.pnpm/bull@4.15.1/node_modules/bull/lib/p-timeout.js:69:17
Error: Error in actor https://threads.net/ap/users/XXXXXXXXXXXXXXXXX/
StatusError: 500 Internal Server Error
    at getResponse (file:///firefish/packages/backend/built/misc/fetch.js:58:15)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async apGet (file:///firefish/packages/backend/built/remote/activitypub/request.js:51:15)
    at async Resolver.resolve (file:///firefish/packages/backend/built/remote/activitypub/resolver.js:85:47)
    at async createPerson (file:///firefish/packages/backend/built/remote/activitypub/models/person.js:123:21)
    at async resolvePerson (file:///firefish/packages/backend/built/remote/activitypub/models/person.js:500:12)
    at async DbResolver.getAuthUserFromApId (file:///firefish/packages/backend/built/remote/activitypub/db-resolver.js:112:23)
    at async Queue.default (file:///firefish/packages/backend/built/queue/processors/inbox.js:50:24)
    at async /firefish/node_modules/.pnpm/bull@4.15.1/node_modules/bull/lib/p-timeout.js:69:17 {
  statusCode: 500,
  statusMessage: 'Internal Server Error',
  isClientError: false
}
    at Queue.default (file:///firefish/packages/backend/built/queue/processors/inbox.js:58:23)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async /firefish/node_modules/.pnpm/bull@4.15.1/node_modules/bull/lib/p-timeout.js:69:17
Error: Error in actor https://threads.net/ap/users/XXXXXXXXXXXXXXXXX/
StatusError: 500 Internal Server Error
    at getResponse (file:///firefish/packages/backend/built/misc/fetch.js:58:15)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async apGet (file:///firefish/packages/backend/built/remote/activitypub/request.js:51:15)
    at async Resolver.resolve (file:///firefish/packages/backend/built/remote/activitypub/resolver.js:85:47)
    at async createPerson (file:///firefish/packages/backend/built/remote/activitypub/models/person.js:123:21)
    at async resolvePerson (file:///firefish/packages/backend/built/remote/activitypub/models/person.js:500:12)
    at async DbResolver.getAuthUserFromApId (file:///firefish/packages/backend/built/remote/activitypub/db-resolver.js:112:23)
    at async Queue.default (file:///firefish/packages/backend/built/queue/processors/inbox.js:50:24)
    at async /firefish/node_modules/.pnpm/bull@4.15.1/node_modules/bull/lib/p-timeout.js:69:17 {
  statusCode: 500,
  statusMessage: 'Internal Server Error',
  isClientError: false
}
    at Queue.default (file:///firefish/packages/backend/built/queue/processors/inbox.js:58:23)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async /firefish/node_modules/.pnpm/bull@4.15.1/node_modules/bull/lib/p-timeout.js:69:17
Error: Error in actor https://threads.net/ap/users/XXXXXXXXXXXXXXXXX/
StatusError: 500 Internal Server Error
    at getResponse (file:///firefish/packages/backend/built/misc/fetch.js:58:15)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async apGet (file:///firefish/packages/backend/built/remote/activitypub/request.js:51:15)
    at async Resolver.resolve (file:///firefish/packages/backend/built/remote/activitypub/resolver.js:85:47)
    at async createPerson (file:///firefish/packages/backend/built/remote/activitypub/models/person.js:123:21)
    at async resolvePerson (file:///firefish/packages/backend/built/remote/activitypub/models/person.js:500:12)
    at async DbResolver.getAuthUserFromApId (file:///firefish/packages/backend/built/remote/activitypub/db-resolver.js:112:23)
    at async Queue.default (file:///firefish/packages/backend/built/queue/processors/inbox.js:50:24)
    at async /firefish/node_modules/.pnpm/bull@4.15.1/node_modules/bull/lib/p-timeout.js:69:17 {
  statusCode: 500,
  statusMessage: 'Internal Server Error',
  isClientError: false
}
    at Queue.default (file:///firefish/packages/backend/built/queue/processors/inbox.js:58:23)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async /firefish/node_modules/.pnpm/bull@4.15.1/node_modules/bull/lib/p-timeout.js:69:17
Error: Error in actor https://threads.net/ap/users/XXXXXXXXXXXXXXXXX/
StatusError: 500 Internal Server Error
    at getResponse (file:///firefish/packages/backend/built/misc/fetch.js:58:15)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async apGet (file:///firefish/packages/backend/built/remote/activitypub/request.js:51:15)
    at async Resolver.resolve (file:///firefish/packages/backend/built/remote/activitypub/resolver.js:85:47)
    at async createPerson (file:///firefish/packages/backend/built/remote/activitypub/models/person.js:123:21)
    at async resolvePerson (file:///firefish/packages/backend/built/remote/activitypub/models/person.js:500:12)
    at async DbResolver.getAuthUserFromApId (file:///firefish/packages/backend/built/remote/activitypub/db-resolver.js:112:23)
    at async Queue.default (file:///firefish/packages/backend/built/queue/processors/inbox.js:50:24)
    at async /firefish/node_modules/.pnpm/bull@4.15.1/node_modules/bull/lib/p-timeout.js:69:17 {
  statusCode: 500,
  statusMessage: 'Internal Server Error',
  isClientError: false
}
    at Queue.default (file:///firefish/packages/backend/built/queue/processors/inbox.js:58:23)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async /firefish/node_modules/.pnpm/bull@4.15.1/node_modules/bull/lib/p-timeout.js:69:17
Error: Error in actor https://threads.net/ap/users/XXXXXXXXXXXXXXXXX/
StatusError: 500 Internal Server Error
    at getResponse (file:///firefish/packages/backend/built/misc/fetch.js:58:15)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async apGet (file:///firefish/packages/backend/built/remote/activitypub/request.js:51:15)
    at async Resolver.resolve (file:///firefish/packages/backend/built/remote/activitypub/resolver.js:85:47)
    at async createPerson (file:///firefish/packages/backend/built/remote/activitypub/models/person.js:123:21)
    at async resolvePerson (file:///firefish/packages/backend/built/remote/activitypub/models/person.js:500:12)
    at async DbResolver.getAuthUserFromApId (file:///firefish/packages/backend/built/remote/activitypub/db-resolver.js:112:23)
    at async Queue.default (file:///firefish/packages/backend/built/queue/processors/inbox.js:50:24)
    at async /firefish/node_modules/.pnpm/bull@4.15.1/node_modules/bull/lib/p-timeout.js:69:17 {
  statusCode: 500,
  statusMessage: 'Internal Server Error',
  isClientError: false
}
    at Queue.default (file:///firefish/packages/backend/built/queue/processors/inbox.js:58:23)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async /firefish/node_modules/.pnpm/bull@4.15.1/node_modules/bull/lib/p-timeout.js:69:17
Error: Error in actor https://threads.net/ap/users/XXXXXXXXXXXXXXXXX/
StatusError: 500 Internal Server Error
    at getResponse (file:///firefish/packages/backend/built/misc/fetch.js:58:15)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async apGet (file:///firefish/packages/backend/built/remote/activitypub/request.js:51:15)
    at async Resolver.resolve (file:///firefish/packages/backend/built/remote/activitypub/resolver.js:85:47)
    at async createPerson (file:///firefish/packages/backend/built/remote/activitypub/models/person.js:123:21)
    at async resolvePerson (file:///firefish/packages/backend/built/remote/activitypub/models/person.js:500:12)
    at async DbResolver.getAuthUserFromApId (file:///firefish/packages/backend/built/remote/activitypub/db-resolver.js:112:23)
    at async Queue.default (file:///firefish/packages/backend/built/queue/processors/inbox.js:50:24)
    at async /firefish/node_modules/.pnpm/bull@4.15.1/node_modules/bull/lib/p-timeout.js:69:17 {
  statusCode: 500,
  statusMessage: 'Internal Server Error',
  isClientError: false
}
    at Queue.default (file:///firefish/packages/backend/built/queue/processors/inbox.js:58:23)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async /firefish/node_modules/.pnpm/bull@4.15.1/node_modules/bull/lib/p-timeout.js:69:17

After clearing all those jobs, I tried to lookup a threads user who I happen to know has federation enabled, and I saw this log in the journal

Aug 02 10:41:07 llama firefish-web[807112]:  INFO 1        [remote resolve-user]        return new remote user: xxxxxxxxxxx@threads.net
Aug 02 10:41:07 llama firefish-web[807112]:  INFO 1        [remote ap]        Resolving: https://threads.net/ap/users/xxxxxxxxxxxxxxxxx/
Aug 02 10:41:07 llama firefish-web[807112]:  INFO 1        [remote ap]        Getting object from remote, authenticated as user YYYYYYYYYYYYYYYY
Aug 02 10:41:08 llama firefish-web[807112]:  WARN 1        [api]        failed to resolve remote user: StatusError: 500 Internal Server Error

When I browsed to the (unredacted) url https://threads.net/ap/users/xxxxxxxxxxxxxxxxx/ I got this response

{"success":false,"error":"Not found"}
*Author: Benny Powers* In the mean time i've added a privacy policy and enabled the public feed, which are the main requirements afaict. I'm nonetheless unable to lookup threads users. Perhaps I have some corrupted db entries or something? I have a bunch of jobs queued up in the Bull Dashboard, related to threads.net. Here's an example job. I hope this provides some clarity. <details><summary>Data</summary> ```json { "jobData": { "activity": { "@context": [ "https://www.w3.org/ns/activitystreams" ], "id": "https://threads.net/ap/users/XXXXXXXXXXXXXXXXX/post/XXXXXXXXXXXXXXXXX/#delete", "type": "Delete", "actor": "https://threads.net/ap/users/XXXXXXXXXXXXXXXXX/", "to": [ "https://www.w3.org/ns/activitystreams#Public" ], "object": { "id": "https://threads.net/ap/users/XXXXXXXXXXXXXXXXX/post/XXXXXXXXXXXXXXXXX/", "type": "Tombstone" } }, "signature": { "scheme": "Signature", "params": { "keyId": "https://threads.net/ap/users/XXXXXXXXXXXXXXXXX/#main-key", "algorithm": "rsa-sha256", "headers": [ "(request-target)", "host", "date", "digest" ], "signature": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" }, "signingString": "(request-target): post /inbox\nhost: XXXXXXXX.XXXXXXXXX.XXX\ndate: Fri, 02 Aug 2024 03:55:51 GMT\ndigest: SHA-256=FOpjRKCSWkSEE4WuVsNW42EN4yOwi7NJF4nn9rjOKkI=", "algorithm": "RSA-SHA256", "keyId": "https://threads.net/ap/users/XXXXXXXXXXXXXXXXX/#main-key" } }, "returnValue": null } ``` </details> <details><summary>Options:</summary> ```json { "attempts": 8, "timeout": 300000, "backoff": { "type": "apBackoff" }, "removeOnComplete": true, "removeOnFail": true, "delay": 0, "timestamp": 1722570264545 } ``` </details> <details><summary>Error:</summary> ``` Error: Error in actor https://threads.net/ap/users/XXXXXXXXXXXXXXXXX/ StatusError: 500 Internal Server Error at getResponse (file:///firefish/packages/backend/built/misc/fetch.js:58:15) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async apGet (file:///firefish/packages/backend/built/remote/activitypub/request.js:51:15) at async Resolver.resolve (file:///firefish/packages/backend/built/remote/activitypub/resolver.js:85:47) at async createPerson (file:///firefish/packages/backend/built/remote/activitypub/models/person.js:123:21) at async resolvePerson (file:///firefish/packages/backend/built/remote/activitypub/models/person.js:500:12) at async DbResolver.getAuthUserFromApId (file:///firefish/packages/backend/built/remote/activitypub/db-resolver.js:112:23) at async Queue.default (file:///firefish/packages/backend/built/queue/processors/inbox.js:50:24) at async /firefish/node_modules/.pnpm/bull@4.15.1/node_modules/bull/lib/p-timeout.js:69:17 { statusCode: 500, statusMessage: 'Internal Server Error', isClientError: false } at Queue.default (file:///firefish/packages/backend/built/queue/processors/inbox.js:58:23) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async /firefish/node_modules/.pnpm/bull@4.15.1/node_modules/bull/lib/p-timeout.js:69:17 Error: Error in actor https://threads.net/ap/users/XXXXXXXXXXXXXXXXX/ StatusError: 500 Internal Server Error at getResponse (file:///firefish/packages/backend/built/misc/fetch.js:58:15) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async apGet (file:///firefish/packages/backend/built/remote/activitypub/request.js:51:15) at async Resolver.resolve (file:///firefish/packages/backend/built/remote/activitypub/resolver.js:85:47) at async createPerson (file:///firefish/packages/backend/built/remote/activitypub/models/person.js:123:21) at async resolvePerson (file:///firefish/packages/backend/built/remote/activitypub/models/person.js:500:12) at async DbResolver.getAuthUserFromApId (file:///firefish/packages/backend/built/remote/activitypub/db-resolver.js:112:23) at async Queue.default (file:///firefish/packages/backend/built/queue/processors/inbox.js:50:24) at async /firefish/node_modules/.pnpm/bull@4.15.1/node_modules/bull/lib/p-timeout.js:69:17 { statusCode: 500, statusMessage: 'Internal Server Error', isClientError: false } at Queue.default (file:///firefish/packages/backend/built/queue/processors/inbox.js:58:23) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async /firefish/node_modules/.pnpm/bull@4.15.1/node_modules/bull/lib/p-timeout.js:69:17 Error: Error in actor https://threads.net/ap/users/XXXXXXXXXXXXXXXXX/ StatusError: 500 Internal Server Error at getResponse (file:///firefish/packages/backend/built/misc/fetch.js:58:15) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async apGet (file:///firefish/packages/backend/built/remote/activitypub/request.js:51:15) at async Resolver.resolve (file:///firefish/packages/backend/built/remote/activitypub/resolver.js:85:47) at async createPerson (file:///firefish/packages/backend/built/remote/activitypub/models/person.js:123:21) at async resolvePerson (file:///firefish/packages/backend/built/remote/activitypub/models/person.js:500:12) at async DbResolver.getAuthUserFromApId (file:///firefish/packages/backend/built/remote/activitypub/db-resolver.js:112:23) at async Queue.default (file:///firefish/packages/backend/built/queue/processors/inbox.js:50:24) at async /firefish/node_modules/.pnpm/bull@4.15.1/node_modules/bull/lib/p-timeout.js:69:17 { statusCode: 500, statusMessage: 'Internal Server Error', isClientError: false } at Queue.default (file:///firefish/packages/backend/built/queue/processors/inbox.js:58:23) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async /firefish/node_modules/.pnpm/bull@4.15.1/node_modules/bull/lib/p-timeout.js:69:17 Error: Error in actor https://threads.net/ap/users/XXXXXXXXXXXXXXXXX/ StatusError: 500 Internal Server Error at getResponse (file:///firefish/packages/backend/built/misc/fetch.js:58:15) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async apGet (file:///firefish/packages/backend/built/remote/activitypub/request.js:51:15) at async Resolver.resolve (file:///firefish/packages/backend/built/remote/activitypub/resolver.js:85:47) at async createPerson (file:///firefish/packages/backend/built/remote/activitypub/models/person.js:123:21) at async resolvePerson (file:///firefish/packages/backend/built/remote/activitypub/models/person.js:500:12) at async DbResolver.getAuthUserFromApId (file:///firefish/packages/backend/built/remote/activitypub/db-resolver.js:112:23) at async Queue.default (file:///firefish/packages/backend/built/queue/processors/inbox.js:50:24) at async /firefish/node_modules/.pnpm/bull@4.15.1/node_modules/bull/lib/p-timeout.js:69:17 { statusCode: 500, statusMessage: 'Internal Server Error', isClientError: false } at Queue.default (file:///firefish/packages/backend/built/queue/processors/inbox.js:58:23) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async /firefish/node_modules/.pnpm/bull@4.15.1/node_modules/bull/lib/p-timeout.js:69:17 Error: Error in actor https://threads.net/ap/users/XXXXXXXXXXXXXXXXX/ StatusError: 500 Internal Server Error at getResponse (file:///firefish/packages/backend/built/misc/fetch.js:58:15) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async apGet (file:///firefish/packages/backend/built/remote/activitypub/request.js:51:15) at async Resolver.resolve (file:///firefish/packages/backend/built/remote/activitypub/resolver.js:85:47) at async createPerson (file:///firefish/packages/backend/built/remote/activitypub/models/person.js:123:21) at async resolvePerson (file:///firefish/packages/backend/built/remote/activitypub/models/person.js:500:12) at async DbResolver.getAuthUserFromApId (file:///firefish/packages/backend/built/remote/activitypub/db-resolver.js:112:23) at async Queue.default (file:///firefish/packages/backend/built/queue/processors/inbox.js:50:24) at async /firefish/node_modules/.pnpm/bull@4.15.1/node_modules/bull/lib/p-timeout.js:69:17 { statusCode: 500, statusMessage: 'Internal Server Error', isClientError: false } at Queue.default (file:///firefish/packages/backend/built/queue/processors/inbox.js:58:23) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async /firefish/node_modules/.pnpm/bull@4.15.1/node_modules/bull/lib/p-timeout.js:69:17 Error: Error in actor https://threads.net/ap/users/XXXXXXXXXXXXXXXXX/ StatusError: 500 Internal Server Error at getResponse (file:///firefish/packages/backend/built/misc/fetch.js:58:15) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async apGet (file:///firefish/packages/backend/built/remote/activitypub/request.js:51:15) at async Resolver.resolve (file:///firefish/packages/backend/built/remote/activitypub/resolver.js:85:47) at async createPerson (file:///firefish/packages/backend/built/remote/activitypub/models/person.js:123:21) at async resolvePerson (file:///firefish/packages/backend/built/remote/activitypub/models/person.js:500:12) at async DbResolver.getAuthUserFromApId (file:///firefish/packages/backend/built/remote/activitypub/db-resolver.js:112:23) at async Queue.default (file:///firefish/packages/backend/built/queue/processors/inbox.js:50:24) at async /firefish/node_modules/.pnpm/bull@4.15.1/node_modules/bull/lib/p-timeout.js:69:17 { statusCode: 500, statusMessage: 'Internal Server Error', isClientError: false } at Queue.default (file:///firefish/packages/backend/built/queue/processors/inbox.js:58:23) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async /firefish/node_modules/.pnpm/bull@4.15.1/node_modules/bull/lib/p-timeout.js:69:17 Error: Error in actor https://threads.net/ap/users/XXXXXXXXXXXXXXXXX/ StatusError: 500 Internal Server Error at getResponse (file:///firefish/packages/backend/built/misc/fetch.js:58:15) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async apGet (file:///firefish/packages/backend/built/remote/activitypub/request.js:51:15) at async Resolver.resolve (file:///firefish/packages/backend/built/remote/activitypub/resolver.js:85:47) at async createPerson (file:///firefish/packages/backend/built/remote/activitypub/models/person.js:123:21) at async resolvePerson (file:///firefish/packages/backend/built/remote/activitypub/models/person.js:500:12) at async DbResolver.getAuthUserFromApId (file:///firefish/packages/backend/built/remote/activitypub/db-resolver.js:112:23) at async Queue.default (file:///firefish/packages/backend/built/queue/processors/inbox.js:50:24) at async /firefish/node_modules/.pnpm/bull@4.15.1/node_modules/bull/lib/p-timeout.js:69:17 { statusCode: 500, statusMessage: 'Internal Server Error', isClientError: false } at Queue.default (file:///firefish/packages/backend/built/queue/processors/inbox.js:58:23) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async /firefish/node_modules/.pnpm/bull@4.15.1/node_modules/bull/lib/p-timeout.js:69:17 ``` </details> After clearing all those jobs, I tried to lookup a threads user who I happen to know has federation enabled, and I saw this log in the journal ``` Aug 02 10:41:07 llama firefish-web[807112]: INFO 1 [remote resolve-user] return new remote user: xxxxxxxxxxx@threads.net Aug 02 10:41:07 llama firefish-web[807112]: INFO 1 [remote ap] Resolving: https://threads.net/ap/users/xxxxxxxxxxxxxxxxx/ Aug 02 10:41:07 llama firefish-web[807112]: INFO 1 [remote ap] Getting object from remote, authenticated as user YYYYYYYYYYYYYYYY Aug 02 10:41:08 llama firefish-web[807112]: WARN 1 [api] failed to resolve remote user: StatusError: 500 Internal Server Error ``` When I browsed to the (unredacted) url https://threads.net/ap/users/xxxxxxxxxxxxxxxxx/ I got this response ```json {"success":false,"error":"Not found"} ```
Author
Owner

Author: Benny Powers

Thanks for the insights that was helpful. It doesn't appear that my instance is on Threads.net's, block list. I did enabled the public feed and added a ToS link. I don't think there's a privacy policy field in control panel.

*Author: Benny Powers* Thanks for the insights that was helpful. It doesn't appear that my instance is on Threads.net's, block list. I did enabled the public feed and added a ToS link. I don't think there's a privacy policy field in control panel.
Author
Owner

Author: naskya

At the very least, the fact that some servers can federate with threads.net shows that the server implementation is compatible. So I don’t see this issue as a Firefish bug.

(and iirc even mastodon.social had been blocked by threads a while ago)

*Author: naskya* At the very least, the fact that some servers can federate with threads.net shows that the server implementation is compatible. So I don’t see this issue as a Firefish bug. (and iirc even mastodon.social had been blocked by threads a while ago)
Author
Owner

Author: naskya

Isn’t your server blocked by Threads? There are some criteria for your server to federate with Threads.

A server may be added to our server blocklist if it doesn’t comply with our guidelines for communicating with Threads, including if it:

  • Repeatedly or severely fails to meet our Community Guidelines, Instagram Terms of Use, or Threads Terms of Use, including via admins or moderators;
  • Doesn’t respect requests sent on behalf of users to delete Threads information shared to the fediverse;
  • Doesn't have a sufficient privacy policy; or
  • Doesn't have a publicly accessible feed

https://help.instagram.com/914046486923176/

From what I’ve heard, some servers that have a privacy policy page and public timelines are able to federate with Threads, and other servers are not.

[remote ap] Unrecognized activity type: View

This log is interesting, though (but again, I’ve heard reports that some servers are federating with threads.net, and I doubt it is something we can fix on our end)

*Author: naskya* Isn’t your server blocked by Threads? There are some criteria for your server to federate with Threads. > A server may be added to our server blocklist if it doesn’t comply with our guidelines for communicating with Threads, including if it: > > * Repeatedly or severely fails to meet our Community Guidelines, Instagram Terms of Use, or Threads Terms of Use, including via admins or moderators; > * Doesn’t respect requests sent on behalf of users to delete Threads information shared to the fediverse; > * Doesn't have a sufficient privacy policy; or > * Doesn't have a publicly accessible feed > > <https://help.instagram.com/914046486923176/> From what I’ve heard, some servers that have a privacy policy page and public timelines are able to federate with Threads, and other servers are not. > `[remote ap] Unrecognized activity type: View` This log is interesting, though (but again, I’ve heard reports that some servers are federating with threads.net, and I doubt it is something we can fix on our end)
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
naskya/test#166
No description provided.