### 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_update(p_code == HTTPClient::RESPONSE_NOT_MODIFIED, true, p_data, p_queue_id);
	} else {
		WARN_PRINT("Error getting image file from URL: " + image_queue[p_queue_id].image_url);
		Object *obj = ObjectDB::get_instance(image_queue[p_queue_id].target);
		if (obj) {
			obj->call("set_image", image_queue[p_queue_id].image_type, image_queue[p_queue_id].image_index, get_editor_theme_icon(SNAME("FileBrokenBigThumb")));
		}
	}
	image_queue[p_queue_id].request->queue_free();
	image_queue.erase(p_queue_id);
	_update_image_queue();
}
void EditorAssetLibrary::_update_image_queue() {
	const int max_images = 6;
	int current_images = 0;
	List<int> to_delete;
	for (KeyValue<int, ImageQueue> &E : image_queue) {
		if (!E.value.active && current_images < max_images) {
			String cache_filename_base = EditorPaths::get_singleton()->get_cache_dir().path_join("assetimage_" + E.value.image_url.md5_text());
			Vector<String> headers;
			if (FileAccess::exists(cache_filename_base + ".etag") && FileAccess::exists(cache_filename_base + ".data")) {
				Ref<FileAccess> file = FileAccess::open(cache_filename_base + ".etag", FileAccess::READ);
				if (file.is_valid()) {
					headers.push_back("If-None-Match: " + file->get_line());
				}
			}
			Error err = E.value.request->request(E.value.image_url, headers);
			if (err != OK) {
				to_delete.push_back(E.key);
			} else {