diff --git a/vendor/magento/module-company-graph-ql/Model/Resolver/Company/Roles.php b/vendor/magento/module-company-graph-ql/Model/Resolver/Company/Roles.php
index e287be605b..97587477cb 100644
--- a/vendor/magento/module-company-graph-ql/Model/Resolver/Company/Roles.php
+++ b/vendor/magento/module-company-graph-ql/Model/Resolver/Company/Roles.php
@@ -120,6 +120,8 @@ class Roles implements ResolverInterface
             ->setPageSize($args['pageSize'])
             ->setCurPage($args['currentPage']);
 
+        $companyRolesTotalCount = $companyRoles->getSize();
+
         $companyRoleItems = [];
 
         foreach ($companyRoles as $companyRole) {
@@ -135,14 +137,25 @@ class Roles implements ResolverInterface
         }
 
         $pageSize = $companyRoles->getPageSize();
+        $currentPage = $companyRoles->getCurPage();
+        $totalPages = $companyRolesTotalCount ? ceil($companyRolesTotalCount / $pageSize) : 0;
+
+        if ($currentPage > $totalPages) {
+            throw new GraphQlInputException(
+                __(
+                    'currentPage value %1 specified is greater than the %2 page(s) available.',
+                    [$currentPage, $totalPages]
+                )
+            );
+        }
 
         return [
             'items' => $companyRoleItems,
-            'total_count' => $companyRoles->count(),
+            'total_count' => $companyRolesTotalCount,
             'page_info' => [
                 'page_size' => $pageSize,
-                'current_page' => $companyRoles->getCurPage(),
-                'total_pages' => $pageSize ? ((int)ceil($companyRoles->count() / $pageSize)) : 0,
+                'current_page' => $currentPage,
+                'total_pages' => $totalPages,
             ]
         ];
     }
