diff --git a/host/commands/snapshot_util_cvd/main.cc b/host/commands/snapshot_util_cvd/main.cc
index c9ba106..767503d 100644
--- a/host/commands/snapshot_util_cvd/main.cc
+++ b/host/commands/snapshot_util_cvd/main.cc
@@ -65,14 +65,14 @@
 }
 
 Result<void> SnapshotCvdMain(std::vector<std::string> args) {
-  const CuttlefishConfig* config =
-      CF_EXPECT(CuttlefishConfig::Get(), "Failed to obtain config object");
-
   CF_EXPECT(!args.empty(), "No arguments was given");
   const auto prog_path = args.front();
   args.erase(args.begin());
   auto parsed = CF_EXPECT(Parse(args));
 
+  const CuttlefishConfig* config =
+      CF_EXPECT(CuttlefishConfig::Get(), "Failed to obtain config object");
+
   switch (parsed.cmd) {
     case SnapshotCmd::kSuspend: {
       run_cvd::ExtendedLauncherAction extended_action;
diff --git a/host/commands/snapshot_util_cvd/parse.cc b/host/commands/snapshot_util_cvd/parse.cc
index e829389..42fcf9c 100644
--- a/host/commands/snapshot_util_cvd/parse.cc
+++ b/host/commands/snapshot_util_cvd/parse.cc
@@ -127,7 +127,14 @@
   flags.push_back(HelpFlag(flags));
   flags.push_back(HelpXmlFlag(flags, std::cout, help_xml));
   flags.push_back(UnexpectedArgumentGuard());
-  CF_EXPECT(ConsumeFlags(flags, args), "Flag parsing failed");
+  auto parse_res = ConsumeFlags(flags, args);
+  if (!help_xml && !parse_res.ok()) {
+    // Parse fails if helpxml is passed
+    CF_EXPECT(std::move(parse_res), "Flag parsing failed");
+  }
+  if (help_xml) {
+    std::exit(0);
+  }
   parsed.cmd = CF_EXPECT(ConvertToSnapshotCmd(snapshot_op));
   parsed.snapshot_path = snapshot_path;
   parsed.instance_nums = CF_EXPECT(InstanceNums());
