Index: trunk/pstamp/scripts/dquery_finish.pl
===================================================================
--- trunk/pstamp/scripts/dquery_finish.pl	(revision 18640)
+++ trunk/pstamp/scripts/dquery_finish.pl	(revision 18733)
@@ -67,5 +67,16 @@
 exit ($PS_EXIT_CONFIG_ERROR) unless defined $outputDataStoreRoot; # lookup failure outputs a message
 
-my $out_dir = "$outputDataStoreRoot/$product/$req_name";
+if ($product eq "NULL") {
+    # parsing failed just with fault = 0 (this leaves previously set fault in place
+    stop_request($req_id, 0, $verbose);
+    exit 0;
+}
+my $prod_dir = "$outputDataStoreRoot/$product";
+if (! -e $prod_dir ) {
+    # something must have gone wrong at the parse stage
+    stop_request($req_id, $PS_EXIT_SYS_ERROR, $verbose);
+    die "product directory does not exist $prod_dir";
+}
+my $out_dir = "$prod_dir/$req_name";
 if (! -e $out_dir ) {
     # something must have gone wrong at the parse stage
Index: trunk/pstamp/scripts/request_finish.pl
===================================================================
--- trunk/pstamp/scripts/request_finish.pl	(revision 18640)
+++ trunk/pstamp/scripts/request_finish.pl	(revision 18733)
@@ -74,4 +74,5 @@
     my $command = $finish_cmd . " --req_id $req_id --req_name $req_name --product $product";
     $command   .= " --dbname $dbname" if $dbname;
+    $command   .= " --verbose" if $verbose;
     my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
         run(command => $command, verbose => $verbose);
