Index: src/wp-admin/customize.php
===================================================================
--- src/wp-admin/customize.php	(revision 51172)
+++ src/wp-admin/customize.php	(working copy)
@@ -184,8 +184,16 @@
 			<?php
 			$compatible_wp  = is_wp_version_compatible( $wp_customize->theme()->get( 'RequiresWP' ) );
 			$compatible_php = is_php_version_compatible( $wp_customize->theme()->get( 'RequiresPHP' ) );
+			$fse_safe = true;
+
+			// Make sure that the theme will not cause problems with FSE if activated.
+			$theme_tags = $wp_customize->theme()->get( 'Tags' );
+
+			if ( ! empty( $theme_tags ) && in_array( 'full-site-editing', $theme_tags, true ) && ! is_plugin_active( 'gutenberg/gutenberg.php' ) ) {
+				$fse_safe = false;
+			}
 			?>
-			<?php if ( $compatible_wp && $compatible_php ) : ?>
+			<?php if ( $compatible_wp && $compatible_php && $fse_safe ) : ?>
 				<?php $save_text = $wp_customize->is_theme_active() ? __( 'Publish' ) : __( 'Activate &amp; Publish' ); ?>
 				<div id="customize-save-button-wrapper" class="customize-save-button-wrapper" >
 					<?php submit_button( $save_text, 'primary save', 'save', false ); ?>
Index: src/wp-includes/theme.php
===================================================================
--- src/wp-includes/theme.php	(revision 51172)
+++ src/wp-includes/theme.php	(working copy)
@@ -908,6 +908,20 @@
 function validate_theme_requirements( $stylesheet ) {
 	$theme = wp_get_theme( $stylesheet );
 
+	// If the site is a Full Site Editing theme, check for the presence of the Gutenberg plugin.
+	$theme_tags = $theme->get( 'Tags' );
+
+	if ( ! empty( $theme_tags ) && in_array( 'full-site-editing', $theme_tags, true ) && ! is_plugin_active( 'gutenberg/gutenberg.php' ) ) {
+		return new WP_Error(
+				'theme_requires_fse',
+				sprintf(
+				/* translators: %s: Theme name. */
+						_x( '<strong>Error:</strong> %s is a Full Site Editing theme, which requires the Gutenberg plugin.', 'theme' ),
+						$theme->display( 'Name' )
+				)
+		);
+	}
+
 	$requirements = array(
 		'requires'     => ! empty( $theme->get( 'RequiresWP' ) ) ? $theme->get( 'RequiresWP' ) : '',
 		'requires_php' => ! empty( $theme->get( 'RequiresPHP' ) ) ? $theme->get( 'RequiresPHP' ) : '',
