Pre-Alpha ActivityPub-related bug reports

I may regret creating this topic but here goes.

If you experience a bug or other unexpected behavior while using NodeBB and its related ActivityPub integration, please post it here so it can be tracked and resolved.

No formal process as of yet, and we're still at pre-alpha so expect many things to be broken or unavailable

1 Like

I received an activity with this ID:

https://community.nodebb.org/post/100125#activity/create/1719328808532#activity/announce/1719328833687

It has two #-signs. I think it is not a valid URI: RFC 3986 - Uniform Resource Identifier (URI): Generic Syntax

A fragment identifier component is indicated by the presence of a number sign (“#”) character and terminated by the end of the URI.

1 Like

@silverpill@socialhub.activitypub.rocks I see it, thanks for reporting, just pushed a fix, let me know if the IDs still look funky.

2 Likes

@the-skyfoxx can confirm this behavior.

/cc @julian any fix comming (soon)?

@macfan hi, to which issue were you referring to?

@julian said in Pre-Alpha ActivityPub-related bug reports:

@macfan hi, to which issue were you referring to?

I think this one: https://community.nodebb.org/topic/17867/pre-alpha-activitypub-related-bug-reports/13?_=1719346171531

But seems to work for me now

@julian The URL of this topic is https://community.nodebb.org/topic/17867/pre-alpha-activitypub-related-bug-reports
When I make a request with AP Accept header, the server responds with a Collection. Technically, this is not wrong, but I think most people would expect a top-level post (Note / Article) when making such request

@silverpill@mitra.social you're the first person to have noticed!

It's by design, but of course, can — and maybe should — change. It's part of @trwnh@mastodon.social's FEP-7888 and its concept of a resolvable collection.

Mapping the topic URL to the top post (or perhaps a redirect to it) would ensure compatibility with Mastodon, but I am unsure of whether that is the best path forward.

1 Like

@julian @silverpill why would anyone expect a Note/Article when fetching the URL for an entire thread/topic?

@julian @silverpill why would anyone expect a Note/Article when fetching the URL for an entire thread/topic?

@trwnh @julian Because it is not clear how client should display this collection. Searching for URL is a common UI pattern: user expects to see a post or a profile as a result (this is not unique to Mastodon).

Server can attempt to fetch the first item in a collection, but NodeBB's FEP-7888 collection doesn't identify itself as a "thread". It has "OrderedCollectionPage" type and properties that many other collections also have

@silverpill@mitra.social said:

NodeBB's FEP-7888 collection doesn't identify itself as a "thread".

That's because I am not aware of a clear way to signal that my collection is a thread.

Lemmy uses as:Page, which is far too generic of an object type to signal as a thread. Mastodon doesn't even have an external concept of a conversation (oStatus conversation notwithstanding)

@trwnh@mastodon.social

2 Likes

@julian Another report: when NodeBB generates an Announce(Create) activity, the ID of Announce has wrong origin. Here's an example:

{
  "@context": "https://www.w3.org/ns/activitystreams",
  "actor": "https://community.nodebb.org/category/30",
  "id": "https://mitra.social/objects/01920059-5b7c-203f-fc4e-285ec442c032#activity/announce/1726582718443",
  "object": ...
  "type": "Announce"
}

ID indicates that activity has originated on my server, but this is not possible :)

@silverpill@mitra.social Got it, thanks!

https://github.com/NodeBB/NodeBB/commit/047d5992dc3dc5b99feccb9e709cb089009f0814

1 Like

@silverpill @julian Searching for the URL should give you what that URL represents. If you want the post, search for the URL of the post specifically.

@julian @silverpill We could define a dedicated type for Thread or Conversation or whatever you want to call "a Collection that contains only "post" objects", but it would still be a Collection as well. I think this was something I was considering for a FEP that I ended up never really writing because it felt unnecessary and also very premature. The general idea is to define some way to know what a Collection "contains" -- is it a Conversation or a MediaAlbum or whatever. The problem is taxonomy

@julian @silverpill Really we need to take a step back and first define what a "post" object is. I'm tentatively leaning toward "any object that has content", but I'm sure there are plenty of edge cases I haven't accounted for that will pop up when thinking more deeply about the issue.

@julian @silverpill Really we need to take a step back and first define what a "post" object is. I'm tentatively leaning toward "any object that has content", but I'm sure there are plenty of edge cases I haven't accounted for that will pop up when thinking more deeply about the issue.

@trwnh @julian @silverpill Content types? Note, Article, Image, Video, Audio, Document? That should cover most Web content collections.

If you want to add an extension (Listicle, say) you could multi-type with the most appropriate Activity Vocabulary content type (`type`: ['buzz:Listicle', 'as:Article']`).

@trwnh @julian @silverpill Content types? Note, Article, Image, Video, Audio, Document? That should cover most Web content collections.

If you want to add an extension (Listicle, say) you could multi-type with the most appropriate Activity Vocabulary content type (`type`: ['buzz:Listicle', 'as:Article']`).