Index: trunk/ippScripts/scripts/ipp_cleanup.pl
===================================================================
--- trunk/ippScripts/scripts/ipp_cleanup.pl	(revision 35787)
+++ trunk/ippScripts/scripts/ipp_cleanup.pl	(revision 35791)
@@ -242,5 +242,5 @@
                     my $fault = $imfile->{fault};
 
-                    if (file_gone($config_file)) {
+                    if (file_gone($config_file) or !storage_object_exists($config_file)) {
                         # config file was lost. Clean up. If the chip is ever updated a new config
                         # file will be created
@@ -551,5 +551,5 @@
                     my $fault = $skyfile->{fault};
                     my $quality = $skyfile->{quality};
-                    if (file_gone($config_file)) {
+                    if (file_gone($config_file) or !storage_object_exists($config_file)) {
                         print STDERR "forcing cleanup warp $stage_id $skycell_id fault: $fault quality: $quality"
                             . " because config file ($config_file) is gone\n";
@@ -890,5 +890,5 @@
                     my $fault = $skyfile->{fault};
                     my $quality = $skyfile->{quality};
-                    if (file_gone($config_file)) {
+                    if (file_gone($config_file) or !storage_object_exists($config_file)) {
                         print STDERR "forcing cleanup diff $stage_id $skycell_id fault: $fault quality: $quality"
                             . " because config file ($config_file) is gone\n";
@@ -2389,4 +2389,10 @@
 }
 
+sub storage_object_exists {
+    my $filename = shift;
+    $nebulous_server = $ipprc->nebulous() if !$nebulous_server;
+    return $nebulous_server->storage_object_exists($filename);
+}
+
 # XXX we currently do not set the error state in the db on my_die
 sub my_die
