Index: trunk/tools/errors.pl
===================================================================
--- trunk/tools/errors.pl	(revision 27241)
+++ trunk/tools/errors.pl	(revision 27242)
@@ -46,11 +46,18 @@
 
 my $sql;                        # Query to run
+my $table;                      # Table with fault
 if ($stage eq "diff") {
     $sql = "SELECT diff_id, skycell_id, hostname, path_base FROM diffRun JOIN diffSkyfile USING(diff_id) WHERE fault != 0";
+    $table = "diffSkyfile";
 } elsif ($stage eq "stack") {
     $sql = "SELECT stack_id, 'stack', hostname, path_base FROM stackRun JOIN stackSumSkyfile USING(stack_id) WHERE fault != 0";
+    $table = "stackSumSkyfile";
 } elsif ($stage eq "warp") {
     $sql = "SELECT warp_id, skycell_id, hostname, path_base FROM warpRun JOIN warpSkyfile USING(warp_id) WHERE fault != 0";
-}else {
+    $table = "warpSkyfile";
+} elsif ($stage eq "magic") {
+    $sql = "SELECT magic_id, node, 'unknown' AS hostname, path_base FROM magicRun JOIN magicNodeResult USING(magic_id) WHERE magicNodeResult.fault != 0";
+    $table = "magicNodeResult";
+} else {
     die "Unsupported stage: $stage\n";
 }
@@ -58,5 +65,5 @@
 my $where = "";                 # WHERE restriction
 $where .= " AND (label LIKE '" . join("' OR label LIKE '", @$label) . "')" if defined $label;
-$where .= " AND fault = $fault" if defined $fault;
+$where .= " AND $table.fault = $fault" if defined $fault;
 
 $sql .= $where if length $where > 0;
@@ -75,4 +82,5 @@
 my %couldnt_open_file;
 my %failed_read;
+my %no_instances_available;
 my %unknown;
 my %bad;
@@ -150,4 +158,9 @@
             last;
         }
+        if ($line =~ /no instances available for key: (\S+)/) {
+            $no_instances_available{$name} = $1;
+            $found = 1;
+            last;
+        }
     }
     $unknown{$name} = $log unless $found;
@@ -222,4 +235,12 @@
 }
 
+if (scalar keys %no_instances_available) {
+    print "'failed to read' errors: " . ( scalar keys %no_instances_available ) . "\n";
+    foreach my $name (keys %no_instances_available) {
+        print "$name: $no_instances_available{$name}\n";
+    }
+    print "\n";
+}
+
 if (scalar keys %unknown) {
     print "Unknown errors: " . ( scalar keys %unknown ) . "\n";
