Addressing "loading metadata" hangs for low bandwidth users

if the page is actually responding to you and hasn’t frozen altogether, then you’re probably making things harder for yourself by deleting photos in the process of uploading. even though you can add a bunch of photos to be uploaded on the web Upload screen, the reality is that the page pushes only up to 3 at a time to iNat’s servers. so say you drag and drop 50 photo files to the Upload page. at this point, you’ll get 50 “cards” that say they’re all “loading metadata…”, but the reality is that only 3 of those actually will be getting loaded to iNat, and the page will be waiting for one or more of those to complete before starting to push the 47 remaining files to iNat.

if the page is actually still going, you should just wait. you should be able to look at your network activity at an OS level to see if there is activity on the upload side on your connection. as long as the throughput is not unexpectedly low compared to the capabilities of your connection, then there should be nothing to worry about.

alternatively, you could open your browser’s developer tools and go to the network activity monitor to see what’s actually happening during your upload. if you see up to 3 active POST /photos processes, then there’s nothing to worry about.

if your connection is interrupted and your Upload page is still working, the page will retry until it reaches a retry limit or until it completes the upload. unfortunately, this means that if your connection is quite flaky, the way the retry logic has been implemented, it could make uploads take substantially longer than expected.

it wouldn’t help you get images loaded any better, but if you just wanted more feedback about when it’s retrying, you could ask for the page to provide more accurate information about what it’s actually doing: “uploading to server”, “uploading to server (retry 1 of 10)”, “getting uploaded photo details”, “waiting to begin upload”, etc…

you could also ask for an option to control how many retries are attempted, although again, this doesn’t necessarily help you get images loaded any better.

actually extracting metadata should be near instantaneous on modern machines.

sending it as part of your image files may take some time to the extent that it makes the files bigger, depending on your connection. but i don’t know that it would be desirable to try to make your browser do the work of somehow separating your metadata from your core images. doing a lot of file manipulation or similar processing on the client side (as opposed to the server side) is asking for issues and maintenance headaches because it’s much harder to control the exact setup the users have. it’s going to be much more reliable to just send the entire file as is and do most of that processing on the server side.

the page does extract some limited metadata on the client side because it helps fill in some key inputs for your observation. so i think the developers did add that limited functionality on that page just so that users didn’t have to wait for that to be done on the server side after uploading the files.