Hello @4mon ,
If you are using domain based VPN and assuming 15.0.0.15 is part of remote encription domain, the traffic to 15.0.0.15 will always go through the VPN tunnel. Even in the case the VPN is down, a new connection attempt will trigger the VPN negotiation, so MPLS will not be used. Answering your questions:
but what will happen then with VPN? VPN will always be used to reach 15.0.0.15
Which way will have higher priority? VPN or MPLS? VPN
How to switch traffic to VPN when Primary MPLS will have outage? No possible with domain based VPN
Maybe I should delete 15.0.0.15 from domain encryption to reach 15.0.0.15 IP trought MPLS? Is possible, but you will have to do this every time you want to switch from VPN to MPLS, and add it back when you want to go from MPLS to VPN.
To reach redundancy between MPLS and VPN i see two possible options, first option use a route based VPN so you can create two different routes with different metrics according to your needs, let's say route through the VPN with metric 2 (backup) and route through the MPLS with metric 1 (primary). You can use ip reachability detection feature to monitor MPLS link with a ping, when the ping fails, the route through the MPLS will become inactive and the route through the vpn will be active. You can also use OSPF to update routes automatically.
Second option is to keep domain based VPN and use a bogus IP address, for example 16.0.0.16 that will not be part of remote encryption domain and that should be routed through the MPLS link. So you will have two IP address to reach the remote service, you could manage the redundancy internally with DNS for example. It will require a NAT rule on the remote site to translate traffic to 16.0.0.16 to the real IP address 15.0.0.15 which is quiet difficult if it is a third party.
HTH.
Regards