#28019 [Bug]: Fallback lookup fails for team-scoped models — model_group uses public name but fallback config requires internal names
### Check for existing issues
- [x] I have searched the existing issues and checked that my issue is not a duplicate.
### What happened?
When a team-scoped BYOK model has a fallback configured via `POST /fallback` (which requires internal model names like `model_name_team_uuid`), runtime requests using the public model name (e.g. `gpt-4.1`) fail to trigger the fallback.
The fallback config IS loaded (visible in the error), but the lookup compares the public name against internal name keys and finds no match.
**Root cause:** In `Router.async_function_with_fallbacks`: ```python model_group: Optional[str] = kwargs.get("model") # this is the public name ```
This is passed to `_get_fallback_model_group_from_fallbacks` which does a direct string comparison: ```python if list(item.keys())[0] == model_group: # public name vs internal name — never matches ```
Normal routing resolves public → internal names correctly (non-fallback requests work). But the fallback code path reads the original unresolved `kwargs["model"]` before any resolution happens.
**Workaround:** Set `model_aliases` on the team via `POST /team/update` mapping public → internal names. This resolves the public nam…