ecec043d87a5893ac8c47074538bdd9d417aff7f
braney
  Fri Dec 10 12:55:02 2021 -0800
fix #28619 with an error message

diff --git src/hg/hgTracks/cds.c src/hg/hgTracks/cds.c
index 66aea13..410f3c5 100644
--- src/hg/hgTracks/cds.c
+++ src/hg/hgTracks/cds.c
@@ -1943,30 +1943,32 @@
     || indelShowQueryInsert || indelShowPolyA)
     {
     if (sameString("lrg", tg->tdb->track))
 	*retPsl = lrgToPsl(lf->original, hChromSize(database, chromName));
     else
 	*retPsl = (struct psl *)(lf->original);
     if (*retPsl == NULL)
 	return baseColorDrawOff;
     }
 if (drawOpt == baseColorDrawItemBases ||
     drawOpt == baseColorDrawDiffBases ||
     drawOpt == baseColorDrawItemCodons ||
     drawOpt == baseColorDrawDiffCodons ||
     indelShowPolyA)
     {
+    if (lf->extra == NULL)
+        errAbort("baseColorDrawSetup: sequence for track '%s' not loaded when sequence option is set in trackDb\n", tg->track);
     *retMrnaSeq = maybeGetSeqUpper(lf, tg->table, tg);
     if (*retMrnaSeq != NULL && *retPsl != NULL) // we have both sequence and PSL
 	{
         if ((*retMrnaSeq)->size != (*retPsl)->qSize)
             errAbort("baseColorDrawSetup: %s: mRNA size (%d) != psl qSize (%d)",
                      (*retPsl)->qName, (*retMrnaSeq)->size, (*retPsl)->qSize);
 	if ((*retPsl)->strand[0] == '-' || (*retPsl)->strand[1] == '-')
 	    reverseComplement((*retMrnaSeq)->dna, strlen((*retMrnaSeq)->dna));
 	}
     // if no sequence, no base color drawing
     // Note: we could have sequence but no PSL (eg, tagAlign format)
     else if (*retMrnaSeq == NULL) 
 	return baseColorDrawOff;
     }