diff --git a/kubernetes/base/dynamic/discovery.py b/kubernetes/base/dynamic/discovery.py index c00dfa3ef8..3dd28af268 100644 --- a/kubernetes/base/dynamic/discovery.py +++ b/kubernetes/base/dynamic/discovery.py @@ -22,6 +22,7 @@ from collections import defaultdict from abc import abstractmethod, abstractproperty +from json.decoder import JSONDecodeError from urllib3.exceptions import ProtocolError, MaxRetryError from kubernetes import __version__ @@ -164,7 +165,8 @@ def get_resources_for_api_version(self, prefix, group, version, preferred): path = '/'.join(filter(None, [prefix, group, version])) try: resources_response = self.client.request('GET', path).resources or [] - except ServiceUnavailableError: + except (ServiceUnavailableError, JSONDecodeError): + # Handle both service unavailable errors and JSON decode errors resources_response = [] resources_raw = list(filter(lambda resource: '/' not in resource['name'], resources_response))