Dann gehört die Logik überprüft.
Bist du sicher, dass zwischen dem Chain und Delete nicht noch mal auf die Datei zugegeriffen wird ?

Prüfe nach dem Chain mit

if %found();
delete ...
endif;

und debugge das Ganze.
Dann kannst du prüfen ob die Variablen überhaupt den korrekten Inhalt haben.