7d50cb16e1ab201dfaead9f47d63fb3636ae5020
angie
  Wed May 2 14:41:09 2018 -0700
Replacing an assert that caused blank page with an errAbort message linking to trackDb doc.  refs #21386

diff --git src/hg/lib/trackDbCustom.c src/hg/lib/trackDbCustom.c
index 0bb52c5..c0aafb7 100644
--- src/hg/lib/trackDbCustom.c
+++ src/hg/lib/trackDbCustom.c
@@ -876,31 +876,34 @@
 if (conn != NULL)
     hFreeConn(&conn);
 
 return tdb;
 }
 #endif///def OMIT
 
 boolean tdbIsView(struct trackDb *tdb,char **viewName)
 // Is this tdb a view?  Will fill viewName if provided
 {
 if (tdbIsCompositeView(tdb))
     {
     if (viewName)
         {
         *viewName = trackDbLocalSetting(tdb, "view");
-        assert(*viewName != NULL);
+        if (*viewName == NULL)
+            errAbort("track '%s' appears to be a view but does not have a "
+                     "<a href=\"../goldenpath/help/trackDb/trackDbHub.html#view\" target=_blank"
+                     ">view setting</a>.", tdb->track);
         }
     return TRUE;
     }
 return FALSE;
 }
 
 char *tdbGetViewName(struct trackDb *tdb)
 // returns NULL the view name for view or child track (do not free)
 {
 char *view = NULL;
 if (tdbIsComposite(tdb))
     return NULL;
 else if (tdbIsCompositeChild(tdb) && subgroupFind(tdb,"view",&view))
     return view;
 else if (tdbIsView(tdb,&view))