A weird bug due to having Excel installed
Posted: November 07 2021
A while ago I was working on building a basic web page that allowed a user to upload a CSV file to an S3 bucket using a presigned S3 upload URLs.
This was easy enough, I tell AWS I want to upload a file with a
text/csv and it will give me a pre-signed URL that I can use to upload without authenticating at the time of upload - nice and easy.
The confusing part came when I gave it to the user and they got an error that the presigned URL was invalid, which was odd since it ran on my machine perfectly fine and I sent the user the exact file I was testing with.
After some debugging I noticed the
Content-Type from the users request was not
text/csv but was
application/vnd.ms-excel, for the exact same file.
It turns out that if you have Microsoft Excel installed (which I did not but the user did) it "hijacks" the MIME-Type of CSV files - since Excel will handle the file.
On Windows the MIME-Type of any given file type is stored in the registry, under
HKEY_LOCAL_MACHINE\Software\Classes and when using Excel as the default application for
.csv files it will update their MIME-Type to
In the end I just blanked out the
Content-Type header (probably not the best solution but this was a only used by a single user and was behind authentication) and everything started working again.