diff --git a/apps/vtn/vtnrsc/src/main/java/org/onosproject/vtnrsc/routerinterface/impl/RouterInterfaceManager.java b/apps/vtn/vtnrsc/src/main/java/org/onosproject/vtnrsc/routerinterface/impl/RouterInterfaceManager.java
index 244a5c0..bbcc04f 100644
--- a/apps/vtn/vtnrsc/src/main/java/org/onosproject/vtnrsc/routerinterface/impl/RouterInterfaceManager.java
+++ b/apps/vtn/vtnrsc/src/main/java/org/onosproject/vtnrsc/routerinterface/impl/RouterInterfaceManager.java
@@ -134,6 +134,12 @@
     @Override
     public boolean addRouterInterface(RouterInterface routerInterface) {
         checkNotNull(routerInterface, ROUTER_INTERFACE_NULL);
+        if (!virtualPortService.exists(routerInterface.portId())) {
+            log.debug("The port ID of interface is not exist whose identifier is {}",
+                      routerInterface.portId().toString());
+            throw new IllegalArgumentException(
+                                               "port ID of interface doesn't exist");
+        }
         verifyRouterInterfaceData(routerInterface);
         routerInterfaceStore.put(routerInterface.subnetId(), routerInterface);
         if (!routerInterfaceStore.containsKey(routerInterface.subnetId())) {
@@ -188,12 +194,6 @@
             throw new IllegalArgumentException(
                                                "subnet ID of interface doesn't exist");
         }
-        if (!virtualPortService.exists(routerInterface.portId())) {
-            log.debug("The port ID of interface is not exist whose identifier is {}",
-                      routerInterface.portId().toString());
-            throw new IllegalArgumentException(
-                                               "port ID of interface doesn't exist");
-        }
         if (!routerService.exists(routerInterface.routerId())) {
             log.debug("The router ID of interface is not exist whose identifier is {}",
                       routerInterface.routerId().toString());
