Finder network operations time out/lock up machine

Let me describe what’s happening. My application watches a hot folder, for folders of files dropped in. When a new folder is detected, the app moves the folder to a folder where it’s working from, a “working folder” for just this application. I have copies of this app running on multiple computers- they all watch the same “hot folder” and have their own uniquely named working folder. The working folder is so they don’t cross-process. The system works well…
Except, sometimes one computer will want to move a folder, and another machine is trying to move the same folder to its working folder at the same time. The Finder gets an error and then displays a dialog asking for an administrator password because it believes the folder is locked/protected. In reality its not, but computer #2 was too slow to grab it. So my app is locked up, the Finder is displaying a password box, and there is a small dialog that shows an unending progress bar trying to move the file, which will increase to several copies of the same move operation if I let the app go for a while.

I’ve got a try block in there which I thought would take care of things, but apparently it does not.

I’d like to know if anyone has a way to streamline this and to make sure that the Finder doesn’t get hung up on files that go missing/moved just milliseconds before it tries to get it.

Here’s the code of the section handles the file moving:



    tell application "Finder"
			update (folder myWatchedFolder)
			update folder (myWatchedFolderParent & "Output:")
			try
				move every item of myWorkingFolder to folder (myWatchedFolderParent & "Error:")
			end try
		end tell
		
		try
			tell application "Finder"
				--LETS PICK THE OLDEST MOD DATE FOLDER, SO FIRST IN FIRST OUT
				set sortedFiles to every item of folder myWatchedFolder
				set sortedFiles to (sort sortedFiles by modification date)
				move last item of sortedFiles to myWorkingFolder
				
				set myIDFilesFolder to first folder of myWorkingFolder
				if (name of myIDFilesFolder) contains " " or (character 6 of (get name of myIDFilesFolder) is not "_") or (character 10 of (get name of myIDFilesFolder) is not "_") or ((count of characters of (get name of myIDFilesFolder)) ≠ 12) then
					move every item of myWorkingFolder to folder (myWatchedFolderParent & "Error:")
					set myContinue to false
				end if
				
			end tell
		on error
			set myContinue to false
		end try


Maybe using a shell script to do a folder mv would circumvent the finder’s problem. Shell just returns success or fail of the operation, right?

could it be an option to duplicate the files and delete them afterwards?

I don’t think that’s a good option. The folders are from 100 to 300 MB in size, and duplicating them on the server to the working folder would probably take too long; another machine might grab it in the meantime still.