c289d133078f074b7c5d81912a47342413fbafab
braney
  Mon Dec 11 09:22:31 2023 -0800
polish up custom track error string

diff --git src/hg/lib/customTrack.c src/hg/lib/customTrack.c
index ad4b20f..d048e9f 100644
--- src/hg/lib/customTrack.c
+++ src/hg/lib/customTrack.c
@@ -895,32 +895,38 @@
 if (customTracksExist(cart, &ctFileName))
     {
     /* protect against corrupted CT trash file or table, or transient system error */
     boolean loadFailed = FALSE;
     struct errCatch *errCatch = errCatchNew();
     if (errCatchStart(errCatch))
         {
         if (cartOptionalString(cart, "ctTest") != NULL)
             errAbort("ctTest set");
         ctList =
             customFactoryParse(genomeDb, ctFileName, TRUE, retBrowserLines);
         }
     errCatchEnd(errCatch);
     if (errCatch->gotError)
         {
+        if ( errCatch->message->string != NULL)
+            {
+            unsigned len = strlen(errCatch->message->string);
+            if (len > 0) // remove the newline
+                errCatch->message->string[len - 1] = 0;
+            }
         warn("Custom track loading error (%s): failed to load custom tracks. "
-             "This is an internal error. If you want us to look into it and fix your custom track, "
+             "This is a temporary internal error, please refresh your browser. If you continue to experience this issue"
              "please reach out to genome-www@soe.ucsc.edu and send us a session link "
              "where this error occurs",
              errCatch->message->string);
         loadFailed = TRUE;
         }
     errCatchFree(&errCatch);
     // If there was a failure in loading the custom tracks, return immediately -- don't try to
     // add or merge in new custom tracks.  The cartRemove statements below will be skipped, so we
     // can try again next click.
     if (loadFailed)
         return NULL;
 
     /* handle selected tracks -- update doc, remove, etc. */
     char *selectedTable = NULL;
     if (cartVarExists(cart, CT_DO_REMOVE_VAR))