This allows error parsers (VSCode problemMatchers) to use the time notification as bounds for detecting errors.
Closes #8403
                                return nil
                        }
 
+                       // prevent cobra printing error so it can be handled here (before the timeTrack prints)
+                       cmd.SilenceErrors = true
+
                        c, err := initializeConfig(true, cc.buildWatch, &cc.hugoBuilderCommon, cc, cfgInit)
                        if err != nil {
+                               cmd.PrintErrln("Error:", err.Error())
                                return err
                        }
                        cc.c = c
 
-                       return c.build()
+                       err = c.build()
+                       if err != nil {
+                               cmd.PrintErrln("Error:", err.Error())
+                       }
+                       return err
                },
        })
 
 
 }
 
 func (c *commandeer) serverBuild() error {
-       defer c.timeTrack(time.Now(), "Built")
 
        stopProfiling, err := c.initProfiling()
        if err != nil {
 }
 
 func (c *commandeer) rebuildSites(events []fsnotify.Event) error {
-       defer c.timeTrack(time.Now(), "Total")
 
        c.buildErr = nil
        visited := c.visitedURLs.PeekAllSet()
 
                c.printChangeDetected("")
                c.changeDetector.PrepareNew()
-               if err := c.rebuildSites(dynamicEvents); err != nil {
-                       c.handleBuildErr(err, "Rebuild failed")
-               }
+
+               func() {
+                       defer c.timeTrack(time.Now(), "Total")
+                       if err := c.rebuildSites(dynamicEvents); err != nil {
+                               c.handleBuildErr(err, "Rebuild failed")
+                       }
+               }()
 
                if doLiveReload {
                        if len(partitionedEvents.ContentEvents) == 0 && len(partitionedEvents.AssetEvents) > 0 {
 
                jww.WARN.Println("memstats error:", err)
        }
 
+       // silence errors in cobra so we can handle them here
+       cmd.SilenceErrors = true
+
        c, err := initializeConfig(true, true, &sc.hugoBuilderCommon, sc, cfgInit)
        if err != nil {
+               cmd.PrintErrln("Error:", err.Error())
                return err
        }
 
-       if err := c.serverBuild(); err != nil {
+       err = func() error {
+               defer c.timeTrack(time.Now(), "Built")
+               err := c.serverBuild()
+               if err != nil {
+                       cmd.PrintErrln("Error:", err.Error())
+               }
+               return err
+       }()
+       if err != nil {
                return err
        }