Skip to content

LargeFileUploadTask.upload throws PassThrough. #1895

Open
@hayashiyasufumi

Description

@hayashiyasufumi

Describe the bug

When uploading 30 1MB files to OneDrive, LargeFileUploadTask.upload occasionally (about once in 5 times) throws PassThrough.

Expected behavior

I want to know how to prevent PassThrough from being thrown. Or, I want to know how to handle PassThrough when it is caught.

How to reproduce

The src is as follows:

const uploadSession = await LargeFileUploadTask.createUploadSession(
  graphClient,
  uploadSessionUrl,
  {
    item: {
      '@microsoft.graph.conflictBehavior': 'rename',
      name: filename,
    },
  },
);

const fileUpload = new FileUpload(
  fileContent,
  filename,
  fileContent.length,
);

const uploadTask = new LargeFileUploadTask(graphClient, fileUpload, uploadSession, {
  rangeSize: 1048576,
});

try {
  const uploadResult = await uploadTask.upload();

  return uploadResult?.responseBody
    ? (uploadResult.responseBody as DriveItem)
    : null;
} catch (e) {
  this.logger.error({
    message: e.constructor?.name+' '+JSON.stringify(e),
  });
  throw e;
}

SDK Version

3.0.7

Latest version known to work for scenario above?

No response

Known Workarounds

No response

Debug output

Click to expand log ``` PassThrough { "_events": {}, "_readableState": { "highWaterMark": 16384, "buffer": [ { "type": "Buffer", "data": [・・・] } ], "bufferIndex": 0, "length": 8062, "pipes": [], "awaitDrainWriters": null }, "_writableState": { "highWaterMark": 16384, "length": 0, "corked": 0, "writelen": 0, "bufferedIndex": 0, "pendingcb": 0 }, "allowHalfOpen": true, "_eventsCount": 2 } ```

Configuration

  • node:20-alpine3.19
  • node.version v20.18.0

Other information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    status:waiting-for-triageAn issue that is yet to be reviewed or assignedtype:bugA broken experience

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions