I think that the cause is this url : api/Leagues/GetMiniLeagueTable/3
. This url matches both routes, as it can be interpreted as such : api/Leagues?type=GetMiniLeagueTable&id=3
. But it cannot convert GetMiniLeagueTable
as a CompetitionManager.MiniLeagueType
value, so it raises an error.
You should make more specific routes, for example api/Leagues/GetCompetitions/{type}/{id}
, in order to prevent url matching 2 or more different routes.
Another possibility is to invert your action orders, as it will check first action's route before going for the next one if the url doesn't match.