Index: trunk/psastro/src/psastroChipAstrom.c
===================================================================
--- trunk/psastro/src/psastroChipAstrom.c	(revision 10785)
+++ trunk/psastro/src/psastroChipAstrom.c	(revision 10855)
@@ -49,10 +49,19 @@
 		if (refstars == NULL) { continue; }
 
+		// the absolute minimum number of stars is 4 (for order = 1)
+		if ((rawstars->n < 4) || (refstars->n < 4)) {
+		    psLogMsg ("psastro", 3, "insufficient rawstars (%ld) or refstars (%ld)", 
+			    rawstars->n, refstars->n);
+		    continue;
+		} 
+
 		// save WCS and analysis metadata in update header
 		psMetadata *updates = psMetadataAlloc();
 
+		// XXX update the header with info to reflect the failure
 		if (!psastroOneChip (fpa, chip, refstars, rawstars, recipe, updates)) {
-		    psError (PSASTRO_ERR_DATA, false, "failed to find a solution\n");
-		    return false;
+		    psLogMsg ("psastro", 3, "failed to find a solution\n");
+		    psFree (updates);
+		    continue;
 		}
 		pmAstromWriteWCS (updates, fpa, chip, NONLIN_TOL);
