diff --git a/lib/graphql/api/search.ex b/lib/graphql/api/search.ex
index 090eccf1d..f5b342256 100644
--- a/lib/graphql/api/search.ex
+++ b/lib/graphql/api/search.ex
@@ -94,9 +94,13 @@ defmodule Mobilizon.GraphQL.API.Search do
   @spec process_from_username(String.t()) :: Page.t()
   defp process_from_username(search) do
     case ActivityPubActor.find_or_make_actor_from_nickname(search) do
-      {:ok, actor} ->
+      {:ok, %Actor{type: :Group} = actor} ->
         %Page{total: 1, elements: [actor]}
 
+      # Don't return anything else than groups
+      {:ok, %Actor{}} ->
+        %Page{total: 0, elements: []}
+
       {:error, _err} ->
         Logger.debug(fn -> "Unable to find or make actor '#{search}'" end)
 
diff --git a/test/graphql/api/search_test.exs b/test/graphql/api/search_test.exs
index 2d0b1351f..bfd1f4b36 100644
--- a/test/graphql/api/search_test.exs
+++ b/test/graphql/api/search_test.exs
@@ -16,9 +16,11 @@ defmodule Mobilizon.GraphQL.API.SearchTest do
 
   test "search an user by username" do
     with_mock ActivityPubActor,
-      find_or_make_actor_from_nickname: fn "toto@domain.tld" -> {:ok, %Actor{id: 42}} end do
-      assert {:ok, %Page{total: 1, elements: [%Actor{id: 42}]}} ==
-               Search.search_actors(%{term: "toto@domain.tld"}, 1, 10, :Person)
+      find_or_make_actor_from_nickname: fn "toto@domain.tld" ->
+        {:ok, %Actor{id: 42, type: :Group}}
+      end do
+      assert {:ok, %Page{total: 1, elements: [%Actor{id: 42, type: :Group}]}} ==
+               Search.search_actors(%{term: "toto@domain.tld"}, 1, 10, :Group)
 
       assert_called(ActivityPubActor.find_or_make_actor_from_nickname("toto@domain.tld"))
     end