This is in 3.30 using the normal routing package.
I would expect an interface route would take preference over a static route; that’s the way it works in about every other router out there.
In this example, routerOS failed to do that. I enabled an ethernet vlan interface that had been disabled (basically a mothballed backup link) Now that this link is active, it shows up as active in the routing table, but fails to take precedence over the existing static route.
I think there might be some problem here. I can correct it by disabling the static route, but I really should not have to do that.
[admin@bht] /ip address> print
Flags: X - disabled, I - invalid, D - dynamic
# ADDRESS NETWORK BROADCAST INTERFACE
0 10.0.1.5/24 10.0.1.0 10.0.1.255 ether1
1 X 10.0.29.1/24 10.0.29.0 10.0.29.255 metinic
[admin@bht] /ip address> enable 1
[admin@bht] /ip address> /ping 10.0.29.2
10.0.29.2 ping timeout
69.39.117.35 92 byte redirect host (5:1) time=2 ms
69.39.117.35 92 byte redirect host (5:1) time=2 ms
69.39.117.35 92 byte redirect host (5:1) time=10 ms
69.39.117.35 92 byte redirect host (5:1) time=2 ms
69.39.117.35 92 byte redirect host (5:1) time=1 ms
[admin@bht] /ip address> /ip route
[admin@bht] /ip route> print
5 A S 10.0.29.0/24 reachable 69.39.117.35 1 matinicus
6 DC 10.0.29.0/24 10.0.29.1 0 metinic