### Godot version

v4.1.1.stable.official [bd6af8e0e]

### System information

Godot v4.1.1.stable - Windows 10.0.22621 - Vulkan (Forward+) - dedicated NVIDIA GeForce GTX 1080 Ti (NVIDIA; 31.0.15.3667) - AMD Ryzen 9 7900X 12-Core Processor (24 Threads)

### Issue description

This [addon](https://godotengine.org/asset-library/asset/1989) is shown as empty when downloaded via the editor. If downloading from the website everything works fine and there is content in the zip file.
![image](https://github.com/godotengine/godot/assets/10883690/259f114a-6ac0-4dd2-b71f-75c35d91ba85)

The asset uses `Custom` as repository host, linking with URL to `https://github.com/kenyoni-software/godot-addons/releases/download/hide_private_properties-1.0.1/hide_private_properties-1_0_1.zip`

### Steps to reproduce

Go to the Asset Lib and download [Hide Private Properties](https://godotengine.org/asset-library/asset/1989).

### Minimal reproduction project

N/A
image_set = true;
		}
		if (!image_set && final) {
			obj->call("set_image", image_queue[p_queue_id].image_type, image_queue[p_queue_id].image_index, get_editor_theme_icon(SNAME("FileBrokenBigThumb")));
		}
	}
}
void EditorAssetLibrary::_image_request_completed(int p_status, int p_code, const PackedStringArray &headers, const PackedByteArray &p_data, int p_queue_id) {
	ERR_FAIL_COND(!image_queue.has(p_queue_id));
	if (p_status == HTTPRequest::RESULT_SUCCESS && p_code < HTTPClient::RESPONSE_BAD_REQUEST) {
		if (p_code != HTTPClient::RESPONSE_NOT_MODIFIED) {
			for (int i = 0; i < headers.size(); i++) {
				if (headers[i].findn("ETag:") == 0) { 
					String cache_filename_base = EditorPaths::get_singleton()->get_cache_dir().path_join("assetimage_" + image_queue[p_queue_id].image_url.md5_text());
					String new_etag = headers[i].substr(headers[i].find(":") + 1, headers[i].length()).strip_edges();
					Ref<FileAccess> file = FileAccess::open(cache_filename_base + ".etag", FileAccess::WRITE);
					if (file.is_valid()) {
						file->store_line(new_etag);
					}
					int len = p_data.size();
					const uint8_t *r = p_data.ptr();
					file = FileAccess::open(cache_filename_base + ".data", FileAccess::WRITE);
					if (file.is_valid()) {
						file->store_32(len);
						file->store_buffer(r, len);
					}
					break;
				}
			}
		}