diff --git a/src/i1905_ubus.c b/src/i1905_ubus.c
index 625a6cbb9430a076f0dd724f330cb776d44444c5..0494f052f1c50c9552c9ff236ce306d950ada0ab 100644
--- a/src/i1905_ubus.c
+++ b/src/i1905_ubus.c
@@ -1590,6 +1590,7 @@ int i1905_ubus_interface_del(struct ubus_context *ctx, struct ubus_object *obj,
 {
 	struct i1905_private *p = container_of(obj, struct i1905_private, obj);
 	struct blob_attr *tb[NUM_I1905_INTERFACE_POLICY];
+	struct i1905_interface *iface;
 	char ifname[16] = {0};
 	int ret;
 
@@ -1604,6 +1605,13 @@ int i1905_ubus_interface_del(struct ubus_context *ctx, struct ubus_object *obj,
 	ifname[15] = '\0';
 
 	ret = i1905_remove_interface_object(p, ifname);
+
+	iface = i1905_ifname_to_interface(p, ifname);
+	if (!iface) {
+		dbg("%s: %s is not a 1905 interface\n", __func__, ifname);
+		return -EINVAL;
+	}
+
 	i1905_teardown_interface(p, ifname);
 	return ret;
 }