diff --git a/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/driver/DefaultOvsdbClient.java b/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/driver/DefaultOvsdbClient.java
index c603863..8a661ab 100644
--- a/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/driver/DefaultOvsdbClient.java
+++ b/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/driver/DefaultOvsdbClient.java
@@ -43,6 +43,7 @@
 import org.onosproject.ovsdb.controller.OvsdbStore;
 import org.onosproject.ovsdb.controller.OvsdbTableStore;
 import org.onosproject.ovsdb.controller.OvsdbTunnel;
+import org.onosproject.ovsdb.rfc.exception.BridgeCreateException;
 import org.onosproject.ovsdb.rfc.jsonrpc.Callback;
 import org.onosproject.ovsdb.rfc.message.OperationResult;
 import org.onosproject.ovsdb.rfc.message.TableUpdates;
@@ -479,6 +480,9 @@
                     insertConfig(OvsdbConstant.PORT, "_uuid", "Bridge", "ports", bridgeUuid,
                                  port.getRow());
                 }
+            } else {
+                String message = BridgeCreateException.createMessage(ovsUuid);
+                throw new BridgeCreateException(message);
             }
 
         } else {
@@ -545,6 +549,9 @@
                     insertConfig(OvsdbConstant.PORT, "_uuid", "Bridge", "ports", bridgeUuid,
                                  port.getRow());
                 }
+            } else {
+                String message = BridgeCreateException.createMessage(ovsUuid);
+                throw new BridgeCreateException(message);
             }
 
         } else {
diff --git a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/exception/BridgeCreateException.java b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/exception/BridgeCreateException.java
new file mode 100644
index 0000000..986b50a
--- /dev/null
+++ b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/exception/BridgeCreateException.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright 2015 Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onosproject.ovsdb.rfc.exception;
+
+import static com.google.common.base.MoreObjects.toStringHelper;
+
+/**
+ * This exception is thrown when Bridge creation fails.
+ */
+public class BridgeCreateException extends RuntimeException {
+    private static final long serialVersionUID = 1377521646616825676L;
+
+    /**
+     * Constructs a BridgeCreateException object.
+     * @param message error message
+     */
+    public BridgeCreateException(String message) {
+        super(message);
+    }
+
+    /**
+     * Constructs a BridgeCreateException object.
+     * @param message error message
+     * @param cause Throwable
+     */
+    public BridgeCreateException(String message, Throwable cause) {
+        super(message, cause);
+    }
+
+    /**
+     * Create error message.
+     * @param ovsUuid ovs uuid name
+     * @return message
+     */
+    public static String createMessage(String ovsUuid) {
+        String message = toStringHelper("BridgeCreateException")
+                .addValue("Create new bridge failed for " + ovsUuid).toString();
+        return message;
+    }
+}
