3d00d8348e1cb6eafec60cc3d7321f6de7e669be
braney
  Mon Dec 12 13:09:49 2022 -0800
be smarter about showing the user error messages

diff --git src/hg/lib/web.c src/hg/lib/web.c
index c05f8e2..5c4725b 100644
--- src/hg/lib/web.c
+++ src/hg/lib/web.c
@@ -907,33 +907,36 @@
  * In the cart only, we use the same order of preference.
  * If someone requests an Genome we try to give them the same db as
  * was in their cart, unless the Genome doesn't match.
  */
 {
 boolean gotClade = hGotClade();
 *retDb = (dbOveride != NULL) ? dbOveride :  cgiOptionalString(dbCgiName);
 if (*retDb == NULL)  // if db is not in URL, but genome is, use it for db 
     *retDb = cgiOptionalString(hgHubGenome);
 
 *retGenome = cgiOptionalString(orgCgiName);
 *retClade = cgiOptionalString(cladeCgiName);
 
 /* Was the database passed in as a cgi param?
  * If so, it takes precedence and determines the genome. */
-if (*retDb && hDbExists(*retDb))
+if (*retDb)
     {
+    if (hDbExists(*retDb))
         *retGenome = hGenome(*retDb);
+    else
+        errAbort("No db called %s", *retDb);
     }
 /* If no db was passed in as a cgi param then was the organism (a.k.a. genome)
  * passed in as a cgi param?
  * If so, the we use the proper database for that genome. */
 else if (*retGenome && !sameWord(*retGenome, "0"))
     {
     *retDb = getDbForGenome(*retGenome, cart);
     *retGenome = hGenome(*retDb);
     }
 else if (*retClade && gotClade)
     {
     *retGenome = hDefaultGenomeForClade(*retClade);
     *retDb = getDbForGenome(*retGenome, cart);
     }
 /* If no cgi params passed in then we need to inspect the session */