21563551af4b927ca8f23ca20d48814bfd9939e0
gperez2
  Sat Sep 19 14:10:47 2026 -0700
Clarify wording of hgTrackUi's missing-track-name message. refs #38192

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

diff --git src/hg/hgTrackUi/hgTrackUi.c src/hg/hgTrackUi/hgTrackUi.c
index d160d94b778..ad5c3dbea05 100644
--- src/hg/hgTrackUi/hgTrackUi.c
+++ src/hg/hgTrackUi/hgTrackUi.c
@@ -4613,33 +4613,33 @@
  * 2021-06-21 - Hiram
  */
 if (issueBotWarning)
     {
     char *ip = getenv("REMOTE_ADDR");
     botDelayMessage(ip, botDelayMillis);
     }
 
 cart = theCart;
 /* The track name is not kept in the cart, so it has to come with the request.  Without it
  * there is no page to draw, and saying so beats the bare hash lookup failure that a
  * hand-edited or truncated URL used to produce.  A missing parameter is bad input rather
  * than a program error, so hUserAbort, which keeps it out of the stack dumps. */
 track = cartOptionalString(cart, "g");
 if (isEmpty(track))
-    hUserAbort("This page needs to know which track to show, and the address it was reached by "
-               "does not name one.  Open a track's settings from the browser, or add the track "
-               "name to the address with the g parameter, e.g. hgTrackUi?db=hg38&g=knownGene");
+    hUserAbort("This page's address does not include a track name.  Add the track name to the "
+               "address with the g parameter, e.g. hgTrackUi?db=hg38&g=knownGene, or open a "
+               "track's settings from the Genome Browser.");
 getDbAndGenome(cart, &database, &ignored, NULL);
 initGenbankTableNames(database);
 chromosome = cartUsualString(cart, "c", hDefaultChrom(database));
 trackHash = trackHashMakeWithComposites(database,chromosome,&tdbList,FALSE); 
 
 /* Handle dup of track related stuff */
 char *dupeName = handleDupOp(track, trackHash);
 if (dupeName != NULL)
     track = dupeName;
 struct dupTrack *dupList = dupTrackListFromCart(cart);
 char *dupWholeName = NULL;
 boolean isDup = isDupTrack(track);
 if (isDup)
     {
     dupWholeName = track;