diff --git a/lib/federation/activity_pub/activity_pub.ex b/lib/federation/activity_pub/activity_pub.ex
index 67be09626..a46a02cbb 100644
--- a/lib/federation/activity_pub/activity_pub.ex
+++ b/lib/federation/activity_pub/activity_pub.ex
@@ -824,10 +824,7 @@ defmodule Mobilizon.Federation.ActivityPub do
            Mobilizon.Service.Activity.Member.insert_activity(member,
              subject: "member_approved"
            ),
-         _ <-
-           unless(is_nil(member.parent.domain),
-             do: Refresher.fetch_group(member.parent.url, member.actor)
-           ),
+         _ <- maybe_refresh_group(member),
          Absinthe.Subscription.publish(Endpoint, member.actor,
            group_membership_changed: [
              Actor.preferred_username_and_domain(member.parent),
@@ -866,6 +863,7 @@ defmodule Mobilizon.Federation.ActivityPub do
            Mobilizon.Service.Activity.Member.insert_activity(member,
              subject: "member_accepted_invitation"
            ),
+         _ <- maybe_refresh_group(member),
          accept_data <- %{
            "type" => "Accept",
            "attributedTo" => member.parent.url,
@@ -879,6 +877,14 @@ defmodule Mobilizon.Federation.ActivityPub do
     end
   end
 
+  defp maybe_refresh_group(%Member{
+         parent: %Actor{domain: parent_domain, url: parent_url},
+         actor: %Actor{} = actor
+       }) do
+    unless is_nil(parent_domain),
+      do: Refresher.fetch_group(parent_url, actor)
+  end
+
   @spec reject_join(Participant.t(), map()) :: {:ok, Participant.t(), Activity.t()} | any()
   defp reject_join(%Participant{} = participant, additional) do
     with {:ok, %Participant{} = participant} <-
diff --git a/lib/graphql/resolvers/member.ex b/lib/graphql/resolvers/member.ex
index 8af57bba5..7db30908f 100644
--- a/lib/graphql/resolvers/member.ex
+++ b/lib/graphql/resolvers/member.ex
@@ -109,8 +109,6 @@ defmodule Mobilizon.GraphQL.Resolvers.Member do
              member,
              true
            ) do
-      # Launch an async task to refresh the group profile, fetch resources, discussions, members
-      Refresher.fetch_group(member.parent.url, actor)
       {:ok, member}
     else
       {:is_same_actor, false} ->