Linux static routes & fixing “Error: either “to” is duplicate, or gw is a garbage.”

I was having troubles adding a route using ip route, I was getting “Error: either “to” is duplicate, or “172.16.1.254” is a garbage.”

[root@adlwest-nms1 ~]# ip route add 172.16.103.0/24 172.16.1.254 dev eth1
Error: either "to" is duplicate, or "172.16.1.254" is a garbage.

But running ip route add subnet/netmask via gw worked

[root@adlwest-nms1 ~]# ip route add 172.16.103.0/24 via 172.16.1.254
[root@adlwest-nms1 ~]# ping 172.16.103.41
PING 172.16.103.41 (172.16.103.41) 56(84) bytes of data.
64 bytes from 172.16.103.41: icmp_seq=1 ttl=62 time=1.04 ms
64 bytes from 172.16.103.41: icmp_seq=2 ttl=62 time=0.992 ms