Mac systems aren't prone to many errors, but when errors do occur, they tend to be both confusing and frustrating. It doesn't help that the error messages themselves are often vague, and the rarity of the errors means you probably won't find much help on the internet.

Error -36 is one of these strange issues and it happens when you're trying to copy files from one location (source) to another location (destination). Fortunately, the fix for this is pretty simple: just open the Terminal app, ideally using Spotlight, and type the following:

        dot_clean /Path/To/Source/Directory
    

For example, if the failing file is located under your Downloads directory which is located under your Home directory, you would type:

        dot_clean ~/Downloads
    

As soon as you type the command, try copying the file again. It should work now.

Curious about why this works? On newer versions of Mac that use the HFS+ filesystem, files are stored as two parts: one part is called the data fork, which holds the actual data of the file, and the other part is called the resource fork, which holds metadata like icon images and file versions.

Not all filesystems support this two-forked structure, so sometimes Mac splits the file into a data file and a resource file. The resource file has the same name as the data file except prefixed by "._" -- which works fine most of the time, but can cause errors when moved between filesystems (e.g. a Mac file moved to a FAT32 drive then moved back to Mac could result in Error -36).

The dot_clean command looks at a directory, goes through all the files in that directory, and tries to merge all data files with their corresponding resource files. If it doesn't work on a given directory, you may need to dot_clean your entire filesystem, which you should only do after backing up your entire drive with Time Machine:

        sudo dot_clean -n /
    

Did this fix your Error -36? Are there any other ways to fix this error that you know about? Let us know in the comments below!