diff --git a/addons/utm/models/ir_http.py b/addons/utm/models/ir_http.py index dd0a93d3976f9..5c527fc276bdb 100644 --- a/addons/utm/models/ir_http.py +++ b/addons/utm/models/ir_http.py @@ -10,8 +10,16 @@ def get_utm_domain_cookies(self): return request.httprequest.host def _dispatch(self): + tracked_fields = self.pool['utm.mixin'].tracking_fields() + response = super(ir_http, self)._dispatch() - for var, dummy, cook in self.pool['utm.mixin'].tracking_fields(): + + # no set_cookie on Exception + if isinstance(response, Exception): + return response + + for var, dummy, cook in tracked_fields: if var in request.params and request.httprequest.cookies.get(var) != request.params[var]: response.set_cookie(cook, request.params[var], domain=self.get_utm_domain_cookies()) + return response