I would almost be certain the problem is with the desktop. meaning the file IS saving somewhere - but maybe not the path you think should be considered their desktop. After using excel vba across probably 15 employers, all of them corporate type settings, I've found that even there - in strict environments - the path to the desktop might be tricky. In fact, just a few months ago, I had to deploy a 'test' to Citrix users to determine what their path to the desktop was. I deployed the test with FOUR ways of getting the desktop. I settled on the way that worked correctly for all users, Citrix and non-Citrix.
But Citrix was just 'my' wildcard factor - you may have others.
For example, once I switched from Contractor to FTE. They changed my network user id, but were lazy about resetting my windows profile on my laptop. Thus, my path to my desktop was actually NOT user profile\desktop (or something like that). It was olduserprofile\desktop.
Furthermore, the awfully hideous proliferation of OneDrive has messed things up royally. Some user's path to their desktop as seen by VBA actually has the word "onedrive" in it.
In this case I am referencing for my own path, code like userprofile\desktop actually WOULD have returned a path that existed - BUT - I would not have seen any file created on what I considered to be my desktop, because there was another desktop folder (or 2) in existence.
Desktop paths are all about windows profiles, environment variables, and nasty unpredictable stuff like ONedrive installations.
Thus, I would recommend you play around with the several ways of getting a desktop.
"c:\" & environ("username") & "\desktop"
createobject("wscript.shell").specialfolders("Desktop")
+ the way you are using
Plus I think there is one more I can't remember now and no longer work at the place where my recent code was.
Easy way to troubleshoot, deploy them a test file that records the result of all of those methods. That's what I do anytime I have doubt.
lastly, just as possible as a cause- definitely try doing this while commenting out application.displayalerts=false. In your particular case in this code, turning alerts off may have a similar effect as ignoring errors. the file may be saving to some other default location (rather than asking a user "you can't save to this location, do you want to save somewhere else) instead of asking the user.
also remove your error handler completely, then tell the user do click Debug (if you can afford to give them a non-pw-protected vba project), which will be like troubleshooting gold.