diff --git a/tfm_ci_pylib/lava_rpc_connector.py b/tfm_ci_pylib/lava_rpc_connector.py
index 4006c45..e7571db 100644
--- a/tfm_ci_pylib/lava_rpc_connector.py
+++ b/tfm_ci_pylib/lava_rpc_connector.py
@@ -112,10 +112,13 @@
                   job_definition)
             print(e)
             return None, None
-
-        job_id = self.scheduler.submit_job(job_data)
-        job_url = self.server_job_prefix % job_id
-        return(job_id, job_url)
+        try:
+            job_id = self.scheduler.submit_job(job_data)
+            job_url = self.server_job_prefix % job_id
+            return(job_id, job_url)
+        except Exception as e:
+            print(e)
+            return(None, None)
 
     def resubmit_job(self, job_id):
         """ Re-submit job with provided id. Returns resulting job id,
diff --git a/tfm_ci_pylib/tfm_build_manager.py b/tfm_ci_pylib/tfm_build_manager.py
index 56bf469..d4b4545 100644
--- a/tfm_ci_pylib/tfm_build_manager.py
+++ b/tfm_ci_pylib/tfm_build_manager.py
@@ -75,17 +75,17 @@
 
         super(TFM_Build_Manager, self).__init__(name="TFM_Build_Manager")
 
-    def print_config(self):
-        """Prints a list of available build configurations"""
-        print("\n".join(list(self._tbm_build_cfg.keys())))
+    def get_config(self):
+            return list(self._tbm_build_cfg.keys())
 
-    def print_config_environment(self, config):
+    def print_config_environment(self, config, silence_stderr=False):
         """
         For a given build configuration from output of print_config
         method, print environment variables to build.
         """
         if config not in self._tbm_build_cfg:
-            print("Error: no such config {}".format(config), file=sys.stderr)
+            if not silence_stderr:
+                print("Error: no such config {}".format(config), file=sys.stderr)
             sys.exit(1)
         config_details = self._tbm_build_cfg[config]
         argument_list = [
