From 49c8d2f8843940f04b6856b32a693a2f6e493d89 Mon Sep 17 00:00:00 2001 From: snowak-homeoffice Date: Mon, 16 Mar 2026 13:42:43 +0100 Subject: [PATCH] Preserve HTTPException in filter endpoints --- examples/filters/rate_limit_filter_pipeline.py | 6 +++++- main.py | 4 ++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/examples/filters/rate_limit_filter_pipeline.py b/examples/filters/rate_limit_filter_pipeline.py index d1e88236..4f8a8872 100644 --- a/examples/filters/rate_limit_filter_pipeline.py +++ b/examples/filters/rate_limit_filter_pipeline.py @@ -1,5 +1,6 @@ import os from typing import List, Optional +from fastapi import HTTPException from pydantic import BaseModel from schemas import OpenAIChatMessage import time @@ -121,7 +122,10 @@ async def inlet(self, body: dict, user: Optional[dict] = None) -> dict: if user.get("role", "admin") == "user": user_id = user["id"] if user and "id" in user else "default_user" if self.rate_limited(user_id): - raise Exception("Rate limit exceeded. Please try again later.") + raise HTTPException( + status_code=429, + detail="Rate limit exceeded. Please try again later.", + ) self.log_request(user_id) return body diff --git a/main.py b/main.py index e277d3a3..6233fa30 100644 --- a/main.py +++ b/main.py @@ -616,6 +616,8 @@ async def filter_inlet(pipeline_id: str, form_data: FilterForm): return body else: return form_data.body + except HTTPException: + raise except Exception as e: print(e) raise HTTPException( @@ -648,6 +650,8 @@ async def filter_outlet(pipeline_id: str, form_data: FilterForm): return body else: return form_data.body + except HTTPException: + raise except Exception as e: print(e) raise HTTPException(