Index: src/wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php
===================================================================
--- src/wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php	(revision 42349)
+++ src/wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php	(working copy)
@@ -419,7 +419,7 @@
 			if ( $term_id = $term->get_error_data( 'term_exists' ) ) {
 				$existing_term = get_term( $term_id, $this->taxonomy );
 				$term->add_data( $existing_term->term_id, 'term_exists' );
-				$term->add_data( array( 'status' => 409 ) );
+				$term->add_data( array( 'status' => 400 ) );
 			}
 
 			return $term;
Index: tests/phpunit/tests/rest-api/rest-categories-controller.php
===================================================================
--- tests/phpunit/tests/rest-api/rest-categories-controller.php	(revision 42349)
+++ tests/phpunit/tests/rest-api/rest-categories-controller.php	(working copy)
@@ -693,6 +693,7 @@
 
 	/**
 	 * @ticket 41370
+	 * @ticket 42781
 	 */
 	public function test_create_item_term_already_exists() {
 		wp_set_current_user( self::$administrator );
@@ -701,7 +702,7 @@
 		$response = $this->server->dispatch( $request );
 		$this->assertEquals( 201, $response->get_status() );
 		$response = $this->server->dispatch( $request );
-		$this->assertEquals( 409, $response->get_status() );
+		$this->assertEquals( 400, $response->get_status() );
 		$data = $response->get_data();
 		$this->assertEquals( 'term_exists', $data['code'] );
 	}
