1--- before/lib/ansible/galaxy/api.py
2+++ after/lib/ansible/galaxy/api.py
3@@ -21,7 +21,7 @@
4 from ansible.galaxy.user_agent import user_agent
5 from ansible.module_utils.six import string_types
6 from ansible.module_utils.six.moves.urllib.error import HTTPError
7-from ansible.module_utils.six.moves.urllib.parse import quote as urlquote, urlencode, urlparse
8+from ansible.module_utils.six.moves.urllib.parse import quote as urlquote, urlencode, urlparse, parse_qs
9 from ansible.module_utils._text import to_bytes, to_native, to_text
10 from ansible.module_utils.urls import open_url, prepare_multipart
11 from ansible.utils.display import Display
12@@ -312,6 +312,7 @@
13     def _call_galaxy(self, url, args=None, headers=None, method=None, auth_required=False, error_context_msg=None,
14                      cache=False):
15         url_info = urlparse(url)
16+        query = parse_qs(url_info.query)
17         cache_id = get_cache_id(url)
18         if cache and self._cache:
19             server_cache = self._cache.setdefault(cache_id, {})
20@@ -342,7 +343,7 @@
21
22                 return res
23
24-            elif not url_info.query:
25+            elif 'page' not in query:
26                 # The cache entry had expired or does not exist, start a new blank entry to be filled later.
27                 expires = datetime.datetime.utcnow()
28                 expires += datetime.timedelta(days=1)
29@@ -781,7 +782,7 @@
30             api_path = self.available_api_versions['v2']
31             pagination_path = ['next']
32
33-        versions_url = _urljoin(self.api_server, api_path, 'collections', namespace, name, 'versions', '/')
34+        versions_url = _urljoin(self.api_server, api_path, 'collections', namespace, name, 'versions', '?page_size=100')
35         versions_url_info = urlparse(versions_url)
36
37         # We should only rely on the cache if the collection has not changed. This may slow things down but it ensures
38