diff --git a/omaha_request_action.cc b/omaha_request_action.cc
index 6c67a3b..4d86586 100644
--- a/omaha_request_action.cc
+++ b/omaha_request_action.cc
@@ -851,6 +851,17 @@
     return;
   }
 
+  ErrorCode aux_error_code = fetcher->GetAuxiliaryErrorCode();
+  if (aux_error_code != ErrorCode::kSuccess) {
+    metrics::DownloadErrorCode download_error_code =
+        metrics_utils::GetDownloadErrorCode(aux_error_code);
+    system_state_->metrics_reporter()->ReportUpdateCheckMetrics(
+        system_state_,
+        metrics::CheckResult::kUnset,
+        metrics::CheckReaction::kUnset,
+        download_error_code);
+  }
+
   if (!successful) {
     LOG(ERROR) << "Omaha request network transfer failed.";
     int code = GetHTTPResponseCode();
@@ -980,14 +991,6 @@
   }
 }
 
-void OmahaRequestAction::ReportUpdateCheckMetrics(
-    metrics::CheckResult result,
-    metrics::CheckReaction reaction,
-    metrics::DownloadErrorCode download_error_code) {
-  system_state_->metrics_reporter()->ReportUpdateCheckMetrics(
-      system_state_, result, reaction, download_error_code);
-}
-
 void OmahaRequestAction::CompleteProcessing() {
   ScopedActionCompleter completer(processor_, this);
   OmahaResponse& output_object = const_cast<OmahaResponse&>(GetOutputObject());
@@ -1383,7 +1386,8 @@
       break;
   }
 
-  ReportUpdateCheckMetrics(result, reaction, download_error_code);
+  system_state_->metrics_reporter()->ReportUpdateCheckMetrics(
+      system_state_, result, reaction, download_error_code);
 }
 
 bool OmahaRequestAction::ShouldIgnoreUpdate(const OmahaResponse& response,
