From 6a4db88e5c2d6f0a753d34a55bff789ba19cf47e Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Thu, 30 May 2024 10:28:20 +0200 Subject: [PATCH] Handle 410 HTTP response code for AP objects --- server/core/lib/activitypub/actors/refresh.ts | 6 ++++-- server/core/lib/activitypub/playlists/refresh.ts | 6 ++++-- server/core/lib/activitypub/videos/refresh.ts | 6 ++++-- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/server/core/lib/activitypub/actors/refresh.ts b/server/core/lib/activitypub/actors/refresh.ts index 87f017ae8..a3b2d5966 100644 --- a/server/core/lib/activitypub/actors/refresh.ts +++ b/server/core/lib/activitypub/actors/refresh.ts @@ -57,8 +57,10 @@ async function doRefresh (option return { refreshed: true, actor } } catch (err) { - if ((err as PeerTubeRequestError).statusCode === HttpStatusCode.NOT_FOUND_404) { - logger.info('Deleting actor %s because there is a 404 in refresh actor.', actor.url, lTags()) + const statusCode = (err as PeerTubeRequestError).statusCode + + if (statusCode === HttpStatusCode.NOT_FOUND_404 || statusCode === HttpStatusCode.GONE_410) { + logger.info('Deleting actor %s because there is a 404/410 in refresh actor.', actor.url, lTags()) actor.Account ? await actor.Account.destroy() diff --git a/server/core/lib/activitypub/playlists/refresh.ts b/server/core/lib/activitypub/playlists/refresh.ts index 033a5b64a..288597da7 100644 --- a/server/core/lib/activitypub/playlists/refresh.ts +++ b/server/core/lib/activitypub/playlists/refresh.ts @@ -33,8 +33,10 @@ async function refreshVideoPlaylistIfNeeded (videoPlaylist: MVideoPlaylistOwner) return videoPlaylist } catch (err) { - if ((err as PeerTubeRequestError).statusCode === HttpStatusCode.NOT_FOUND_404) { - logger.info('Cannot refresh not existing playlist %s. Deleting it.', videoPlaylist.url, lTags()) + const statusCode = (err as PeerTubeRequestError).statusCode + + if (statusCode === HttpStatusCode.NOT_FOUND_404 || statusCode === HttpStatusCode.GONE_410) { + logger.info('Cannot refresh not existing playlist (404/410 error code) %s. Deleting it.', videoPlaylist.url, lTags()) await videoPlaylist.destroy() return undefined diff --git a/server/core/lib/activitypub/videos/refresh.ts b/server/core/lib/activitypub/videos/refresh.ts index 59a77ba24..a407843d0 100644 --- a/server/core/lib/activitypub/videos/refresh.ts +++ b/server/core/lib/activitypub/videos/refresh.ts @@ -43,8 +43,10 @@ async function refreshVideoIfNeeded (options: { return video } catch (err) { - if ((err as PeerTubeRequestError).statusCode === HttpStatusCode.NOT_FOUND_404) { - logger.info('Cannot refresh remote video %s: video does not exist anymore. Deleting it.', video.url, lTags()) + const statusCode = (err as PeerTubeRequestError).statusCode + + if (statusCode === HttpStatusCode.NOT_FOUND_404 || statusCode === HttpStatusCode.GONE_410) { + logger.info('Cannot refresh remote video %s: video does not exist anymore (404/410 error code). Deleting it.', video.url, lTags()) // Video does not exist anymore await video.destroy()