diff --git a/incubator/rpc-grpc/src/main/java/org/onosproject/incubator/rpc/grpc/GrpcRemoteServiceServer.java b/incubator/rpc-grpc/src/main/java/org/onosproject/incubator/rpc/grpc/GrpcRemoteServiceServer.java
index 77d1cbe..f14b4ef 100644
--- a/incubator/rpc-grpc/src/main/java/org/onosproject/incubator/rpc/grpc/GrpcRemoteServiceServer.java
+++ b/incubator/rpc-grpc/src/main/java/org/onosproject/incubator/rpc/grpc/GrpcRemoteServiceServer.java
@@ -165,6 +165,7 @@
      * Unregisters all registered LinkProviders.
      */
     private synchronized void unregisterLinkProviders() {
+        // TODO remove all links registered by these providers
         linkProviders.values().forEach(linkProviderRegistry::unregister);
         linkProviders.clear();
         linkProviderServices.clear();
@@ -250,6 +251,7 @@
                 // TODO Do we care about provider name?
                 pairedProvider.setProviderId(new ProviderId(registerProvider.getProviderScheme(), RPC_PROVIDER_NAME));
                 registeredProviders.add(pairedProvider);
+                log.info("registering DeviceProvider {} via gRPC", pairedProvider.id());
                 deviceProviderService = deviceProviderRegistry.register(pairedProvider);
                 break;
 
@@ -319,8 +321,13 @@
         @Override
         public void onError(Throwable e) {
             log.error("DeviceProviderServiceServerProxy#onError", e);
-            deviceProviderRegistry.unregister(pairedProvider);
-            registeredProviders.remove(pairedProvider);
+            if (pairedProvider != null) {
+                // TODO call deviceDisconnected against all devices
+                // registered for this provider scheme
+                log.info("unregistering DeviceProvider {} via gRPC", pairedProvider.id());
+                deviceProviderRegistry.unregister(pairedProvider);
+                registeredProviders.remove(pairedProvider);
+            }
             // TODO What is the proper clean up for bi-di stream on error?
             // sample suggests no-op
             toDeviceProvider.onError(e);
@@ -364,6 +371,7 @@
 
         /**
          * Registers RPC stream in other direction.
+         *
          * @param deviceProviderServiceProxy {@link DeviceProviderServiceServerProxy}
          */
         void pair(DeviceProviderServiceServerProxy deviceProviderServiceProxy) {
