This is a known and well documented issue. ,  to illustrate but two explanations.
Briefly, the current stable release version catalogues the location of a music file based upon its inode. In almost all instances, when moved, the file acquires a new inode number. However, the existing database does not know this and will return an error.
To fix, kill the mt-daapd process; delete the songs.gdb file; restart mt-daapd. The daemon will then rescan the tree and reindex the file locations.