diff --git a/moulinette/interfaces/api.py b/moulinette/interfaces/api.py index 98a95c1d..38a0f98b 100644 --- a/moulinette/interfaces/api.py +++ b/moulinette/interfaces/api.py @@ -362,13 +362,24 @@ class _ActionsMapPlugin(object): """ # Retrieve session values - s_id = request.get_cookie("session.id") or random_ascii() + try: + s_id = request.get_cookie("session.id") or random_ascii() + except: + # Super rare case where there are super weird cookie / cache issue + # Previous line throws a CookieError that creates a 500 error ... + # So let's catch it and just use a fresh ID then... + s_id = random_ascii() + try: s_secret = self.secrets[s_id] except KeyError: s_tokens = {} else: - s_tokens = request.get_cookie("session.tokens", secret=s_secret) or {} + try: + s_tokens = request.get_cookie("session.tokens", secret=s_secret) or {} + except: + # Same as for session.id a few lines before + s_tokens = {} s_new_token = random_ascii() try: