In the callback, I can see that the failure occurs on a .DS_Store file inside the folder. So for a .DS_Store, it is simple enough for me to just ignore the error and return COPYFILE_SKIP, but the somewhat more concerning issue here is that the true error reason is seemingly not reported? In the callback, if I read errno, it is 0. When copyfile returns, it returns -1 after I return COPYFILE_QUIT (and errno is 0), so I don't know what the error is or the appropriate way to handle it. FYI, the code to copyfile is actually open-source, so you can fairly easily find all of the places where your callback would have been called by looking for COPYFILE_ERR in the source. However: For .DS_Store, just skipping seems reasonable, but when copying a folder, it may be appropriate to get the true failure reason. ...I'd ignore all .DS_Store errors and, potentially, just skip copying them all together. The system will generate the file anytime it needs/wants to, and it's very likely that it won't consider th