diff --git a/app/src/main/java/org/opencord/olt/impl/OltMeterService.java b/app/src/main/java/org/opencord/olt/impl/OltMeterService.java
index 3e3962c..80aae4a 100644
--- a/app/src/main/java/org/opencord/olt/impl/OltMeterService.java
+++ b/app/src/main/java/org/opencord/olt/impl/OltMeterService.java
@@ -157,6 +157,8 @@
     }
 
     void addMeterIdToBpMapping(DeviceId deviceId, MeterId meterId, String bandwidthProfile) {
+        log.debug("adding bp {} to meter {} mapping for device {}",
+                 bandwidthProfile, meterId, deviceId);
         bpInfoToMeter.put(bandwidthProfile, MeterKey.key(deviceId, meterId));
     }
 
@@ -177,8 +179,8 @@
                     meterKeyForDevice.get().meterId(), bandwidthProfile);
             return meterKeyForDevice.get().meterId();
         } else {
-            log.warn("Bandwidth profile '{}' is not currently mapped to a meter",
-                    bandwidthProfile);
+            log.warn("Bandwidth Profile '{}' is not currently mapped to a meter in {}",
+                     bandwidthProfile, bpInfoToMeter.get(bandwidthProfile).value());
             return null;
         }
     }
@@ -215,6 +217,9 @@
                 .withContext(new MeterContext() {
                     @Override
                     public void onSuccess(MeterRequest op) {
+                        log.debug("Meter {} is installed on the device {}",
+                                 meterId, deviceId);
+                        addMeterIdToBpMapping(deviceId, meterIdRef.get(), bpInfo.id());
                         meterFuture.complete(null);
                     }
 
@@ -232,7 +237,6 @@
 
         Meter meter = meterService.submit(meterRequest);
         meterIdRef.set(meter.id());
-        addMeterIdToBpMapping(deviceId, meterIdRef.get(), bpInfo.id());
         log.info("Meter is created. Meter Id {}", meter.id());
         return meter.id();
     }
