diff --git src/js/_enqueues/wp/updates.js src/js/_enqueues/wp/updates.js
index d7e0de1c39..2537b2e681 100644
--- src/js/_enqueues/wp/updates.js
+++ src/js/_enqueues/wp/updates.js
@@ -953,9 +953,15 @@
 			$notice = $notice.addClass( 'updating-message' ).find( 'p' );
 		}
 
-		if ( $notice.html() !== wp.updates.l10n.updating ) {
-			$notice.data( 'originaltext', $notice.html() );
-		}
+		// #37669
+		// Shiny Updates: Cancelling the filesystem credentials when updating within the
+		// pop-up prevents updating again (without closing/opening) and leaves UI artefacts
+		$notice.each( function( index, n ) {
+			$n = $(n);
+		  	if ( $n.html() !== wp.updates.l10n.updating ) {
+				$n.data( 'originaltext', $n.html() );
+			}
+		} );
 
 		wp.a11y.speak( wp.updates.l10n.updatingMsg, 'polite' );
 		$notice.text( wp.updates.l10n.updating );
@@ -1800,25 +1806,33 @@
 				$message = $updatingMessage;
 			}
 
-			if ( $message && $message.hasClass( 'updating-message' ) ) {
-				originalText = $message.data( 'originaltext' );
+			// #37669
+			// Shiny Updates: Cancelling the filesystem credentials when updating within the
+			// pop-up prevents updating again (without closing/opening) and leaves UI artefacts
+			$message.each( function( index, msg ) {
+				$msg = $(msg);
+				if ( $msg.hasClass( 'updating-message' ) ) {
+					originalText = $msg.data( 'originaltext' );
 
-				if ( 'undefined' === typeof originalText ) {
-					originalText = $( '<p>' ).html( $message.find( 'p' ).data( 'originaltext' ) );
-				}
+					if ( 'undefined' === typeof originalText ) {
+						originalText = $( '<p>' ).html( $msg.find( 'p' ).data( 'originaltext' ) );
+					}
 
-				$message
-					.removeClass( 'updating-message' )
-					.html( originalText );
-
-				if ( 'plugin-install' === pagenow || 'plugin-install-network' === pagenow ) {
-					if ( 'update-plugin' === job.action ) {
-						$message.attr( 'aria-label', wp.updates.l10n.pluginUpdateNowLabel.replace( '%s', $message.data( 'name' ) ) );
-					} else if ( 'install-plugin' === job.action ) {
-						$message.attr( 'aria-label', wp.updates.l10n.pluginInstallNowLabel.replace( '%s', $message.data( 'name' ) ) );
+					$msg
+						.removeClass( 'updating-message' )
+						.html( originalText );
+
+					if ( 'plugin-install' === pagenow || 'plugin-install-network' === pagenow ) {
+						if ( 'update-plugin' === job.action ) {
+							$msg.attr( 'aria-label', wp.updates.l10n.pluginUpdateNowLabel.replace( '%s', $msg.data( 'name' ) ) );
+						} else if ( 'install-plugin' === job.action ) {
+							$msg.attr( 'aria-label', wp.updates.l10n.pluginInstallNowLabel.replace( '%s', $msg.data( 'name' ) ) );
+						}
 					}
 				}
-			}
+			} );
+
+			wp.a11y.speak( wp.updates.l10n.updateCancel, 'polite' );
 
 			wp.a11y.speak( wp.updates.l10n.updateCancel, 'polite' );
 		} );
diff --git src/wp-admin/themes.php src/wp-admin/themes.php
index 244f573ce6..65e7ab58f4 100644
--- src/wp-admin/themes.php
+++ src/wp-admin/themes.php
@@ -564,9 +564,11 @@ if ( ! is_multisite() && current_user_can( 'edit_themes' ) && $broken_themes ) {
 				</p>
 
 				<# if ( data.hasUpdate ) { #>
-				<div class="notice notice-warning notice-alt notice-large">
-					<h3 class="notice-title"><?php _e( 'Update Available' ); ?></h3>
-					{{{ data.update }}}
+				<div data-slug="{{ data.id }}">
+					<div class="update-message notice notice-warning notice-alt notice-large">
+						<h3 class="notice-title"><?php _e( 'Update Available' ); ?></h3>
+						{{{ data.update }}}
+					</div>
 				</div>
 				<# } #>
 				<p class="theme-description">{{{ data.description }}}</p>
