diff --git src/wp-includes/media.php src/wp-includes/media.php
index a3a8088..ba52555 100644
--- src/wp-includes/media.php
+++ src/wp-includes/media.php
@@ -3139,7 +3139,7 @@ function wp_prepare_attachment_for_js( $attachment ) {
 	if ( current_user_can( 'delete_post', $attachment->ID ) )
 		$response['nonces']['delete'] = wp_create_nonce( 'delete-post_' . $attachment->ID );
 
-	if ( $meta && ! empty( $meta['sizes'] ) ) {
+	if ( $meta && ( 'image' === $type || ! empty( $meta['sizes'] ) ) ) {
 		$sizes = array();
 
 		/** This filter is documented in wp-admin/includes/media.php */
diff --git tests/phpunit/tests/media.php tests/phpunit/tests/media.php
index 2453a47..d8c28c2 100644
--- tests/phpunit/tests/media.php
+++ tests/phpunit/tests/media.php
@@ -270,6 +270,31 @@ https://w.org</a>'
 	}
 
 	/**
+	 * @ticket 38965
+	 */
+	function test_wp_prepare_attachment_for_js_without_image_sizes() {
+		// Create the attachement post.
+		$id = wp_insert_attachment( array(
+			'post_title' => 'Attachment Title',
+			'post_type' => 'attachment',
+			'post_parent' => 0,
+			'post_mime_type' => 'image/jpeg',
+			'guid' => 'http://' . WP_TESTS_DOMAIN . '/wp-content/uploads/test-image.jpg',
+		) );
+
+		// Add attachment metadata without sizes.
+		wp_update_attachment_metadata( $id, array(
+			'width' => 50,
+			'height' => 50,
+			'file' => 'test-image.jpg',
+		) );
+
+		$prepped = wp_prepare_attachment_for_js( get_post( $id ) );
+
+		$this->assertTrue( isset( $prepped['sizes'] ) );
+	}
+
+	/**
 	 * @ticket 19067
 	 * @expectedDeprecated wp_convert_bytes_to_hr
 	 */
