Index: src/wp-admin/includes/ajax-actions.php
===================================================================
--- src/wp-admin/includes/ajax-actions.php	(revision 32280)
+++ src/wp-admin/includes/ajax-actions.php	(working copy)
@@ -2915,27 +2915,38 @@
 	$result = $upgrader->bulk_upgrade( array( $plugin ) );
 
 	if ( is_array( $result ) ) {
-		$plugin_update_data = current( $result );
 
-		/*
-		 * If the `update_plugins` site transient is empty (e.g. when you update
-		 * two plugins in quick succession before the transient repopulates),
-		 * this may be the return.
-		 *
-		 * Preferably something can be done to ensure `update_plugins` isn't empty.
-		 * For now, surface some sort of error here.
-		 */
-		if ( $plugin_update_data === true ) {
+		if( is_wp_error( $result[ $plugin ] ) ) {
+
+			$status['error'] = $result[ $plugin ]->get_error_message();
  			wp_send_json_error( $status );
-		}
 
-		$plugin_data = get_plugin_data( WP_PLUGIN_DIR . '/' . $plugin );
+		} else {
 
-		if ( $plugin_data['Version'] ) {
-			$status['newVersion'] = sprintf( __( 'Version %s' ), $plugin_data['Version'] );
+			$plugin_update_data = current( $result );
+
+			/*
+			 * If the `update_plugins` site transient is empty (e.g. when you update
+			 * two plugins in quick succession before the transient repopulates),
+			 * this may be the return.
+			 *
+			 * Preferably something can be done to ensure `update_plugins` isn't empty.
+			 * For now, surface some sort of error here.
+			 */
+			if ( $plugin_update_data === true ) {
+	 			wp_send_json_error( $status );
+			}
+
+			$plugin_data = get_plugin_data( WP_PLUGIN_DIR . '/' . $plugin );
+
+			if ( $plugin_data['Version'] ) {
+				$status['newVersion'] = sprintf( __( 'Version %s' ), $plugin_data['Version'] );
+			}
+			$status['test'] = $result[ $plugin ];
+			wp_send_json_success( $status );
+
 		}
 
-		wp_send_json_success( $status );
 	} else if ( is_wp_error( $result ) ) {
 		$status['error'] = $result->get_error_message();
  		wp_send_json_error( $status );
