Index: trunk/ippTools/share/pstamptool_getdependent.sql
===================================================================
--- trunk/ippTools/share/pstamptool_getdependent.sql	(revision 28144)
+++ trunk/ippTools/share/pstamptool_getdependent.sql	(revision 28145)
@@ -1,5 +1,3 @@
 SELECT DISTINCT pstampDependent.*
 FROM pstampDependent
--- JOIN pstampJob USING(dep_id)
--- JOIN pstampRequest USING(req_id)
 WHERE pstampDependent.state = 'new'
Index: trunk/ippTools/src/pstamptool.c
===================================================================
--- trunk/ippTools/src/pstamptool.c	(revision 28144)
+++ trunk/ippTools/src/pstamptool.c	(revision 28145)
@@ -1136,4 +1136,9 @@
             return false;
         }
+        psS32 fault = psMetadataLookupS64(NULL, dep, "fault");
+        if (fault > 0) {
+            fprintf(stderr, "existing dependent has fault %d\n", fault);
+            exit (fault);
+        }
         printf("%" PRId64 "\n", dep_id);
         psFree(output);
Index: trunk/pstamp/scripts/pstamp_checkdependent.pl
===================================================================
--- trunk/pstamp/scripts/pstamp_checkdependent.pl	(revision 28144)
+++ trunk/pstamp/scripts/pstamp_checkdependent.pl	(revision 28145)
@@ -307,5 +307,5 @@
             # ... and fault the dependent so that we have a record of the error
             my_die("failed to find warpSkyCelllMap for warpRun $warp_id skycell_id $skycell_id",
-                $PS_EXIT_DATA_ERROR);
+                $PSTAMP_GONE);
         }
 
Index: trunk/pstamp/scripts/pstampparse.pl
===================================================================
--- trunk/pstamp/scripts/pstampparse.pl	(revision 28144)
+++ trunk/pstamp/scripts/pstampparse.pl	(revision 28145)
@@ -829,12 +829,23 @@
             run(command => $command, verbose => $verbose);
         unless ($success) {
-            my_die("$command failed", $PS_EXIT_UNKNOWN_ERROR);
-        }
-        my $output = join "", @$stdout_buf;
-        chomp $output;
-        $dep_id = $output;
-        #
-        # XXX: need to fault the request or something
-        my_die("pstamptool -getdependent returned invalid dep_id", $PS_EXIT_PROG_ERROR) if !$dep_id;
+            my $fault = $error_code >> 8;
+            print STDERR "$command failed with fault $fault\n";
+            if ($fault >= 10) {
+                $$r_dep_id = 0;
+                $$r_fault = $fault;
+                $$r_jobState = 'stop';
+                return;
+            }
+            # for now just die. Later pstamptool will return the whole dependent so we can
+            # examine the fault code
+            my_die("$command failed with unexpected fault value: $fault", $PS_EXIT_UNKNOWN_ERROR);
+        } else {
+            my $output = join "", @$stdout_buf;
+            chomp $output;
+            $dep_id = $output;
+            #
+            # XXX: need to fault the request or something
+            my_die("pstamptool -getdependent returned invalid dep_id", $PS_EXIT_PROG_ERROR) if !$dep_id;
+        }
     } else {
         print STDERR "skipping $command\n";
