diff --git a/src/main/java/org/opencord/aaa/AaaManager.java b/src/main/java/org/opencord/aaa/AaaManager.java
index 2f885db..1df4574 100755
--- a/src/main/java/org/opencord/aaa/AaaManager.java
+++ b/src/main/java/org/opencord/aaa/AaaManager.java
@@ -423,6 +423,9 @@
                             subsService.get(nasPortId);
                     if (subscriber != null) {
                         stateMachine = new StateMachine(sessionId, subscriber.cTag());
+                    } else {
+                        log.error("Could not create new state machine for {}", nasPortId);
+                        return;
                     }
                 } else {
                     stateMachine = new StateMachine(sessionId, VlanId.vlanId((short) 0));
diff --git a/src/main/java/org/opencord/aaa/PortBasedRadiusCommunicator.java b/src/main/java/org/opencord/aaa/PortBasedRadiusCommunicator.java
index 6e256b7..8e93777 100755
--- a/src/main/java/org/opencord/aaa/PortBasedRadiusCommunicator.java
+++ b/src/main/java/org/opencord/aaa/PortBasedRadiusCommunicator.java
@@ -129,7 +129,7 @@
         mastershipService.addListener(changeListener);
         deviceService.addListener(deviceListener);
 
-        log.error("Created PortBased");
+        log.info("Created PortBased");
     }
 
     private void initializeLocalState() {
@@ -142,13 +142,12 @@
                         if (deviceService.isAvailable(cp.deviceId())) {
                             radiusServerConnectPoint = cp;
                         }
-                        log.warn("RADIUS connectPoint selected is {}", cp);
                         break;
                     }
                 }
             }
 
-            log.warn("RADIUS connectPoint in initializeLocalState is {}", radiusServerConnectPoint);
+            log.info("RADIUS connectPoint in initializeLocalState is {}", radiusServerConnectPoint);
 
             if (radiusServerConnectPoint == null) {
                 log.error("Master of none, can't send radius Message to server");
@@ -248,7 +247,7 @@
         SubscriberAndDeviceInformation deviceInfo = subsService.get(serialNo);
 
         if (deviceInfo == null) {
-            log.error("No Device found with SN {}", serialNo);
+            log.warn("No Device found with SN {}", serialNo);
             return;
         }
         ipToSnMap.put(deviceInfo.ipAddress(), serialNo);
@@ -325,7 +324,7 @@
         }
         MacAddress senderMac = subsService.get(serialNo).hardwareIdentifier();
         if (senderMac == null) {
-            log.error("ARP resolution, MAC address not found for SN {}", serialNo);
+            log.warn("ARP resolution, MAC address not found for SN {}", serialNo);
             return;
         }
 
diff --git a/src/main/java/org/opencord/aaa/SocketBasedRadiusCommunicator.java b/src/main/java/org/opencord/aaa/SocketBasedRadiusCommunicator.java
index 1f046e4..766f471 100755
--- a/src/main/java/org/opencord/aaa/SocketBasedRadiusCommunicator.java
+++ b/src/main/java/org/opencord/aaa/SocketBasedRadiusCommunicator.java
@@ -132,7 +132,7 @@
                             radiusIpAddress, radiusServerPort);
 
             socket.send(packet);
-            log.warn("Packet sent to Radius Server using socket packet = {}", packet);
+            log.info("Packet sent to Radius Server using socket packet = {}", packet);
         } catch (IOException e) {
             log.info("Cannot send packet to RADIUS server", e);
         }
