diff --git a/framework/python/src/api/api.py b/framework/python/src/api/api.py index 719710694..041be4cc9 100644 --- a/framework/python/src/api/api.py +++ b/framework/python/src/api/api.py @@ -681,6 +681,12 @@ async def update_profile(self, request: Request, response: Response): LOGGER.debug("Received profile update request") + # Check if the profiles format was loaded correctly + if self.get_session().get_profiles_format() is None: + response.status_code = status.HTTP_501_NOT_IMPLEMENTED + return self._generate_msg(False, + "Risk profiles are not available right now") + try: req_raw = (await request.body()).decode("UTF-8") req_json = json.loads(req_raw) @@ -696,6 +702,7 @@ async def update_profile(self, request: Request, response: Response): profile = self.get_session().get_profile(profile_name) if profile is None: + # Create new profile profile = self.get_session().update_profile(req_json) diff --git a/framework/python/src/common/session.py b/framework/python/src/common/session.py index 02d46591e..29279abc2 100644 --- a/framework/python/src/common/session.py +++ b/framework/python/src/common/session.py @@ -376,6 +376,10 @@ def _load_profiles(self): 'An error occurred whilst loading the risk assessment format') LOGGER.debug(e) + # If the format JSON fails to load, skip loading profiles + LOGGER.error('Profiles will not be loaded') + return + profile_format_array = [] # Remove internal properties