diff --git a/VERSION b/VERSION
index f477849..373f8c6 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-0.2.2
\ No newline at end of file
+0.2.3
\ No newline at end of file
diff --git a/configuration/service_configs.py b/configuration/service_configs.py
index 44f89ea..65fd4a7 100644
--- a/configuration/service_configs.py
+++ b/configuration/service_configs.py
@@ -86,6 +86,9 @@
     """
 
     ret = dict()
+    if not os.path.exists(ENB_CONFIG_DIR):
+        return ret
+
     for fname in filter(lambda x: x.endswith(".yml"), os.listdir(ENB_CONFIG_DIR)):
         sn = fname.replace(".yml", "")
         cfg_file_name = os.path.join(ENB_CONFIG_DIR, fname)
diff --git a/enodeb_status.py b/enodeb_status.py
index f7f5b6f..51a42a7 100644
--- a/enodeb_status.py
+++ b/enodeb_status.py
@@ -469,9 +469,9 @@
 ) -> bool:
     """ Returns '1' for true, and '0' for false """
     stripped_value = str(param_value).lower().strip()
-    if stripped_value in {'true', '1', 'enabled'}:
+    if stripped_value in {'true', '1', 'enabled', 'Success'}:
         return True
-    elif stripped_value in {'false', '0', 'disabled', 'InProgress'}:
+    elif stripped_value in {'false', '0', 'disabled', 'InProgress', 'unsatisfied'}:
         return False
     else:
         logger.warning(
@@ -493,7 +493,7 @@
             if stripped_value in ['0', '2', 'inprogress']:
                 # 2 = GPS locking
                 return False
-            elif stripped_value == '1':
+            elif stripped_value in ['1', 'Success']:
                 return True
             else:
                 logger.warning(
diff --git a/magma_configs/acs_common.yml b/magma_configs/acs_common.yml
index dc46cd7..5509e4f 100644
--- a/magma_configs/acs_common.yml
+++ b/magma_configs/acs_common.yml
@@ -46,8 +46,6 @@
   # First/Second Frequency Band Indicator
   frequency_band_1: 48
   frequency_band_2: 48
-  # Frequency Band List
-  frequency_band_list: "48, 48"
   # The DL/UL subframe configuration
   subframe_assignment: 2
   # The TDD special sub-frame pattern [TS 36.331 sec 6.3.2]
diff --git a/magma_configs/enodebd.yml.example b/magma_configs/enodebd.yml.example
index 03ee2b4..9890582 100644
--- a/magma_configs/enodebd.yml.example
+++ b/magma_configs/enodebd.yml.example
@@ -18,24 +18,6 @@
   #       if this is ever changed in dnsd.yml, this needs to be updated too
   public_ip: 127.0.0.1
 
-ssl:
-  key: "./enodebd.key"
-  cert: "./enodebd.cert"
-
-# TODO: @amar: This is a temp workaround to allow for testing until we
-# connect enodebd with the domain proxy which is responsible for talking to
-# SAS.
-sas:
-  sas_enabled: True
-  sas_server_url: "https://sas.goog/v1.2/"
-  sas_uid: "aether"
-  sas_category: "A"
-  sas_channel_type: "GAA"
-  sas_cert_subject: "/C=TW/O=Sercomm/OU=WInnForum CBSD Certificate/CN=P27-SCE4255W:2009CW5000019"
-  sas_icg_group_id: ""
-  sas_location: "indoor"
-  sas_height_type: "AGL"
-
 # Reboot eNodeB if eNodeB should be connected to MME but isn't
 # This is a workaround for a bug with BaiCells eNodeB where the S1 connection
 # gets into a bad state
diff --git a/state_machines/enb_acs_states.py b/state_machines/enb_acs_states.py
index 4e72388..2c3e53b 100644
--- a/state_machines/enb_acs_states.py
+++ b/state_machines/enb_acs_states.py
@@ -1439,7 +1439,7 @@
     def read_msg(self, message: Any) -> AcsReadMsgResult:
 
         if not isinstance(message, models.GetParameterValuesResponse):
-            return AcsReadMsgResult(msg_handled=False, next_state=when_done)
+            return AcsReadMsgResult(msg_handled=False, next_state=self.done_transition)
         
         name_to_val = parse_get_parameter_values_response(self.acs.data_model, message, )
         logger.info("CheckStatusState: %s", str(name_to_val))
