diff --git a/fastapi/routing.py b/fastapi/routing.py index 41f83fff0..d1ecab7d0 100644 --- a/fastapi/routing.py +++ b/fastapi/routing.py @@ -931,11 +931,12 @@ class APIRouter(routing.Router): auto_options_index: Optional[int] = None allowed_methods: Set[str] = set() for index, route in enumerate(self.routes): - if route.path == new_route.path: - if hasattr(route, "is_auto_options") and route.is_auto_options: - auto_options_index = index - else: - allowed_methods.update(route.methods) + if isinstance(route, APIRoute): + if route.path == new_route.path: + if hasattr(route, "is_auto_options") and route.is_auto_options: + auto_options_index = index + else: + allowed_methods.update(route.methods) if auto_options_index is not None: self.routes.pop(auto_options_index)