diff --git a/src/etc/inc/interfaces.inc b/src/etc/inc/interfaces.inc
index 67aa569c3f..eea801beab 100644
--- a/src/etc/inc/interfaces.inc
+++ b/src/etc/inc/interfaces.inc
@@ -1554,6 +1554,12 @@ function interface_ipsec_vti_configure($ph1ent) {
 				mwexec("/sbin/ifconfig {$ipsecif} mtu {$vtimtu}");
 			}
 		}
+		/* Add the VTI to the interface cache directly because calling 'get_interface_arr(true)' is expensive.
+		   See: https://redmine.pfsense.org/issues/15449 */
+		global $interface_arr_cache;
+		if (is_array($interface_arr_cache) && !in_array($ipsecif, $interface_arr_cache)) {
+			$interface_arr_cache[] = $ipsecif;
+		}
 		system_routing_configure(convert_real_interface_to_friendly_interface_name($ipsecif));
 	}
 	return true;
diff --git a/src/etc/inc/util.inc b/src/etc/inc/util.inc
index 4bb52eb12c..e9266d61c0 100644
--- a/src/etc/inc/util.inc
+++ b/src/etc/inc/util.inc
@@ -3212,8 +3212,13 @@ function route_add_or_change($target, $gw, $iface = '', $args = '',
 	}
 
 	if (empty($params)) {
-		log_error("route_add_or_change: Invalid gateway {$gw} and/or " .
-		    "network interface {$iface}");
+		if (!empty($gw) && !empty($iface)) {
+			log_error("route_add_or_change: Invalid gateway ({$gw}) and network interface was not found ({$iface})");
+		} elseif (!empty($gw)) {
+			log_error("route_add_or_change: Invalid gateway ({$gw})");
+		} else {
+			log_error("route_add_or_change: Network interface was not found ({$iface})");
+		}
 		return false;
 	}
 
