From cedcece0ccba626d97a910f2e3fecf93c2729ca4 Mon Sep 17 00:00:00 2001
From: Claire <claire.github-309c@sitedethib.com>
Date: Wed, 5 Oct 2022 00:16:40 +0200
Subject: [PATCH] Fix deleted pinned posts potentially counting towards the
 pinned posts limit (#19005)

Fixes #18938
---
 app/controllers/api/v1/statuses_controller.rb | 1 +
 app/services/remove_status_service.rb         | 2 ++
 2 files changed, 3 insertions(+)

diff --git a/app/controllers/api/v1/statuses_controller.rb b/app/controllers/api/v1/statuses_controller.rb
index 9270117da..1cc5aa32e 100644
--- a/app/controllers/api/v1/statuses_controller.rb
+++ b/app/controllers/api/v1/statuses_controller.rb
@@ -77,6 +77,7 @@ class Api::V1::StatusesController < Api::BaseController
     authorize @status, :destroy?
 
     @status.discard
+    StatusPin.find_by(status: @status)&.destroy
     @status.account.statuses_count = @status.account.statuses_count - 1
     json = render_to_body json: @status, serializer: REST::StatusSerializer, source_requested: true
 
diff --git a/app/services/remove_status_service.rb b/app/services/remove_status_service.rb
index 8dc521eed..f9fdea2cb 100644
--- a/app/services/remove_status_service.rb
+++ b/app/services/remove_status_service.rb
@@ -21,6 +21,8 @@ class RemoveStatusService < BaseService
     with_lock("distribute:#{@status.id}") do
       @status.discard
 
+      StatusPin.find_by(status: @status)&.destroy
+
       remove_from_self if @account.local?
       remove_from_followers
       remove_from_lists