Peertube: `Accept` activity has an illegal id and refers to a nonexisting object

Created on 23 Oct 2020  ·  14Comments  ·  Source: Chocobozzz/PeerTube



What happened?

On following a channel, an Accept message like this is sent to my instance:

%{
  "actor" => "https://peertube.ch/video-channels/gabyweber_german"
,
  "cc" => ["https://peertubetest.ngrok.io/users/lain"]
  "id" => "https://peertubetest.ngrok.io/users/lain/accepts/follow
s/1764",
  "nickname" => "lain",
  "object" => %{ 
    "actor" => "https://peertubetest.ngrok.io/users/lain",
    "id" => "https://peertubetest.ngrok.io/users/lain/follows/1764
",
    "object" => "https://peertube.ch/video-channels/gabyweber_germ
an",
    "type" => "Follow"
  },
  "type" => "Accept"
}

This seems wrong. It's both trying to send me an accept that seemingly comes from my own instance (see the id), but it also makes up a new Follow from me.

What do you expect to happen instead?

The Accept message should refer to the original Follow activity and not make up a new one. It should also have a valid id itself.

Additional information

  • Link to browser console log if useful:
  • Link to server log if useful (journalctl or /var/www/peertube/storage/logs/):
Component Type

All 14 comments

Hi all,
Without contributing anything technical, I just would like to put some context around this issue. Several Pleroma users (me included) have reported issues with following Peertube channels: https://git.pleroma.social/pleroma/pleroma/-/issues/364

This thread was opened as part of that troubleshooting / identification of where the problem lies.

Hello,

Thanks for the issue, and sorry for the bug in Pleroma. I cleaned up AP IDs in https://github.com/Chocobozzz/PeerTube/commit/de94ac86a211dec657332d964693857ec235ce40 so it should fix this issue.

You can test to follow a channel on https://peertube2.cpy.re/ next week

Has this problem really been resolved?
I've tried following peertube (version 3.0.0-rc.1-nightly-2020-12-18) accounts from multiple pleroma servers (version 2.2.50) with no success. Has anyone else had success?

@ghplpt yes it should. Which account did you try to follow?

I just tried https://video.colibris-outilslibres.org/accounts/colibris using pleroma.com and it seems to work.

@Chocobozzz
I tried to follow multiple accounts on https://peertube2.cpy.re/, but no luck.

After reading your comment, I also created an account at pleroma.com and tried to follow https://video.colibris-outilslibres.org/accounts/colibris, but that didn't work either. The only thing I get is "request sent".

I tested from multiple browsers, so it can't be due to browser add-ons or settings. What's the difference?

image

What if you refresh this page? I have this Request sent! button, but after a refresh I see the Following button

Try with [email protected]

I tried following [email protected] and refreshing the page, but the display is still "Request sent!”
The same goes for the other accounts I tried to follow.

I tested it and checked the accept coming from peertube, it works and the accept seems correct to me now.

What if you refresh this page? I have this _Request sent!_ button, but after a refresh I see the _Following_ button

Try with [email protected]

Works for me.
With this account, but not for account on my instance (2.4.0).

This does not seem to be fixed in peertube 3.0.0
I am able to follow [email protected] from my pleroma but no account on v.basspistol.org which was just upgraded to 3.0.0

edit: seems like it wasn't merged with the 3.0.0 release...

Actually, it used to work with [email protected] but unfollowing and refollowing i get the same error on that account too.

The plot thickens: It _does_ work on accounts i have not previously sent a request to... To add to the oddness, _one_ account on the pleroma is able to follow peertube accounts, not all pleroma accounts.... :thinking:
(sorry for the noise)

Found a work around:
Pleroma Front-End doesn't seem to give a way to revoke a request. However other clients do. Using Husky, i was able to revoke the request from the problematic account and re-request. This way it follows immediately. \o/

Makes me do the uneducated guess that i should probably report this on pleroma-FE, if it isn't already reported.

I also just upgraded my PeerTube to 3.0.0 and tried to follow myself again from Pleroma, which fails. The PeerTube log indicates that the id field of the Follow within the Accept is empty, which it considers invalid so the Accept is not sent.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

tcitworld picture tcitworld  ·  3Comments

XenonFiber picture XenonFiber  ·  3Comments

Angedestenebres picture Angedestenebres  ·  3Comments

JohnXLivingston picture JohnXLivingston  ·  3Comments

NoraCodes picture NoraCodes  ·  3Comments