diff --git a/data-discovery/src/main/java/search/DbPSearch.java b/data-discovery/src/main/java/search/DbPSearch.java
index 87aa285ea04eab5a231e97a53a3563e7e0f2e42b..3fdea6fe821db3080b26c1cf46704eb5eeade2c2 100644
--- a/data-discovery/src/main/java/search/DbPSearch.java
+++ b/data-discovery/src/main/java/search/DbPSearch.java
@@ -182,55 +182,55 @@ public class DbPSearch
          {
             FormatResponseFilter.ObsCore obsCore = new FormatResponseFilter.ObsCore();
 
-            obsCore.dataproduct_type  = res.getString("dataproduct_type");
-            obsCore.calib_level       = res.getInt("calib_level");
-            obsCore.obs_collection    = res.getString("obs_collection");
-            obsCore.obs_title         = res.getString("obs_title");
-            obsCore.obs_id            = res.getString("obs_id");
-            obsCore.obs_publisher_did = res.getString("obs_publisher_did");
-
-            obsCore.bib_reference = res.getString("bib_reference");
-            obsCore.data_rights   = res.getString("data_rights");
-
-            obsCore.access_url     = res.getString("access_url");
-            obsCore.access_format  = res.getString("access_format");
-            obsCore.access_estsize = res.getLong("access_estsize");
-
-            obsCore.target_name = res.getString("target_name");
-
-            obsCore.s_ra         = res.getDouble("s_ra");
-            obsCore.s_dec        = res.getDouble("s_dec");
-            obsCore.s_fov        = res.getDouble("s_fov");
-            obsCore.s_region     = res.getString("s_region");
-            obsCore.s_region_galactic = res.getString("s_region_galactic");
-            obsCore.s_xel1       = res.getLong("s_xel1");
-            obsCore.s_xel2       = res.getLong("s_xel2");
-            obsCore.s_resolution = res.getDouble("s_resolution");
-
-            obsCore.t_min         = res.getDouble("t_min");
-            obsCore.t_max         = res.getDouble("t_max");
-            obsCore.t_exptime     = res.getDouble("t_exptime");
-            obsCore.t_resolution  = res.getDouble("t_resolution");
-            obsCore.t_xel         = res.getLong("t_xel");
-
-            obsCore.vel_min      = res.getDouble("vel_min"); //boolean em_min_valid = !res.wasNull();
-            obsCore.vel_max      = res.getDouble("vel_max"); //boolean em_max_valid = !res.wasNull();
-
-            obsCore.em_min       = res.getDouble("em_min"); boolean em_min_valid = !res.wasNull();
-            obsCore.em_max       = res.getDouble("em_max"); boolean em_max_valid = !res.wasNull();
+            obsCore.dataproduct_type  = this.getString(res,"dataproduct_type");
+            obsCore.calib_level       = this.getInt(res,"calib_level");
+            obsCore.obs_collection    = this.getString(res,"obs_collection");
+            obsCore.obs_title         = this.getString(res,"obs_title");
+            obsCore.obs_id            = this.getString(res,"obs_id");
+            obsCore.obs_publisher_did = this.getString(res,"obs_publisher_did");
+
+            obsCore.bib_reference = this.getString(res,"bib_reference");
+            obsCore.data_rights   = this.getString(res,"data_rights");
+
+            obsCore.access_url     = this.getString(res,"access_url");
+            obsCore.access_format  = this.getString(res,"access_format");
+            obsCore.access_estsize = this.getLong(res,"access_estsize");
+
+            obsCore.target_name = this.getString(res,"target_name");
+
+            obsCore.s_ra         = this.getDouble(res,"s_ra");
+            obsCore.s_dec        = this.getDouble(res,"s_dec");
+            obsCore.s_fov        = this.getDouble(res,"s_fov");
+            obsCore.s_region     = this.getString(res,"s_region");
+            obsCore.s_region_galactic = this.getString(res,"s_region_galactic");
+            obsCore.s_xel1       = this.getLong(res,"s_xel1");
+            obsCore.s_xel2       = this.getLong(res,"s_xel2");
+            obsCore.s_resolution = this.getDouble(res,"s_resolution");
+
+            obsCore.t_min         = this.getDouble(res,"t_min");
+            obsCore.t_max         = this.getDouble(res,"t_max");
+            obsCore.t_exptime     = this.getDouble(res,"t_exptime");
+            obsCore.t_resolution  = this.getDouble(res,"t_resolution");
+            obsCore.t_xel         = this.getLong(res,"t_xel");
+
+            obsCore.vel_min      = this.getDouble(res,"vel_min"); //boolean em_min_valid = !res.wasNull();
+            obsCore.vel_max      = this.getDouble(res,"vel_max"); //boolean em_max_valid = !res.wasNull();
+
+            obsCore.em_min       = this.getDouble(res,"em_min"); boolean em_min_valid = !res.wasNull();
+            obsCore.em_max       = this.getDouble(res,"em_max"); boolean em_max_valid = !res.wasNull();
             obsCore.em_valid     = em_min_valid && em_max_valid;;
-            obsCore.em_res_power = res.getDouble("em_res_power");
-            obsCore.em_xel       = res.getLong("em_xel");
+            obsCore.em_res_power = this.getDouble(res,"em_res_power");
+            obsCore.em_xel       = this.getLong(res,"em_xel");
 
-            obsCore.o_ucd = res.getString("o_ucd");
+            obsCore.o_ucd = this.getString(res,"o_ucd");
 
-            obsCore.pol_states = res.getString("pol_states");
-            obsCore.pol_xel    = res.getLong("pol_xel");
+            obsCore.pol_states = this.getString(res,"pol_states");
+            obsCore.pol_xel    = this.getLong(res ,"pol_xel");
 
-            obsCore.facility_name = res.getString("facility_name");
-            obsCore.instrument_name = res.getString("instrument_name");
+            obsCore.facility_name = this.getString(res,"facility_name");
+            obsCore.instrument_name = this.getString(res,"instrument_name");
 
-            obsCore.vertices_str  = res.getString("polygon_region_galactic");
+            obsCore.vertices_str  = this.getString(res,"polygon_region_galactic");
             obsCore.inputInsideDb = res.getBoolean("inputInsideDb");
             obsCore.dbInsideInput = res.getBoolean("dbInsideInput");
 
@@ -250,6 +250,65 @@ public class DbPSearch
       return cubes;
    }
 
+   /* conversions tolerate missing columns */
+
+   private Integer getInt(ResultSet res, String colLabel)
+   {
+      try
+      {
+         Integer value = res.getInt(colLabel);
+         return (res.wasNull() ? null : value);
+      }
+      catch(SQLException se)
+      {
+         logSqlExInfo(se);
+         return null;
+      }
+   }
+
+   private Long getLong(ResultSet res, String colLabel)
+   {
+      try
+      {
+         Long value = res.getLong(colLabel);
+         return (res.wasNull() ? null : value);
+      }
+      catch(SQLException se)
+      {
+         logSqlExInfo(se);
+         return null;
+      }
+   }
+
+   private Double getDouble(ResultSet res, String colLabel)
+   {
+      try
+      {
+         Double value = res.getDouble(colLabel);
+         return (res.wasNull() ? null : value);
+      }
+      catch(SQLException se)
+      {
+         logSqlExInfo(se);
+         return null;
+      }
+   }
+
+   private String getString(ResultSet res, String colLabel)
+   {
+      try
+      {
+         String value = res.getString(colLabel);
+         return (res.wasNull() ? null : value);
+      }
+      catch(SQLException se)
+      {
+         logSqlExInfo(se);
+         return null;
+      }
+   }
+
+
 
    private String toPgSphereSqlTypeString(Pos pos)
    {
@@ -338,7 +397,7 @@ public class DbPSearch
    {
       LOGGER.fine("SQLState : " + se.getSQLState());
       LOGGER.fine("ErrorCode: " + se.getErrorCode());
-      LOGGER.fine("Message  : " + se.getMessage());
+      LOGGER.warning("Message  : " + se.getMessage());
       Throwable t = se.getCause();
       while(t != null) {
          LOGGER.fine("Cause: " + t);
diff --git a/data-discovery/src/main/java/webapi/formatfilter/ObscoreExt.java b/data-discovery/src/main/java/webapi/formatfilter/ObscoreExt.java
index fea98452390ab391c6d3d684292f16871281da3c..3d46d175f55d867c0e2348284f3db9450ed5f7c2 100644
--- a/data-discovery/src/main/java/webapi/formatfilter/ObscoreExt.java
+++ b/data-discovery/src/main/java/webapi/formatfilter/ObscoreExt.java
@@ -63,8 +63,8 @@ class ObscoreExt
    {
       return new Object[]
       {
-         dataset.obsCore.dataproduct_type,//dataset.dataType, 
-            Integer.valueOf( dataset.obsCore.calib_level ),
+         dataset.obsCore.dataproduct_type,
+            dataset.obsCore.calib_level,
             dataset.obsCore.obs_collection,
             dataset.obsCore.obs_title,
             dataset.obsCore.obs_id,
@@ -72,31 +72,36 @@ class ObscoreExt
             dataset.obsCore.bib_reference,
             dataset.obsCore.data_rights,
 
-            dataset.obsCore.access_url,//dataset.access.accessCutoutUrl,
+            dataset.obsCore.access_url,
             dataset.obsCore.access_format,
-            Long.valueOf( dataset.obsCore.access_estsize ),
+            dataset.obsCore.access_estsize,
 
             dataset.obsCore.target_name,
 
-            Double.valueOf(dataset.obsCore.s_ra),Double.valueOf(dataset.obsCore.s_dec),
-            Double.valueOf(dataset.obsCore.s_fov),
+            dataset.obsCore.s_ra,
+            dataset.obsCore.s_dec,
+            dataset.obsCore.s_fov,
 
             dataset.obsCore.s_region,
-            Long.valueOf( dataset.obsCore.s_xel1 ), Long.valueOf( dataset.obsCore.s_xel2 ),
-            Double.valueOf(dataset.obsCore.s_resolution),
+            dataset.obsCore.s_xel1,
+            dataset.obsCore.s_xel2,
+            dataset.obsCore.s_resolution,
 
-            Double.valueOf(dataset.obsCore.t_min), Double.valueOf(dataset.obsCore.t_max),
-            Double.valueOf(dataset.obsCore.t_exptime), Double.valueOf(dataset.obsCore.t_resolution),
-            Long.valueOf( dataset.obsCore.t_xel ),
+            dataset.obsCore.t_min,
+            dataset.obsCore.t_max,
+            dataset.obsCore.t_exptime,
+            dataset.obsCore.t_resolution,
+            dataset.obsCore.t_xel,
 
-            Double.valueOf(dataset.obsCore.em_min), Double.valueOf(dataset.obsCore.em_max),
-            Double.valueOf(dataset.obsCore.em_res_power),
-            Long.valueOf( dataset.obsCore.em_xel ),
+            dataset.obsCore.em_min,
+            dataset.obsCore.em_max,
+            dataset.obsCore.em_res_power,
+            dataset.obsCore.em_xel,
 
             dataset.obsCore.o_ucd,
 
             dataset.obsCore.pol_states,
-            Long.valueOf( dataset.obsCore.pol_xel ),
+            dataset.obsCore.pol_xel,
 
             dataset.obsCore.facility_name,
             dataset.obsCore.instrument_name,
@@ -121,15 +126,14 @@ class ObscoreExt
    {
       return new Object[]
       {
-         Integer.valueOf( dataset.overlapCode ),
-            Integer.valueOf( dataset.overlapCodeSky ),
-            Integer.valueOf( dataset.overlapCodeVel ),
+         dataset.overlapCode,
+            dataset.overlapCodeSky,
+            dataset.overlapCodeVel,
 
             dataset.obsCore.s_region_galactic,
 
-            dataset.obsCore.vel_min == null ? null : Double.valueOf(dataset.obsCore.vel_min),
-            dataset.obsCore.vel_min == null ? null : Double.valueOf(dataset.obsCore.vel_max),
-
+            dataset.obsCore.vel_min,
+            dataset.obsCore.vel_max,
       };
    }