How to Fix Missing Files in VirtualDJ (Red Tracks and the Wrong Drive)
Updated · by the MixGoat team · Tool: Cloud Backup
Short answer
VirtualDJ shows a track in red when the FilePath stored in its Song entry no longer exists, usually because the folder was moved or renamed, or an external drive came back under a different drive letter. The cue points, saved loops, beatgrid and play count are all attached to that path inside database.xml, so adding the file again from its new location creates a fresh entry with none of them. Fix the path rather than re-adding: put the files back, give the drive its old letter in Disk Management, use the browser's file options to search for the moved file, or, for a whole folder move, quit VirtualDJ and search-and-replace the FilePath values in database.xml after copying it to a backup. Tracks on an external drive are the easy case, because VirtualDJ keeps a separate database.xml at that drive's root and it travels with the drive.
Step by step
- 1
Read the colour and confirm the path
In VirtualDJ's browser a red title is a file that cannot be found. Right-click the track and open File Info (or hover the title, depending on the skin) to see the full path VirtualDJ expects. Compare it with where the file really is: a different drive letter, a renamed parent folder or a Music folder that moved to OneDrive or iCloud are the usual causes.
- 2
Fix a drive letter before anything else
On Windows, if an external drive that used to be E: now shows up as F:, every track in the main database that lives on it turns red at once. Open Disk Management, right-click the drive, choose Change Drive Letter and Paths, and give it the old letter. On macOS the equivalent is a renamed volume: rename it back in Finder so /Volumes/<name> matches again.
- 3
Put moved files back, or move the database's view of them
If you moved a folder yourself, moving it back is the cleanest fix. If the new location is permanent, quit VirtualDJ, copy database.xml to a safe place, open it in a text editor and replace the old folder prefix in the FilePath attributes with the new one. Every Poi, Tags and Scan element stays attached because you edited the entry rather than replacing it. Relaunch VirtualDJ and the titles turn white again.
- 4
Use VirtualDJ's own search for single files
For a handful of tracks, the browser's right-click file options on recent versions can search for a moved file and repoint the entry; the exact label differs between versions and skins, so read the menu before clicking. Avoid the database cleanup options while you are doing this: cleaning removes missing entries, and their POIs go with them.
- 5
Check the per-drive database on external drives
VirtualDJ writes a VirtualDJ/database.xml at the root of every external drive that holds tracks. Entries there use a drive-relative path, which is why a USB drive keeps its cues when it is plugged into another computer under another letter. If tracks on a drive turned red, make sure that folder was not deleted from the drive during a tidy-up; restoring it from a backup restores the cues.
- 6
Re-add only as a last resort, then regenerate cues
If the old entry is gone, VirtualDJ will analyse the re-added file (beatgrid, BPM, key, automix points) but the hot cues and saved loops are lost. MixGoat's Cues & Loops can regenerate them: point it at the new path, detect, and Save creates a full Song entry with Tags, length and POIs in database.xml. Detection is free; the save into VirtualDJ is the GOAT step.
Why the path is the key
database.xml has no track IDs. Each Song element is identified by its FilePath attribute, and everything VirtualDJ knows about the track (Tags, Infos with play count and first-seen date, Scan with BPM and key, every Poi) is nested under it. Rekordbox and Traktor also key by path but keep a separate record ID, which gives their relocate tools something to hold on to; VirtualDJ's model is simpler and, as long as the path is stable, faster to back up and copy. The cost is that the path is the identity, so a rename is a new track.
The main database on your system drive holds entries for tracks on every drive, while each external drive also gets its own database.xml. When both exist for the same file, the per-drive copy is what keeps the drive portable.
What survives, and what does not
If you repoint the existing entry (drive letter, volume name, FilePath edit, or VirtualDJ's own search), everything survives: hot cues, saved loops, remix points, beatgrid, automix points, rating, comment, play count. If you delete the entry or let a cleanup remove it and then add the file again, only what VirtualDJ can recompute comes back. Playlists in MyLists store paths too, so a .vdjfolder that referenced the old path needs the same search-and-replace or it will list the track as missing.
When MixGoat itself renames a file, for example when the loudness matcher or the WAV compatibility fix writes a "[fixed]" or "[cues]" copy, it repoints the VirtualDJ entry and the playlist files that reference it so the POIs follow the new name. MixGoat does not offer a general relocate tool for files you moved by hand; the path edit above is the manual route.
Preventing red tracks
Keep music on one drive with a fixed letter or volume name and never reorganise folders in Explorer or Finder without VirtualDJ closed and a plan for the database. If you are moving to a new computer, copy the music to the same path first and then copy database.xml and MyLists; the full checklist is at mixgoat.com/guides/move-dj-library-to-new-laptop. MixGoat Cloud Backup keeps versioned copies of database.xml so a bad cleanup can be undone; it is part of the GOAT plan. The equivalent pages for the other apps are mixgoat.com/guides/relocate-missing-files-rekordbox, mixgoat.com/guides/relocate-missing-files-serato and mixgoat.com/guides/relocate-missing-files-traktor.
Keep versioned copies of database.xml with MixGoat
Cloud Backup snapshots database.xml whenever it changes, so a bad cleanup or move can be rolled back. Part of the GOAT plan.
Keep versioned copies of database.xml with MixGoatFrequently asked questions
- Why are my tracks red in VirtualDJ?
- The file is not at the path stored in database.xml. The most common reasons are a moved or renamed folder, an external drive with a new drive letter, or a Music folder redirected to a cloud service.
- Will I lose my cue points if I re-add a file in VirtualDJ?
- Yes. Cues, loops and other POIs belong to the old Song entry. Re-adding creates a new entry that VirtualDJ analyses from scratch. Repoint the old entry instead, or regenerate the cues afterwards.
- Can I edit database.xml by hand?
- Yes, with VirtualDJ closed and a copy saved first. It is plain UTF-8 XML; replacing the old folder prefix inside the FilePath attributes is the standard fix for a whole folder move. Keep the forward or back slashes exactly as VirtualDJ wrote them.
- Does VirtualDJ handle a changed drive letter automatically?
- For tracks on an external drive with its own VirtualDJ/database.xml, largely yes, because those entries are drive-relative. Entries in the main database that use the full lettered path still go red until the letter is restored or the path is edited.
- What does Clean Database do to missing files?
- Database cleanup options remove entries whose files cannot be found. That is fine for tracks you deleted on purpose, but it permanently discards the POIs of anything that is only temporarily unplugged. Plug every drive in before running it.