diff --git a/util/dvsim.py b/util/dvsim.py
index 40c89be..e39aa4a 100755
--- a/util/dvsim.py
+++ b/util/dvsim.py
@@ -470,6 +470,11 @@
     else:
         log.info("No items specified to be run.")
 
+    # Exit with non-zero status if there were errors or failures.
+    if cfg.has_errors():
+        log.error("Errors were encountered in this run.")
+        sys.exit(1)
+
 
 if __name__ == '__main__':
     main()
diff --git a/util/dvsim/FlowCfg.py b/util/dvsim/FlowCfg.py
index eea6ca2..a001f7b 100644
--- a/util/dvsim/FlowCfg.py
+++ b/util/dvsim/FlowCfg.py
@@ -67,6 +67,7 @@
         self.timestamp = args.timestamp
 
         # Results
+        self.errors_seen = False
         self.rel_path = ""
         self.results_title = ""
         self.results_server_prefix = ""
@@ -431,6 +432,7 @@
             result = item._gen_results()
             print(result)
             results.append(result)
+            self.errors_seen |= item.errors_seen
 
         if self.is_master_cfg: self.gen_results_summary()
 
@@ -440,6 +442,7 @@
         return
 
     def _get_results_page_link(self, link_text):
+        if not self.args.publish: return link_text
         results_page_url = self.results_server_page.replace(
             self.results_server_prefix, self.results_server_url_prefix)
         return "[%s](%s)" % (link_text, results_page_url)
@@ -620,3 +623,6 @@
             log.log(VERBOSE, cmd_output.stdout.decode("utf-8"))
         except Exception as e:
             log.error("%s: Failed to publish results:\n\"%s\"", e, str(cmd))
+
+    def has_errors(self):
+        return self.errors_seen
diff --git a/util/dvsim/SimCfg.py b/util/dvsim/SimCfg.py
index 7186724..62cd278 100644
--- a/util/dvsim/SimCfg.py
+++ b/util/dvsim/SimCfg.py
@@ -472,6 +472,7 @@
         # Add title if there are indeed failures
         if fail_msgs != "":
             fail_msgs = "\n## List of Failures\n" + fail_msgs
+            self.errors_seen = True
 
         # Generate results table for runs.
         results_str = "## " + self.results_title + "\n"
@@ -501,8 +502,6 @@
             results_str += "\n### [Coverage Dashboard](cov_report/dashboard.html)\n\n"
             results_str += self.cov_report_deploy.cov_results
             self.results_summary["Coverage"] = self.cov_report_deploy.cov_total
-        else:
-            self.results_summary["Coverage"] = "-- %"
 
         # append link of detail result to block name
         self.results_summary["Name"] = self._get_results_page_link(
@@ -510,6 +509,7 @@
 
         # Append failures for triage
         self.results_md = results_str + fail_msgs
+        results_str += fail_msgs
 
         # Write results to the scratch area
         results_file = self.scratch_path + "/results_" + self.timestamp + ".md"
@@ -524,7 +524,8 @@
     def gen_results_summary(self):
 
         # sim summary result has 5 columns from each SimCfg.results_summary
-        header = ["Name", "Passing", "Total", "Pass Rate", "Coverage"]
+        header = ["Name", "Passing", "Total", "Pass Rate"]
+        if self.cov: header.append('Coverage')
         table = [header]
         colalign = ("center", ) * len(header)
         for item in self.cfgs:
