Index: /trunk/psastro/src/psastroMosaicChipAstrom.c
===================================================================
--- /trunk/psastro/src/psastroMosaicChipAstrom.c	(revision 20801)
+++ /trunk/psastro/src/psastroMosaicChipAstrom.c	(revision 20802)
@@ -36,12 +36,18 @@
                 if (!psastroMosaicOneChip (chip, readout, recipe, updates, iteration)) {
                     readout->data_exists = false;
-                    psError(PS_ERR_UNKNOWN, false, "failed to find a solution for %d,%d,%d\n",
-                            view->chip, view->cell, view->readout);
-                    psFree(view);
-                    return false;
+                    psError(PS_ERR_UNKNOWN, false, "failed to find a solution for %d,%d,%d\n", view->chip, view->cell, view->readout);
+		    psErrorStackPrint(stderr, "failure for one chip\n");
+		    psErrorClear();
+		    continue;
                 }
 
                 // create the header keywords to descripe the results
-                pmAstromWriteBilevelChip (updates, chip, NONLIN_TOL);
+                if (!pmAstromWriteBilevelChip (updates, chip, NONLIN_TOL)) {
+                    readout->data_exists = false;
+                    psError(PS_ERR_UNKNOWN, false, "invalid solution for %d,%d,%d\n", view->chip, view->cell, view->readout);
+		    psErrorStackPrint(stderr, "failure for one chip\n");
+		    psErrorClear();
+		    continue;
+                }
             }
         }
