docs: public static void fixAsyncStackTrace(Throwable asyncCause, StackTraceElement[] localSideStackTrace) {
          Throwable throwable = asyncCause;
          if (asyncCause instanceof ExecutionException && throwable.getCause() != null) {
              throwable = throwable.getCause();
          }
  
          StackTraceElement[] remoteStackTrace = throwable.getStackTrace();
          StackTraceElement[] newStackTrace = new StackTraceElement[localSideStackTrace.length + remoteStackTrace.length];
          System.arraycopy(remoteStackTrace, 0, newStackTrace, 0, remoteStackTrace.length);
          newStackTrace[remoteStackTrace.length] = new StackTraceElement(EXCEPTION_SEPARATOR, "", null, -1);
          System.arraycopy(localSideStackTrace, 1, newStackTrace, remoteStackTrace.length + 1, localSideStackTrace.length - 1);
          throwable.setStackTrace(newStackTrace);
      }