public static PipeTaskMeta deserialize(
      final PipeRuntimeMetaVersion version,
      final InputStream inputStream,
      final int taskIndex,
      final boolean needPersist)
      throws IOException {
    final ProgressIndex progressIndex = ProgressIndexType.deserializeFrom(inputStream);

    final int leaderNodeId = ReadWriteIOUtils.readInt(inputStream);

    final PipeTaskMeta pipeTaskMeta =
        new PipeTaskMeta(progressIndex, leaderNodeId, taskIndex, needPersist);
    final int size = ReadWriteIOUtils.readInt(inputStream);
    for (int i = 0; i < size; ++i) {
      final PipeRuntimeException pipeRuntimeException =
          PipeRuntimeExceptionType.deserializeFrom(version, inputStream);
      pipeTaskMeta.exceptionMessages.add(pipeRuntimeException);
    }
    return pipeTaskMeta;
  }
Stores the exceptions encountered during run time of each pipe task.

<p>The exceptions are instances of {@link PipeRuntimeCriticalException}, {@link
PipeRuntimeConnectorCriticalException} and {@link PipeRuntimeNonCriticalException}.

<p>The failure of them, respectively, will lead to the stop of the pipe, the stop of the pipes
sharing the same connector, and nothing.
iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/pipe/agent/task/meta/PipeTaskMeta.java