# SFDX Source retrieve duplicating classes

I have a custom structure inside main/defaut/classes

The classes where created in these custom folders. When i try to retrieve metadata with:

sfdx force:source:retrieve --sourcepath ...\force-app\main\default\classes

The existing classes are not updated, but created again in the root directory \force-app\main\default\classes

• Looks like you are using the falcon-template. Please see this the selected answer especially the section What is the "Default Package Directory" and why is it special? and see if that answers your question. The default retrive always fetches into the default source directory/classes folder. – manjit5190 Jul 29 '20 at 13:47
• It's the standard sfdx project template. But i created new folders in classes directory of default package. Until then, when retrieving, files were updated within this customized structure, for example : force-app\main\default\classes\Application\Controller\ContactsController. Now it is going to the root of the classes folder – vrr Jul 29 '20 at 13:53

This is a bug and you can try the alm pre version by using below for a temporary fix

sfdx plugins:install salesforce-alm@mpd


Look for updates to the CLI in the coming days.

Also make sure to follow below guidelines

Source path in your command has to be the exact path as your class name.

Try this

sfdx force:source:retrieve --sourcepath force-app\main\default\classes\Application\Controller\ContactsController


The other would be not using the path and use the name like below

sfdx force:source:retrieve -m "ApexClass:ContactsController"

• I need to retrieve the entire directory, as the project is versioned and there may be changes in several files. – vrr Jul 29 '20 at 14:35
• Just use the directory name as shown in first example! Remove the class name and use the right directory name and it will retrieve to the right folder! – Mohith Shrivastava Jul 29 '20 at 14:36
• Thus, all classes are duplicated at the root of the "classes" folder, and not updated in the appropriate directories within "classes" of which the files already exist. Instead of the file being updated in: classes \Application\Controller\ContactsController A new file is created at: classes\ContactsController – vrr Jul 29 '20 at 14:44
• Try the new version of alm package! I updated the answer! I think this is a bug and we have a pre release plugin to fix it for now – Mohith Shrivastava Jul 29 '20 at 14:52
• Worked! Thank you :) – vrr Jul 30 '20 at 14:39