diff --git a/app/configuration/controllers/network-controller.html b/app/configuration/controllers/network-controller.html
index 83e37d7..22e5889 100644
--- a/app/configuration/controllers/network-controller.html
+++ b/app/configuration/controllers/network-controller.html
@@ -99,8 +99,6 @@
         <button type="button" class="btn-primary inline" ng-click="confirmSettings=true;">Save settings</button>
         <button type="button" class="btn-secondary inline" ng-click="refresh()">Cancel</button>
       </div>
-      <p class="success-msg set_network_success" ng-show="setNetworkSuccess" role="alert">Success! Network settings changed!</p>
-      <p class="set_network_error error-msg" ng-show="setNetworkError" role="alert">Error setting {{setNetworkError}}!</p>
     </section>
   </form>
 </div>
diff --git a/app/configuration/controllers/network-controller.js b/app/configuration/controllers/network-controller.js
index da40a47..8a92ef4 100644
--- a/app/configuration/controllers/network-controller.js
+++ b/app/configuration/controllers/network-controller.js
@@ -11,7 +11,9 @@
 
   angular.module('app.configuration').controller('networkController', [
     '$scope', '$window', 'APIUtils', 'dataService', '$timeout', '$route', '$q',
-    function($scope, $window, APIUtils, dataService, $timeout, $route, $q) {
+    'ngToast',
+    function(
+        $scope, $window, APIUtils, dataService, $timeout, $route, $q, ngToast) {
       $scope.dataService = dataService;
       $scope.network = {};
       $scope.oldInterface = {};
@@ -19,8 +21,6 @@
       $scope.networkDevice = false;
       $scope.hostname = '';
       $scope.defaultGateway = '';
-      $scope.setNetworkError = '';
-      $scope.setNetworkSuccess = false;
       $scope.selectedInterface = '';
       $scope.confirmSettings = false;
       $scope.loading = false;
@@ -61,8 +61,6 @@
       $scope.setNetworkSettings = function() {
         // Hides the confirm network settings modal
         $scope.confirmSettings = false;
-        $scope.setNetworkError = '';
-        $scope.setNetworkSuccess = false;
         $scope.loading = true;
         var promises = [];
 
@@ -100,22 +98,25 @@
           for (var i in $scope.interface.ipv4.values) {
             if (!APIUtils.validIPV4IP(
                     $scope.interface.ipv4.values[i].Address)) {
-              $scope.setNetworkError = $scope.interface.ipv4.values[i].Address +
-                  ' invalid IP parameter';
+              ngToast.danger(
+                  $scope.interface.ipv4.values[i].Address +
+                  ' invalid IP parameter');
               $scope.loading = false;
               return;
             }
             if (!APIUtils.validIPV4IP(
                     $scope.interface.ipv4.values[i].Gateway)) {
-              $scope.setNetworkError = $scope.interface.ipv4.values[i].Address +
-                  ' invalid gateway parameter';
+              ngToast.danger(
+                  $scope.interface.ipv4.values[i].Address +
+                  ' invalid gateway parameter');
               $scope.loading = false;
               return;
             }
             // The netmask prefix length will be undefined if outside range
             if (!$scope.interface.ipv4.values[i].PrefixLength) {
-              $scope.setNetworkError = $scope.interface.ipv4.values[i].Address +
-                  ' invalid Prefix Length parameter';
+              ngToast.danger(
+                  $scope.interface.ipv4.values[i].Address +
+                  ' invalid Prefix Length parameter');
               $scope.loading = false;
               return;
             }
@@ -136,26 +137,28 @@
         }
 
         if (promises.length) {
-          $q.all(promises).finally(function() {
-            $scope.loading = false;
-            if (!$scope.setNetworkError) {
-              $scope.setNetworkSuccess = true;
-              // Since an IPV4 interface (e.g. IP address, gateway, or netmask)
-              // edit is a delete then an add and the GUI can't calculate the
-              // interface id (e.g. 5c083707) beforehand and it is not returned
-              // by the REST call, openbmc#3227, reload the page after an edit,
-              // which makes a 2nd REST call.
-              // Do this for all network changes due to the possibility of a set
-              // network failing even though it returned success, openbmc#1641,
-              // and to update dataService and oldInterface to know which
-              // data has changed if the user continues to edit network
-              // settings.
-              // TODO: The reload is not ideal. Revisit this.
-              $timeout(function() {
-                loadNetworkInfo();
-              }, 4000);
-            }
-          });
+          $q.all(promises).then(
+              function(response) {
+                // Since an IPV4 interface (e.g. IP address, gateway, or
+                // netmask) edit is a delete then an add and the GUI can't
+                // calculate the interface id (e.g. 5c083707) beforehand and it
+                // is not returned by the REST call, openbmc#3227, reload the
+                // page after an edit, which makes a 2nd REST call. Do this for
+                // all network changes due to the possibility of a set network
+                // failing even though it returned success, openbmc#1641, and to
+                // update dataService and oldInterface to know which data has
+                // changed if the user continues to edit network settings.
+                // TODO: The reload is not ideal. Revisit this.
+                $timeout(function() {
+                  loadNetworkInfo();
+                  $scope.loading = false;
+                  ngToast.success('Network settings saved');
+                }, 4000);
+              },
+              function(error) {
+                $scope.loading = false;
+                ngToast.danger('Network settings could not be saved');
+              })
         } else {
           $scope.loading = false;
         }
@@ -169,7 +172,7 @@
                 function(data) {},
                 function(error) {
                   console.log(JSON.stringify(error));
-                  $scope.setNetworkError = 'MAC Address';
+                  return $q.reject();
                 });
       }
 
@@ -179,7 +182,7 @@
                 function(data) {},
                 function(error) {
                   console.log(JSON.stringify(error));
-                  $scope.setNetworkError = 'Default Gateway';
+                  return $q.reject();
                 });
       }
 
@@ -189,7 +192,7 @@
                 function(data) {},
                 function(error) {
                   console.log(JSON.stringify(error));
-                  $scope.setNetworkError = 'Hostname';
+                  return $q.reject();
                 });
       }
 
@@ -201,7 +204,7 @@
                 function(data) {},
                 function(error) {
                   console.log(JSON.stringify(error));
-                  $scope.setNetworkError = 'DHCP';
+                  return $q.reject();
                 });
       }
 
@@ -218,7 +221,7 @@
                 function(data) {},
                 function(error) {
                   console.log(JSON.stringify(error));
-                  $scope.setNetworkError = 'DNS Servers';
+                  return $q.reject();
                 });
       }
 
@@ -229,7 +232,7 @@
                   function(data) {},
                   function(error) {
                     console.log(JSON.stringify(error));
-                    $scope.setNetworkError = ipv4.Address;
+                    return $q.reject();
                   })
         });
       }
@@ -245,8 +248,7 @@
                 function(data) {},
                 function(error) {
                   console.log(JSON.stringify(error));
-                  $scope.setNetworkError =
-                      $scope.interface.ipv4.values[index].Address;
+                  return $q.reject();
                 })
       }
 
@@ -269,14 +271,12 @@
                           function(data) {},
                           function(error) {
                             console.log(JSON.stringify(error));
-                            $scope.setNetworkError =
-                                $scope.interface.ipv4.values[index].Address;
+                            return $q.reject();
                           });
                 },
                 function(error) {
                   console.log(JSON.stringify(error));
-                  $scope.setNetworkError =
-                      $scope.interface.ipv4.values[index].Address;
+                  return $q.reject();
                 });
       }
 
