code: func CollectErrorMessages(err error, in []string) (out []string) {
  	out = in
  	if err == nil {
  		return
  	}
  
  	if err == auth.ErrLoginRequired {
  		out = append(out, "Need to login first by running:\nlucicfg auth-login")
  		return
  	}
  
  	switch e := err.(type) {
  	case lucicfg.BacktracableError:
  		out = append(out, e.Backtrace())
  	case errors.MultiError:
  		for _, inner := range e {
  			out = CollectErrorMessages(inner, out)
  		}
  	default:
  		out = append(out, fmt.Sprintf("Error: %s", err))
  	}
  	return
  }
docs: // CollectErrorMessages traverses err (which can be a MultiError, recursively),
  // and appends all error messages there to 'in', returning the resulting slice.
  //
  // They are eventually used in JSON output and printed to stderr.