Index: src/wp-admin/includes/ms-admin-filters.php
===================================================================
--- src/wp-admin/includes/ms-admin-filters.php	(revision 42973)
+++ src/wp-admin/includes/ms-admin-filters.php	(working copy)
@@ -9,6 +9,7 @@
 
 // Media Hooks.
 add_filter( 'wp_handle_upload_prefilter', 'check_upload_size' );
+add_filter( 'wp_handle_sideload_prefilter', 'check_upload_size' );
 
 // User Hooks
 add_action( 'user_admin_notices', 'new_user_email_admin_notice' );
Index: src/wp-admin/includes/ms.php
===================================================================
--- src/wp-admin/includes/ms.php	(revision 42973)
+++ src/wp-admin/includes/ms.php	(working copy)
@@ -45,7 +45,7 @@
 		$file['error'] = __( 'You have used your space quota. Please delete files before uploading.' );
 	}
 
-	if ( $file['error'] != '0' && ! isset( $_POST['html-upload'] ) && ! wp_doing_ajax() ) {
+	if ( $file['error'] != '0' && ! isset( $_POST['html-upload'] ) && ! wp_doing_ajax() && ! ( defined( 'REST_REQUEST' ) && REST_REQUEST ) ) {
 		wp_die( $file['error'] . ' <a href="javascript:history.go(-1)">' . __( 'Back' ) . '</a>' );
 	}
 
Index: src/wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php
===================================================================
--- src/wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php	(revision 42973)
+++ src/wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php	(working copy)
@@ -513,6 +513,11 @@
 		// Get the content-type.
 		$type = array_shift( $headers['content_type'] );
 
+		// Prevent multisite lookups from calling wp_die() when running unit tests.
+		if ( defined( 'DIR_TESTDATA' ) && DIR_TESTDATA ) {
+			$_POST['html-upload'] = true;
+		}
+
 		/** Include admin functions to get access to wp_tempnam() and wp_handle_sideload() */
 		require_once ABSPATH . 'wp-admin/includes/admin.php';
 
@@ -530,7 +535,7 @@
 
 		// Now, sideload it in.
 		$file_data = array(
-			'error'    => null,
+			'error'    => '0',
 			'tmp_name' => $tmpfname,
 			'name'     => $filename,
 			'type'     => $type,
@@ -698,9 +703,10 @@
 			'test_form' => false,
 		);
 
-		// Bypasses is_uploaded_file() when running unit tests.
+		// Bypass is_uploaded_file() and prevent multisite lookups from calling wp_die() when running unit tests.
 		if ( defined( 'DIR_TESTDATA' ) && DIR_TESTDATA ) {
-			$overrides['action'] = 'wp_handle_mock_upload';
+			$overrides['action']  = 'wp_handle_mock_upload';
+			$_POST['html-upload'] = true;
 		}
 
 		/** Include admin functions to get access to wp_handle_upload() */
Index: tests/phpunit/tests/rest-api/rest-attachments-controller.php
===================================================================
--- tests/phpunit/tests/rest-api/rest-attachments-controller.php	(revision 42973)
+++ tests/phpunit/tests/rest-api/rest-attachments-controller.php	(working copy)
@@ -1367,4 +1367,108 @@
 
 	}
 
+	/**
+	 * @ticket 43751
+	 * @group multisite
+	 * @group ms-required
+	 */
+	public function test_create_item_with_file_exceeds_multisite_max_filesize() {
+		wp_set_current_user( self::$author_id );
+		add_filter( 'wp_handle_mock_upload_prefilter', 'check_upload_size' );
+		update_site_option( 'fileupload_maxk', 1 );
+		update_site_option( 'upload_space_check_disabled', false );
+
+		$request = new WP_REST_Request( 'POST', '/wp/v2/media' );
+		$request->set_file_params(
+			array(
+				'file' => array(
+					'error'    => '0',
+					'file'     => file_get_contents( $this->test_file ),
+					'name'     => 'canola.jpg',
+					'size'     => filesize( $this->test_file ),
+					'tmp_name' => $this->test_file,
+				),
+			)
+		);
+		$request->set_param( 'title', 'My title is very cool' );
+		$request->set_param( 'caption', 'This is a better caption.' );
+		$request->set_header( 'Content-MD5', md5_file( $this->test_file ) );
+
+		$response = rest_get_server()->dispatch( $request );
+		$this->assertErrorResponse( 'rest_upload_unknown_error', $response, 500 );
+	}
+
+	/**
+	 * @ticket 43751
+	 * @group multisite
+	 * @group ms-required
+	 */
+	public function test_create_item_with_data_exceeds_multisite_max_filesize() {
+		wp_set_current_user( self::$author_id );
+		update_site_option( 'fileupload_maxk', 1 );
+		update_site_option( 'upload_space_check_disabled', false );
+
+		$request = new WP_REST_Request( 'POST', '/wp/v2/media' );
+		$request->set_header( 'Content-Type', 'image/jpeg' );
+		$request->set_header( 'Content-Disposition', 'attachment; filename=canola.jpg' );
+		$request->set_body( file_get_contents( $this->test_file ) );
+		$request->set_param( 'title', 'My title is very cool' );
+		$request->set_param( 'caption', 'This is a better caption.' );
+
+		$response = rest_get_server()->dispatch( $request );
+		$this->assertErrorResponse( 'rest_upload_sideload_error', $response, 500 );
+	}
+
+	/**
+	 * @ticket 43751
+	 * @group multisite
+	 * @group ms-required
+	 */
+	public function test_create_item_with_file_exceeds_multisite_site_upload_space() {
+		wp_set_current_user( self::$author_id );
+		add_filter( 'wp_handle_mock_upload_prefilter', 'check_upload_size' );
+		add_filter( 'get_space_allowed', '__return_zero' );
+		update_site_option( 'upload_space_check_disabled', false );
+
+		$request = new WP_REST_Request( 'POST', '/wp/v2/media' );
+		$request->set_file_params(
+			array(
+				'file' => array(
+					'error'    => '0',
+					'file'     => file_get_contents( $this->test_file ),
+					'name'     => 'canola.jpg',
+					'size'     => filesize( $this->test_file ),
+					'tmp_name' => $this->test_file,
+				),
+			)
+		);
+		$request->set_param( 'title', 'My title is very cool' );
+		$request->set_param( 'caption', 'This is a better caption.' );
+		$request->set_header( 'Content-MD5', md5_file( $this->test_file ) );
+
+		$response = rest_get_server()->dispatch( $request );
+		$this->assertErrorResponse( 'rest_upload_unknown_error', $response, 500 );
+	}
+
+	/**
+	 * @ticket 43751
+	 * @group multisite
+	 * @group ms-required
+	 */
+	public function test_create_item_with_data_exceeds_multisite_site_upload_space() {
+		wp_set_current_user( self::$author_id );
+		add_filter( 'get_space_allowed', '__return_zero' );
+		update_site_option( 'upload_space_check_disabled', false );
+
+		$request = new WP_REST_Request( 'POST', '/wp/v2/media' );
+		$request->set_header( 'Content-Type', 'image/jpeg' );
+		$request->set_header( 'Content-Disposition', 'attachment; filename=canola.jpg' );
+		$request->set_body( file_get_contents( $this->test_file ) );
+		$request->set_param( 'title', 'My title is very cool' );
+		$request->set_param( 'caption', 'This is a better caption.' );
+
+		$response = rest_get_server()->dispatch( $request );
+		$this->assertErrorResponse( 'rest_upload_sideload_error', $response, 500 );
+	}
+
 }
