It's especially bad with the crap programs on Windows that encoded videos and the like.
Or literally open the iPhoto Library folder and go rescuing your photos. There are all sort of thumbnail versions in there for performance, so you'll have to discover the folder hierarchy to find your originals, but they're there.
I came from Aperture into modern Photos after holding out as long as possible. As versions updated, Photos understood more and more Aperture metadata and edits.
With 10^6 photos, to get this to work I had to use old Aperture Library manager utilities to split those by album (by year for unclassified), then bring those split libs into Photos one at a time.
I brought each into its own Photos library to limit blast radius of import issues, and was able to isolate which image(s) caused faults.
After having an array of Photos libraries, I made a big enough store on a fast Mac that could stay online uninterrupted to act as my library host and iCloud Photos master.
I imported Photos to Photos, and let it sync. Able to use logs and narrow down and retry remaining from an import when issues. Eventually, all good.
There is a rate limit on syncing Photos to cloud. If Photos thinks you’re doing separate syncs, it can hit at 25K. So after that either just let it sit to catch up over the next week(s), or, if you are somehow certain of zero errors, keep cloud sync off until all Photos are imported and indexed locally then turn it on. Helping others with this, I’ve had to try both ways. All at once is best if no errors, as it doesn’t seem to rate limit the first batch.
https://support.apple.com/en-us/HT202299
Note, with 10^6 photos in iCloud Photos and multiple devices syncing, sometimes one or more usually older items lose sync or won’t sync from an iPhone. In my experiences, nothing fixes this, not even disable/enable iCloud Photos — until the next major version number iOS release, which seems to reindex or rebuild device Photos library.
I don't know, I haven't counted them in a long time. But probably tens of thousands of photos curated into hundreds of albums across a few dozen separate iPhoto libraries. It's over 20 years worth of work.
Even if I exported all the albums manually I would lose the captions.
Also, I don't want my photos in the cloud. I want them only on media in my direct physical control because I want to retain my Fourth Amendment rights.