code: public PathsPromoteResult resumePathsPromote( final PathsPromoteResult result, final String baseUrl )
              throws PromotionException, IndyWorkflowException
      {
          final PathsPromoteRequest request = result.getRequest();
  
          Future<PathsPromoteResult> future = submitResumePathsPromote( result, baseUrl );
          if ( request.isAsync() )
          {
              return new PathsPromoteResult( request ).accepted();
          }
          else
          {
              try
              {
                  return future.get();
              }
              catch ( InterruptedException | ExecutionException e )
              {
                  logger.error( "Path promotion resume failed: " + request.getSource() + " -> " + request.getTargetKey(), e );
                  throw new PromotionException( "Execution of path promotion resume failed.", e );
              }
          }
      }
docs: Attempt to resumePathsPromote from a previously failing {@link PathsPromoteResult}. This is meant to handle cases where a transient (or correctable) error
  occurs on the server side, and promotion can proceed afterward. It works much like the {@link #promotePaths(PathsPromoteRequest, String)} call, using the pending
  paths list from the input result as the list of paths to process. The output {@link PathsPromoteResult} contains all previous completed paths PLUS
  any additional completed transfers when it is returned, thus providing a cumulative result to the user.
  
  @param result The result to resumePathsPromote
  
  @return The same result, with any successful path promotions moved from the pending to completed paths list, and the error cleared (or set to a
  new error)
  
  @throws PromotionException
  @throws IndyWorkflowException