diff --git a/wp-admin/includes/class-plugin-upgrader.php b/wp-admin/includes/class-plugin-upgrader.php
index b171f9228b..3d528494e3 100644
--- a/wp-admin/includes/class-plugin-upgrader.php
+++ b/wp-admin/includes/class-plugin-upgrader.php
@@ -317,6 +317,8 @@ class Plugin_Upgrader extends WP_Upgrader {
 		$this->update_count   = count( $plugins );
 		$this->update_current = 0;
 		foreach ( $plugins as $plugin ) {
+			$start_time = time();
+
 			$this->update_current++;
 			$this->skin->plugin_info = get_plugin_data( WP_PLUGIN_DIR . '/' . $plugin, false, true );
 
@@ -349,6 +351,26 @@ class Plugin_Upgrader extends WP_Upgrader {
 
 			$results[ $plugin ] = $this->result;
 
+			// If WP_Error send data to WordPress.org.
+			if ( is_wp_error( $result ) ) {
+				// Include an unmodified $wp_version.
+				require ABSPATH . WPINC . '/version.php';
+				global $wp_filesystem;
+				$stats = array(
+					'update_type'      => 'plugin',
+					'plugin'           => $plugin,
+					'success'          => false,
+					'fs_method'        => $wp_filesystem->method,
+					'fs_method_forced' => defined( 'FS_METHOD' ) || has_filter( 'filesystem_method' ),
+					'fs_method_direct' => ! empty( $GLOBALS['_wp_filesystem_direct_method'] ) ? $GLOBALS['_wp_filesystem_direct_method'] : '',
+					'time_taken'       => time() - $start_time,
+					'reported'         => $wp_version,
+					'attempted'        => $r->new_version,
+					'wp_error'         => $result,
+				);
+				wp_version_check( $stats );
+			}
+
 			// Prevent credentials auth screen from displaying multiple times.
 			if ( false === $result ) {
 				break;
