diff --git a/main/asterisk.c b/main/asterisk.c
index 86a190bc8080d68588e595dc75da3ab7577e6bd6..277604bf707657b816916dbc00dbfafb14a7e8ed 100644
--- a/main/asterisk.c
+++ b/main/asterisk.c
@@ -4260,7 +4260,10 @@ int main(int argc, char *argv[])
 	register_config_cli();
 	read_config_maps();
 
-	astobj2_init();
+	if (astobj2_init()) {
+		printf("Failed: astobj2_init\n%s", term_quit());
+		exit(1);
+	}
 
 	if (ast_opt_console) {
 		if (el_hist == NULL || el == NULL)
diff --git a/main/astobj2.c b/main/astobj2.c
index f9dd8d490d2335312c8f5a39e6fddc4169eaace0..1db2dd42dcf44b3d00a994182f1deae786b256a1 100644
--- a/main/astobj2.c
+++ b/main/astobj2.c
@@ -1143,10 +1143,6 @@ int astobj2_init(void)
 {
 	char ref_filename[1024];
 
-	if (container_init() != 0) {
-		return -1;
-	}
-
 	if (ast_opt_ref_debug) {
 		snprintf(ref_filename, sizeof(ref_filename), "%s/refs", ast_config_AST_LOG_DIR);
 		ref_log = fopen(ref_filename, "w");
@@ -1155,6 +1151,11 @@ int astobj2_init(void)
 		}
 	}
 
+	if (container_init() != 0) {
+		fclose(ref_log);
+		return -1;
+	}
+
 #if defined(AO2_DEBUG)
 	ast_cli_register_multiple(cli_astobj2, ARRAY_LEN(cli_astobj2));
 #endif	/* defined(AO2_DEBUG) */