Skip to content

api error InvalidRequest: The request body was too small. Issue with S3 Compatible Provider(BlackBlaze B2) #1302

@alameenlr

Description

@alameenlr

Error While Start Upload
I'm Using BlackBlaze B2 as my project storage backend. When I tested with AWS it works fine. I'm Using tus-js-client as client. From the front end I got 500 Internal Server Error.

To Reproduce
Steps to reproduce the behavior:

  1. Execute command
tusd --s3-bucket "tus-test"
     --s3-endpoint "https://s3.eu-central-003.backblazeb2.com"
     --s3-object-prefix "files"
     --s3-part-size 100663260
     --max-size 2199023255552
     --network-timeout 0
     --port 1080
     --cors-allow-origin 'https?://test.dvl.to'
     --s3-log-api-calls
  1. Start upload
2025/08/08 15:07:17.095054 Using 'https://s3.eu-central-003.backblazeb2.com/tus-test' as S3 endpoint and bucket for storage.
2025/08/08 15:07:17.095660 Using 2097152.00MB as maximum size.
2025/08/08 15:07:17.095794 Supported tus extensions: creation,creation-with-upload,termination,concatenation,creation-defer-length
2025/08/08 15:07:17.095797 Using 0.0.0.0:1080 as address to listen.
2025/08/08 15:07:17.095798 Using /files/ as the base path.
2025/08/08 15:07:17.096316 Using /metrics as the metrics path.
2025/08/08 15:07:17.097032 You can now upload files to: http://[::]:1080/files/
2025/08/08 15:13:02.894862 level=INFO event=RequestIncoming method=POST path="" requestId=""
  1. See error
    In Browser
Request URL: http://localhost:1080/files/619719d083f4d8d10437f4350da1f13d+4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864
Request Method: POST
Status Code:500 Internal Server Error
Remote Address: [::1]:1080
Referrer Policy: strict-origin-when-cross-origin

In Console

2025/08/08 15:13:03.952276 level=DEBUG event=S3APICall operation=CreateMultipartUpload input="{\"Bucket\":\"tus-test\",\"Key\":\"files/619719d083f4d8d10437f4350da1f13d\",\"ACL\":\"\",\"BucketKeyEnabled\":null,\"CacheControl\":null,\"ChecksumAlgorithm\":\"\",\"ChecksumType\":\"\",\"ContentDisposition\":null,\"ContentEncoding\":null,\"ContentLanguage\":null,\"ContentType\":null,\"ExpectedBucketOwner\":null,\"Expires\":null,\"GrantFullControl\":null,\"GrantRead\":null,\"GrantReadACP\":null,\"GrantWriteACP\":null,\"Metadata\":{\"location\":\"0000/\",\"name\":\"go1.24.6.darwin-arm64.pkg\",\"type\":\"audio/mpeg\"},\"ObjectLockLegalHoldStatus\":\"\",\"ObjectLockMode\":\"\",\"ObjectLockRetainUntilDate\":null,\"RequestPayer\":\"\",\"SSECustomerAlgorithm\":null,\"SSECustomerKey\":null,\"SSECustomerKeyMD5\":null,\"SSEKMSEncryptionContext\":null,\"SSEKMSKeyId\":null,\"ServerSideEncryption\":\"\",\"StorageClass\":\"\",\"Tagging\":null,\"WebsiteRedirectLocation\":null}" duration_ms=1056 output="{\"AbortDate\":null,\"AbortRuleId\":null,\"Bucket\":\"tus-test\",\"BucketKeyEnabled\":null,\"ChecksumAlgorithm\":\"\",\"ChecksumType\":\"\",\"Key\":\"files/619719d083f4d8d10437f4350da1f13d\",\"RequestCharged\":\"\",\"SSECustomerAlgorithm\":null,\"SSECustomerKeyMD5\":null,\"SSEKMSEncryptionContext\":null,\"SSEKMSKeyId\":null,\"ServerSideEncryption\":\"\",\"UploadId\":\"4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864\",\"ResultMetadata\":{}}"
2025/08/08 15:13:04.352929 level=DEBUG event=S3APICall operation=PutObject input="{\"Bucket\":\"tus-test\",\"Key\":\"files/619719d083f4d8d10437f4350da1f13d.info\",\"ACL\":\"\",\"Body\":null,\"BucketKeyEnabled\":null,\"CacheControl\":null,\"ChecksumAlgorithm\":\"\",\"ChecksumCRC32\":null,\"ChecksumCRC32C\":null,\"ChecksumCRC64NVME\":null,\"ChecksumSHA1\":null,\"ChecksumSHA256\":null,\"ContentDisposition\":null,\"ContentEncoding\":null,\"ContentLanguage\":null,\"ContentLength\":430,\"ContentMD5\":null,\"ContentType\":null,\"ExpectedBucketOwner\":null,\"Expires\":null,\"GrantFullControl\":null,\"GrantRead\":null,\"GrantReadACP\":null,\"GrantWriteACP\":null,\"IfMatch\":null,\"IfNoneMatch\":null,\"Metadata\":null,\"ObjectLockLegalHoldStatus\":\"\",\"ObjectLockMode\":\"\",\"ObjectLockRetainUntilDate\":null,\"RequestPayer\":\"\",\"SSECustomerAlgorithm\":null,\"SSECustomerKey\":null,\"SSECustomerKeyMD5\":null,\"SSEKMSEncryptionContext\":null,\"SSEKMSKeyId\":null,\"ServerSideEncryption\":\"\",\"StorageClass\":\"\",\"Tagging\":null,\"WebsiteRedirectLocation\":null,\"WriteOffsetBytes\":null}" duration_ms=400 output="{\"BucketKeyEnabled\":null,\"ChecksumCRC32\":\"ZEOqZQ==\",\"ChecksumCRC32C\":null,\"ChecksumCRC64NVME\":null,\"ChecksumSHA1\":null,\"ChecksumSHA256\":null,\"ChecksumType\":\"FULL_OBJECT\",\"ETag\":\"\\\"f93404180b6f775d6a6509061ee4635d\\\"\",\"Expiration\":null,\"RequestCharged\":\"\",\"SSECustomerAlgorithm\":null,\"SSECustomerKeyMD5\":null,\"SSEKMSEncryptionContext\":null,\"SSEKMSKeyId\":null,\"ServerSideEncryption\":\"\",\"Size\":null,\"VersionId\":\"4_zfac65898f86d8c2194820914_f114dca5176d43f9c_d20250808_m094304_c003_v0312027_t0051_u01754646184198\",\"ResultMetadata\":{}}"
2025/08/08 15:13:04.354874 level=INFO event=UploadCreated method=POST path="" requestId="" id=619719d083f4d8d10437f4350da1f13d+4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864 size=77047741 url=http://localhost:1080/files/619719d083f4d8d10437f4350da1f13d+4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864
2025/08/08 15:13:04.355478 level=INFO event=ResponseOutgoing method=POST path="" requestId="" id=619719d083f4d8d10437f4350da1f13d+4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864 status=201 body=""
2025/08/08 15:13:04.369139 level=INFO event=RequestIncoming method=OPTIONS path=619719d083f4d8d10437f4350da1f13d+4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864 requestId=""
2025/08/08 15:13:04.369238 level=INFO event=ResponseOutgoing method=OPTIONS path=619719d083f4d8d10437f4350da1f13d+4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864 requestId="" status=200 body=""
2025/08/08 15:13:04.372721 level=INFO event=RequestIncoming method=POST path=619719d083f4d8d10437f4350da1f13d+4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864 requestId=""
2025/08/08 15:13:04.697860 level=DEBUG event=S3APICall operation=GetObject input="{\"Bucket\":\"tus-test\",\"Key\":\"files/619719d083f4d8d10437f4350da1f13d.info\",\"ChecksumMode\":\"ENABLED\",\"ExpectedBucketOwner\":null,\"IfMatch\":null,\"IfModifiedSince\":null,\"IfNoneMatch\":null,\"IfUnmodifiedSince\":null,\"PartNumber\":null,\"Range\":null,\"RequestPayer\":\"\",\"ResponseCacheControl\":null,\"ResponseContentDisposition\":null,\"ResponseContentEncoding\":null,\"ResponseContentLanguage\":null,\"ResponseContentType\":null,\"ResponseExpires\":null,\"SSECustomerAlgorithm\":null,\"SSECustomerKey\":null,\"SSECustomerKeyMD5\":null,\"VersionId\":null}" duration_ms=323 output="{\"AcceptRanges\":\"bytes\",\"Body\":null,\"BucketKeyEnabled\":null,\"CacheControl\":null,\"ChecksumCRC32\":\"ZEOqZQ==\",\"ChecksumCRC32C\":null,\"ChecksumCRC64NVME\":null,\"ChecksumSHA1\":null,\"ChecksumSHA256\":null,\"ChecksumType\":\"FULL_OBJECT\",\"ContentDisposition\":null,\"ContentEncoding\":null,\"ContentLanguage\":null,\"ContentLength\":430,\"ContentRange\":null,\"ContentType\":\"application/octet-stream\",\"DeleteMarker\":null,\"ETag\":\"\\\"f93404180b6f775d6a6509061ee4635d\\\"\",\"Expiration\":null,\"Expires\":null,\"ExpiresString\":null,\"LastModified\":\"2025-08-08T09:43:04Z\",\"Metadata\":null,\"MissingMeta\":null,\"ObjectLockLegalHoldStatus\":\"\",\"ObjectLockMode\":\"\",\"ObjectLockRetainUntilDate\":null,\"PartsCount\":null,\"ReplicationStatus\":\"\",\"RequestCharged\":\"\",\"Restore\":null,\"SSECustomerAlgorithm\":null,\"SSECustomerKeyMD5\":null,\"SSEKMSKeyId\":null,\"ServerSideEncryption\":\"\",\"StorageClass\":\"\",\"TagCount\":null,\"VersionId\":\"4_zfac65898f86d8c2194820914_f114dca5176d43f9c_d20250808_m094304_c003_v0312027_t0051_u01754646184198\",\"WebsiteRedirectLocation\":null,\"ResultMetadata\":{}}"
2025/08/08 15:13:04.902726 level=DEBUG event=S3APICall operation=HeadObject input="{\"Bucket\":\"tus-test\",\"Key\":\"files/619719d083f4d8d10437f4350da1f13d.part\",\"ChecksumMode\":\"\",\"ExpectedBucketOwner\":null,\"IfMatch\":null,\"IfModifiedSince\":null,\"IfNoneMatch\":null,\"IfUnmodifiedSince\":null,\"PartNumber\":null,\"Range\":null,\"RequestPayer\":\"\",\"ResponseCacheControl\":null,\"ResponseContentDisposition\":null,\"ResponseContentEncoding\":null,\"ResponseContentLanguage\":null,\"ResponseContentType\":null,\"ResponseExpires\":null,\"SSECustomerAlgorithm\":null,\"SSECustomerKey\":null,\"SSECustomerKeyMD5\":null,\"VersionId\":null}" duration_ms=528 error="operation error S3: HeadObject, https response error StatusCode: 404, RequestID: bba713c996cd421e, HostID: aYU42rTgiOGk43GRgYysxzDTDMps5rzRM, NotFound: "
2025/08/08 15:13:05.025621 level=DEBUG event=S3APICall operation=ListParts input="{\"Bucket\":\"tus-test\",\"Key\":\"files/619719d083f4d8d10437f4350da1f13d\",\"UploadId\":\"4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864\",\"ExpectedBucketOwner\":null,\"MaxParts\":null,\"PartNumberMarker\":null,\"RequestPayer\":\"\",\"SSECustomerAlgorithm\":null,\"SSECustomerKey\":null,\"SSECustomerKeyMD5\":null}" duration_ms=651 output="{\"AbortDate\":null,\"AbortRuleId\":null,\"Bucket\":\"tus-test\",\"ChecksumAlgorithm\":\"\",\"ChecksumType\":\"\",\"Initiator\":{\"DisplayName\":\"\",\"ID\":\"a6888dc14294\"},\"IsTruncated\":false,\"Key\":\"files/619719d083f4d8d10437f4350da1f13d\",\"MaxParts\":1000,\"NextPartNumberMarker\":\"0\",\"Owner\":{\"DisplayName\":\"\",\"ID\":\"a6888dc14294\"},\"PartNumberMarker\":\"0\",\"Parts\":null,\"RequestCharged\":\"\",\"StorageClass\":\"STANDARD\",\"UploadId\":\"4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864\",\"ResultMetadata\":{}}"
2025/08/08 15:13:05.026589 level=INFO event=ChunkWriteStart method=POST path=619719d083f4d8d10437f4350da1f13d+4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864 requestId="" id=619719d083f4d8d10437f4350da1f13d+4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864 maxSize=5242880 offset=0
2025/08/08 15:13:05.415538 level=DEBUG event=S3APICall operation=UploadPart input="{\"Bucket\":\"tus-test\",\"Key\":\"files/619719d083f4d8d10437f4350da1f13d\",\"PartNumber\":1,\"UploadId\":\"4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864\",\"Body\":null,\"ChecksumAlgorithm\":\"\",\"ChecksumCRC32\":null,\"ChecksumCRC32C\":null,\"ChecksumCRC64NVME\":null,\"ChecksumSHA1\":null,\"ChecksumSHA256\":null,\"ContentLength\":null,\"ContentMD5\":null,\"ExpectedBucketOwner\":null,\"RequestPayer\":\"\",\"SSECustomerAlgorithm\":null,\"SSECustomerKey\":null,\"SSECustomerKeyMD5\":null}" duration_ms=380 error="operation error S3: UploadPart, https response error StatusCode: 400, RequestID: 8532066e567faae3, HostID: aYT02JTgcOPw49GT6Y60xWzR0MuA5XTQl, api error InvalidRequest: The request body was too small"
2025/08/08 15:13:05.416405 level=INFO event=ChunkWriteComplete method=POST path=619719d083f4d8d10437f4350da1f13d+4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864 requestId="" id=619719d083f4d8d10437f4350da1f13d+4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864 bytesWritten=0
2025/08/08 15:13:05.416499 level=ERROR event=InternalServerError method=POST path=619719d083f4d8d10437f4350da1f13d+4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864 requestId="" id=619719d083f4d8d10437f4350da1f13d+4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864 message="operation error S3: UploadPart, https response error StatusCode: 400, RequestID: 8532066e567faae3, HostID: aYT02JTgcOPw49GT6Y60xWzR0MuA5XTQl, api error InvalidRequest: The request body was too small"
2025/08/08 15:13:05.416534 level=INFO event=ResponseOutgoing method=POST path=619719d083f4d8d10437f4350da1f13d+4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864 requestId="" id=619719d083f4d8d10437f4350da1f13d+4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864 status=500 body="ERR_INTERNAL_SERVER_ERROR: operation error S3: UploadPart, https response error StatusCode: 400, RequestID: 8532066e567faae3, HostID: aYT02JTgcOPw49GT6Y60xWzR0MuA5XTQl, api error InvalidRequest: The request body was too small\n"
2025/08/08 15:13:05.423505 level=INFO event=RequestIncoming method=HEAD path=619719d083f4d8d10437f4350da1f13d+4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864 requestId=""
2025/08/08 15:13:05.602870 level=DEBUG event=S3APICall operation=HeadObject input="{\"Bucket\":\"tus-test\",\"Key\":\"files/619719d083f4d8d10437f4350da1f13d.part\",\"ChecksumMode\":\"\",\"ExpectedBucketOwner\":null,\"IfMatch\":null,\"IfModifiedSince\":null,\"IfNoneMatch\":null,\"IfUnmodifiedSince\":null,\"PartNumber\":null,\"Range\":null,\"RequestPayer\":\"\",\"ResponseCacheControl\":null,\"ResponseContentDisposition\":null,\"ResponseContentEncoding\":null,\"ResponseContentLanguage\":null,\"ResponseContentType\":null,\"ResponseExpires\":null,\"SSECustomerAlgorithm\":null,\"SSECustomerKey\":null,\"SSECustomerKeyMD5\":null,\"VersionId\":null}" duration_ms=179 error="operation error S3: HeadObject, https response error StatusCode: 404, RequestID: ace49d0f8374abd5, HostID: aYVg2dziyODw4kmQPY8UxVzT4MlM5XTRk, NotFound: "
2025/08/08 15:13:05.671608 level=DEBUG event=S3APICall operation=GetObject input="{\"Bucket\":\"tus-test\",\"Key\":\"files/619719d083f4d8d10437f4350da1f13d.info\",\"ChecksumMode\":\"ENABLED\",\"ExpectedBucketOwner\":null,\"IfMatch\":null,\"IfModifiedSince\":null,\"IfNoneMatch\":null,\"IfUnmodifiedSince\":null,\"PartNumber\":null,\"Range\":null,\"RequestPayer\":\"\",\"ResponseCacheControl\":null,\"ResponseContentDisposition\":null,\"ResponseContentEncoding\":null,\"ResponseContentLanguage\":null,\"ResponseContentType\":null,\"ResponseExpires\":null,\"SSECustomerAlgorithm\":null,\"SSECustomerKey\":null,\"SSECustomerKeyMD5\":null,\"VersionId\":null}" duration_ms=240 output="{\"AcceptRanges\":\"bytes\",\"Body\":null,\"BucketKeyEnabled\":null,\"CacheControl\":null,\"ChecksumCRC32\":\"ZEOqZQ==\",\"ChecksumCRC32C\":null,\"ChecksumCRC64NVME\":null,\"ChecksumSHA1\":null,\"ChecksumSHA256\":null,\"ChecksumType\":\"FULL_OBJECT\",\"ContentDisposition\":null,\"ContentEncoding\":null,\"ContentLanguage\":null,\"ContentLength\":430,\"ContentRange\":null,\"ContentType\":\"application/octet-stream\",\"DeleteMarker\":null,\"ETag\":\"\\\"f93404180b6f775d6a6509061ee4635d\\\"\",\"Expiration\":null,\"Expires\":null,\"ExpiresString\":null,\"LastModified\":\"2025-08-08T09:43:04Z\",\"Metadata\":null,\"MissingMeta\":null,\"ObjectLockLegalHoldStatus\":\"\",\"ObjectLockMode\":\"\",\"ObjectLockRetainUntilDate\":null,\"PartsCount\":null,\"ReplicationStatus\":\"\",\"RequestCharged\":\"\",\"Restore\":null,\"SSECustomerAlgorithm\":null,\"SSECustomerKeyMD5\":null,\"SSEKMSKeyId\":null,\"ServerSideEncryption\":\"\",\"StorageClass\":\"\",\"TagCount\":null,\"VersionId\":\"4_zfac65898f86d8c2194820914_f114dca5176d43f9c_d20250808_m094304_c003_v0312027_t0051_u01754646184198\",\"WebsiteRedirectLocation\":null,\"ResultMetadata\":{}}"
2025/08/08 15:13:05.778411 level=DEBUG event=S3APICall operation=ListParts input="{\"Bucket\":\"tus-test\",\"Key\":\"files/619719d083f4d8d10437f4350da1f13d\",\"UploadId\":\"4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864\",\"ExpectedBucketOwner\":null,\"MaxParts\":null,\"PartNumberMarker\":null,\"RequestPayer\":\"\",\"SSECustomerAlgorithm\":null,\"SSECustomerKey\":null,\"SSECustomerKeyMD5\":null}" duration_ms=346 output="{\"AbortDate\":null,\"AbortRuleId\":null,\"Bucket\":\"tus-test\",\"ChecksumAlgorithm\":\"\",\"ChecksumType\":\"\",\"Initiator\":{\"DisplayName\":\"\",\"ID\":\"a6888dc14294\"},\"IsTruncated\":false,\"Key\":\"files/619719d083f4d8d10437f4350da1f13d\",\"MaxParts\":1000,\"NextPartNumberMarker\":\"0\",\"Owner\":{\"DisplayName\":\"\",\"ID\":\"a6888dc14294\"},\"PartNumberMarker\":\"0\",\"Parts\":null,\"RequestCharged\":\"\",\"StorageClass\":\"STANDARD\",\"UploadId\":\"4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864\",\"ResultMetadata\":{}}"
2025/08/08 15:13:05.778533 level=INFO event=ResponseOutgoing method=HEAD path=619719d083f4d8d10437f4350da1f13d+4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864 requestId="" id=619719d083f4d8d10437f4350da1f13d+4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864 status=200 body=""
2025/08/08 15:13:05.782433 level=INFO event=RequestIncoming method=POST path=619719d083f4d8d10437f4350da1f13d+4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864 requestId=""
2025/08/08 15:13:05.967380 level=DEBUG event=S3APICall operation=GetObject input="{\"Bucket\":\"tus-test\",\"Key\":\"files/619719d083f4d8d10437f4350da1f13d.info\",\"ChecksumMode\":\"ENABLED\",\"ExpectedBucketOwner\":null,\"IfMatch\":null,\"IfModifiedSince\":null,\"IfNoneMatch\":null,\"IfUnmodifiedSince\":null,\"PartNumber\":null,\"Range\":null,\"RequestPayer\":\"\",\"ResponseCacheControl\":null,\"ResponseContentDisposition\":null,\"ResponseContentEncoding\":null,\"ResponseContentLanguage\":null,\"ResponseContentType\":null,\"ResponseExpires\":null,\"SSECustomerAlgorithm\":null,\"SSECustomerKey\":null,\"SSECustomerKeyMD5\":null,\"VersionId\":null}" duration_ms=184 output="{\"AcceptRanges\":\"bytes\",\"Body\":null,\"BucketKeyEnabled\":null,\"CacheControl\":null,\"ChecksumCRC32\":\"ZEOqZQ==\",\"ChecksumCRC32C\":null,\"ChecksumCRC64NVME\":null,\"ChecksumSHA1\":null,\"ChecksumSHA256\":null,\"ChecksumType\":\"FULL_OBJECT\",\"ContentDisposition\":null,\"ContentEncoding\":null,\"ContentLanguage\":null,\"ContentLength\":430,\"ContentRange\":null,\"ContentType\":\"application/octet-stream\",\"DeleteMarker\":null,\"ETag\":\"\\\"f93404180b6f775d6a6509061ee4635d\\\"\",\"Expiration\":null,\"Expires\":null,\"ExpiresString\":null,\"LastModified\":\"2025-08-08T09:43:04Z\",\"Metadata\":null,\"MissingMeta\":null,\"ObjectLockLegalHoldStatus\":\"\",\"ObjectLockMode\":\"\",\"ObjectLockRetainUntilDate\":null,\"PartsCount\":null,\"ReplicationStatus\":\"\",\"RequestCharged\":\"\",\"Restore\":null,\"SSECustomerAlgorithm\":null,\"SSECustomerKeyMD5\":null,\"SSEKMSKeyId\":null,\"ServerSideEncryption\":\"\",\"StorageClass\":\"\",\"TagCount\":null,\"VersionId\":\"4_zfac65898f86d8c2194820914_f114dca5176d43f9c_d20250808_m094304_c003_v0312027_t0051_u01754646184198\",\"WebsiteRedirectLocation\":null,\"ResultMetadata\":{}}"
2025/08/08 15:13:05.976424 level=DEBUG event=S3APICall operation=HeadObject input="{\"Bucket\":\"tus-test\",\"Key\":\"files/619719d083f4d8d10437f4350da1f13d.part\",\"ChecksumMode\":\"\",\"ExpectedBucketOwner\":null,\"IfMatch\":null,\"IfModifiedSince\":null,\"IfNoneMatch\":null,\"IfUnmodifiedSince\":null,\"PartNumber\":null,\"Range\":null,\"RequestPayer\":\"\",\"ResponseCacheControl\":null,\"ResponseContentDisposition\":null,\"ResponseContentEncoding\":null,\"ResponseContentLanguage\":null,\"ResponseContentType\":null,\"ResponseExpires\":null,\"SSECustomerAlgorithm\":null,\"SSECustomerKey\":null,\"SSECustomerKeyMD5\":null,\"VersionId\":null}" duration_ms=193 error="operation error S3: HeadObject, https response error StatusCode: 404, RequestID: af336327c9f6b560, HostID: aYaw2wzg6OMU412QJY5oxKTR2Mqw5jDQ7, NotFound: "
2025/08/08 15:13:06.011605 level=DEBUG event=S3APICall operation=ListParts input="{\"Bucket\":\"tus-test\",\"Key\":\"files/619719d083f4d8d10437f4350da1f13d\",\"UploadId\":\"4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864\",\"ExpectedBucketOwner\":null,\"MaxParts\":null,\"PartNumberMarker\":null,\"RequestPayer\":\"\",\"SSECustomerAlgorithm\":null,\"SSECustomerKey\":null,\"SSECustomerKeyMD5\":null}" duration_ms=228 output="{\"AbortDate\":null,\"AbortRuleId\":null,\"Bucket\":\"tus-test\",\"ChecksumAlgorithm\":\"\",\"ChecksumType\":\"\",\"Initiator\":{\"DisplayName\":\"\",\"ID\":\"a6888dc14294\"},\"IsTruncated\":false,\"Key\":\"files/619719d083f4d8d10437f4350da1f13d\",\"MaxParts\":1000,\"NextPartNumberMarker\":\"0\",\"Owner\":{\"DisplayName\":\"\",\"ID\":\"a6888dc14294\"},\"PartNumberMarker\":\"0\",\"Parts\":null,\"RequestCharged\":\"\",\"StorageClass\":\"STANDARD\",\"UploadId\":\"4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864\",\"ResultMetadata\":{}}"
2025/08/08 15:13:06.011807 level=INFO event=ChunkWriteStart method=POST path=619719d083f4d8d10437f4350da1f13d+4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864 requestId="" id=619719d083f4d8d10437f4350da1f13d+4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864 maxSize=5242880 offset=0
2025/08/08 15:13:06.300320 level=DEBUG event=S3APICall operation=UploadPart input="{\"Bucket\":\"tus-test\",\"Key\":\"files/619719d083f4d8d10437f4350da1f13d\",\"PartNumber\":1,\"UploadId\":\"4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864\",\"Body\":null,\"ChecksumAlgorithm\":\"\",\"ChecksumCRC32\":null,\"ChecksumCRC32C\":null,\"ChecksumCRC64NVME\":null,\"ChecksumSHA1\":null,\"ChecksumSHA256\":null,\"ContentLength\":null,\"ContentMD5\":null,\"ExpectedBucketOwner\":null,\"RequestPayer\":\"\",\"SSECustomerAlgorithm\":null,\"SSECustomerKey\":null,\"SSECustomerKeyMD5\":null}" duration_ms=282 error="operation error S3: UploadPart, https response error StatusCode: 400, RequestID: f41e3dca39744ed1, HostID: aYVU2lziEOO44rGTWY7QxgjTQMvw5rjQw, api error InvalidRequest: The request body was too small"
2025/08/08 15:13:06.302486 level=INFO event=ChunkWriteComplete method=POST path=619719d083f4d8d10437f4350da1f13d+4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864 requestId="" id=619719d083f4d8d10437f4350da1f13d+4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864 bytesWritten=0
2025/08/08 15:13:06.302537 level=ERROR event=InternalServerError method=POST path=619719d083f4d8d10437f4350da1f13d+4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864 requestId="" id=619719d083f4d8d10437f4350da1f13d+4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864 message="operation error S3: UploadPart, https response error StatusCode: 400, RequestID: f41e3dca39744ed1, HostID: aYVU2lziEOO44rGTWY7QxgjTQMvw5rjQw, api error InvalidRequest: The request body was too small"
2025/08/08 15:13:06.302580 level=INFO event=ResponseOutgoing method=POST path=619719d083f4d8d10437f4350da1f13d+4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864 requestId="" id=619719d083f4d8d10437f4350da1f13d+4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864 status=500 body="ERR_INTERNAL_SERVER_ERROR: operation error S3: UploadPart, https response error StatusCode: 400, RequestID: f41e3dca39744ed1, HostID: aYVU2lziEOO44rGTWY7QxgjTQMvw5rjQw, api error InvalidRequest: The request body was too small\n"
2025/08/08 15:13:07.312932 level=INFO event=RequestIncoming method=HEAD path=619719d083f4d8d10437f4350da1f13d+4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864 requestId=""
2025/08/08 15:13:07.487442 level=DEBUG event=S3APICall operation=HeadObject input="{\"Bucket\":\"tus-test\",\"Key\":\"files/619719d083f4d8d10437f4350da1f13d.part\",\"ChecksumMode\":\"\",\"ExpectedBucketOwner\":null,\"IfMatch\":null,\"IfModifiedSince\":null,\"IfNoneMatch\":null,\"IfUnmodifiedSince\":null,\"PartNumber\":null,\"Range\":null,\"RequestPayer\":\"\",\"ResponseCacheControl\":null,\"ResponseContentDisposition\":null,\"ResponseContentEncoding\":null,\"ResponseContentLanguage\":null,\"ResponseContentType\":null,\"ResponseExpires\":null,\"SSECustomerAlgorithm\":null,\"SSECustomerKey\":null,\"SSECustomerKeyMD5\":null,\"VersionId\":null}" duration_ms=174 error="operation error S3: HeadObject, https response error StatusCode: 404, RequestID: 9eb94656552d7277, HostID: aYcM2yjixODA41mQRY2gxiDR5MvU50jTa, NotFound: "
2025/08/08 15:13:07.488015 level=DEBUG event=S3APICall operation=GetObject input="{\"Bucket\":\"tus-test\",\"Key\":\"files/619719d083f4d8d10437f4350da1f13d.info\",\"ChecksumMode\":\"ENABLED\",\"ExpectedBucketOwner\":null,\"IfMatch\":null,\"IfModifiedSince\":null,\"IfNoneMatch\":null,\"IfUnmodifiedSince\":null,\"PartNumber\":null,\"Range\":null,\"RequestPayer\":\"\",\"ResponseCacheControl\":null,\"ResponseContentDisposition\":null,\"ResponseContentEncoding\":null,\"ResponseContentLanguage\":null,\"ResponseContentType\":null,\"ResponseExpires\":null,\"SSECustomerAlgorithm\":null,\"SSECustomerKey\":null,\"SSECustomerKeyMD5\":null,\"VersionId\":null}" duration_ms=174 output="{\"AcceptRanges\":\"bytes\",\"Body\":null,\"BucketKeyEnabled\":null,\"CacheControl\":null,\"ChecksumCRC32\":\"ZEOqZQ==\",\"ChecksumCRC32C\":null,\"ChecksumCRC64NVME\":null,\"ChecksumSHA1\":null,\"ChecksumSHA256\":null,\"ChecksumType\":\"FULL_OBJECT\",\"ContentDisposition\":null,\"ContentEncoding\":null,\"ContentLanguage\":null,\"ContentLength\":430,\"ContentRange\":null,\"ContentType\":\"application/octet-stream\",\"DeleteMarker\":null,\"ETag\":\"\\\"f93404180b6f775d6a6509061ee4635d\\\"\",\"Expiration\":null,\"Expires\":null,\"ExpiresString\":null,\"LastModified\":\"2025-08-08T09:43:04Z\",\"Metadata\":null,\"MissingMeta\":null,\"ObjectLockLegalHoldStatus\":\"\",\"ObjectLockMode\":\"\",\"ObjectLockRetainUntilDate\":null,\"PartsCount\":null,\"ReplicationStatus\":\"\",\"RequestCharged\":\"\",\"Restore\":null,\"SSECustomerAlgorithm\":null,\"SSECustomerKeyMD5\":null,\"SSEKMSKeyId\":null,\"ServerSideEncryption\":\"\",\"StorageClass\":\"\",\"TagCount\":null,\"VersionId\":\"4_zfac65898f86d8c2194820914_f114dca5176d43f9c_d20250808_m094304_c003_v0312027_t0051_u01754646184198\",\"WebsiteRedirectLocation\":null,\"ResultMetadata\":{}}"
2025/08/08 15:13:07.662822 level=DEBUG event=S3APICall operation=ListParts input="{\"Bucket\":\"tus-test\",\"Key\":\"files/619719d083f4d8d10437f4350da1f13d\",\"UploadId\":\"4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864\",\"ExpectedBucketOwner\":null,\"MaxParts\":null,\"PartNumberMarker\":null,\"RequestPayer\":\"\",\"SSECustomerAlgorithm\":null,\"SSECustomerKey\":null,\"SSECustomerKeyMD5\":null}" duration_ms=348 output="{\"AbortDate\":null,\"AbortRuleId\":null,\"Bucket\":\"tus-test\",\"ChecksumAlgorithm\":\"\",\"ChecksumType\":\"\",\"Initiator\":{\"DisplayName\":\"\",\"ID\":\"a6888dc14294\"},\"IsTruncated\":false,\"Key\":\"files/619719d083f4d8d10437f4350da1f13d\",\"MaxParts\":1000,\"NextPartNumberMarker\":\"0\",\"Owner\":{\"DisplayName\":\"\",\"ID\":\"a6888dc14294\"},\"PartNumberMarker\":\"0\",\"Parts\":null,\"RequestCharged\":\"\",\"StorageClass\":\"STANDARD\",\"UploadId\":\"4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864\",\"ResultMetadata\":{}}"
2025/08/08 15:13:07.663115 level=INFO event=ResponseOutgoing method=HEAD path=619719d083f4d8d10437f4350da1f13d+4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864 requestId="" id=619719d083f4d8d10437f4350da1f13d+4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864 status=200 body=""
2025/08/08 15:13:07.678367 level=INFO event=RequestIncoming method=POST path=619719d083f4d8d10437f4350da1f13d+4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864 requestId=""
2025/08/08 15:13:07.847724 level=DEBUG event=S3APICall operation=GetObject input="{\"Bucket\":\"tus-test\",\"Key\":\"files/619719d083f4d8d10437f4350da1f13d.info\",\"ChecksumMode\":\"ENABLED\",\"ExpectedBucketOwner\":null,\"IfMatch\":null,\"IfModifiedSince\":null,\"IfNoneMatch\":null,\"IfUnmodifiedSince\":null,\"PartNumber\":null,\"Range\":null,\"RequestPayer\":\"\",\"ResponseCacheControl\":null,\"ResponseContentDisposition\":null,\"ResponseContentEncoding\":null,\"ResponseContentLanguage\":null,\"ResponseContentType\":null,\"ResponseExpires\":null,\"SSECustomerAlgorithm\":null,\"SSECustomerKey\":null,\"SSECustomerKeyMD5\":null,\"VersionId\":null}" duration_ms=168 output="{\"AcceptRanges\":\"bytes\",\"Body\":null,\"BucketKeyEnabled\":null,\"CacheControl\":null,\"ChecksumCRC32\":\"ZEOqZQ==\",\"ChecksumCRC32C\":null,\"ChecksumCRC64NVME\":null,\"ChecksumSHA1\":null,\"ChecksumSHA256\":null,\"ChecksumType\":\"FULL_OBJECT\",\"ContentDisposition\":null,\"ContentEncoding\":null,\"ContentLanguage\":null,\"ContentLength\":430,\"ContentRange\":null,\"ContentType\":\"application/octet-stream\",\"DeleteMarker\":null,\"ETag\":\"\\\"f93404180b6f775d6a6509061ee4635d\\\"\",\"Expiration\":null,\"Expires\":null,\"ExpiresString\":null,\"LastModified\":\"2025-08-08T09:43:04Z\",\"Metadata\":null,\"MissingMeta\":null,\"ObjectLockLegalHoldStatus\":\"\",\"ObjectLockMode\":\"\",\"ObjectLockRetainUntilDate\":null,\"PartsCount\":null,\"ReplicationStatus\":\"\",\"RequestCharged\":\"\",\"Restore\":null,\"SSECustomerAlgorithm\":null,\"SSECustomerKeyMD5\":null,\"SSEKMSKeyId\":null,\"ServerSideEncryption\":\"\",\"StorageClass\":\"\",\"TagCount\":null,\"VersionId\":\"4_zfac65898f86d8c2194820914_f114dca5176d43f9c_d20250808_m094304_c003_v0312027_t0051_u01754646184198\",\"WebsiteRedirectLocation\":null,\"ResultMetadata\":{}}"
2025/08/08 15:13:07.854150 level=DEBUG event=S3APICall operation=ListParts input="{\"Bucket\":\"tus-test\",\"Key\":\"files/619719d083f4d8d10437f4350da1f13d\",\"UploadId\":\"4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864\",\"ExpectedBucketOwner\":null,\"MaxParts\":null,\"PartNumberMarker\":null,\"RequestPayer\":\"\",\"SSECustomerAlgorithm\":null,\"SSECustomerKey\":null,\"SSECustomerKeyMD5\":null}" duration_ms=175 output="{\"AbortDate\":null,\"AbortRuleId\":null,\"Bucket\":\"tus-test\",\"ChecksumAlgorithm\":\"\",\"ChecksumType\":\"\",\"Initiator\":{\"DisplayName\":\"\",\"ID\":\"a6888dc14294\"},\"IsTruncated\":false,\"Key\":\"files/619719d083f4d8d10437f4350da1f13d\",\"MaxParts\":1000,\"NextPartNumberMarker\":\"0\",\"Owner\":{\"DisplayName\":\"\",\"ID\":\"a6888dc14294\"},\"PartNumberMarker\":\"0\",\"Parts\":null,\"RequestCharged\":\"\",\"StorageClass\":\"STANDARD\",\"UploadId\":\"4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864\",\"ResultMetadata\":{}}"
2025/08/08 15:13:08.016527 level=DEBUG event=S3APICall operation=HeadObject input="{\"Bucket\":\"tus-test\",\"Key\":\"files/619719d083f4d8d10437f4350da1f13d.part\",\"ChecksumMode\":\"\",\"ExpectedBucketOwner\":null,\"IfMatch\":null,\"IfModifiedSince\":null,\"IfNoneMatch\":null,\"IfUnmodifiedSince\":null,\"PartNumber\":null,\"Range\":null,\"RequestPayer\":\"\",\"ResponseCacheControl\":null,\"ResponseContentDisposition\":null,\"ResponseContentEncoding\":null,\"ResponseContentLanguage\":null,\"ResponseContentType\":null,\"ResponseExpires\":null,\"SSECustomerAlgorithm\":null,\"SSECustomerKey\":null,\"SSECustomerKeyMD5\":null,\"VersionId\":null}" duration_ms=337 error="operation error S3: HeadObject, https response error StatusCode: 404, RequestID: 972af05f78967170, HostID: aYes2BziaOPU4y2TcY3sxLTQzMu85MDSI, NotFound: "
2025/08/08 15:13:08.016761 level=INFO event=ChunkWriteStart method=POST path=619719d083f4d8d10437f4350da1f13d+4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864 requestId="" id=619719d083f4d8d10437f4350da1f13d+4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864 maxSize=5242880 offset=0
2025/08/08 15:13:09.392739 level=DEBUG event=S3APICall operation=PutObject input="{\"Bucket\":\"tus-test\",\"Key\":\"files/619719d083f4d8d10437f4350da1f13d.part\",\"ACL\":\"\",\"Body\":null,\"BucketKeyEnabled\":null,\"CacheControl\":null,\"ChecksumAlgorithm\":\"\",\"ChecksumCRC32\":null,\"ChecksumCRC32C\":null,\"ChecksumCRC64NVME\":null,\"ChecksumSHA1\":null,\"ChecksumSHA256\":null,\"ContentDisposition\":null,\"ContentEncoding\":null,\"ContentLanguage\":null,\"ContentLength\":null,\"ContentMD5\":null,\"ContentType\":null,\"ExpectedBucketOwner\":null,\"Expires\":null,\"GrantFullControl\":null,\"GrantRead\":null,\"GrantReadACP\":null,\"GrantWriteACP\":null,\"IfMatch\":null,\"IfNoneMatch\":null,\"Metadata\":null,\"ObjectLockLegalHoldStatus\":\"\",\"ObjectLockMode\":\"\",\"ObjectLockRetainUntilDate\":null,\"RequestPayer\":\"\",\"SSECustomerAlgorithm\":null,\"SSECustomerKey\":null,\"SSECustomerKeyMD5\":null,\"SSEKMSEncryptionContext\":null,\"SSEKMSKeyId\":null,\"ServerSideEncryption\":\"\",\"StorageClass\":\"\",\"Tagging\":null,\"WebsiteRedirectLocation\":null,\"WriteOffsetBytes\":null}" duration_ms=1373 output="{\"BucketKeyEnabled\":null,\"ChecksumCRC32\":\"QA4Afg==\",\"ChecksumCRC32C\":null,\"ChecksumCRC64NVME\":null,\"ChecksumSHA1\":null,\"ChecksumSHA256\":null,\"ChecksumType\":\"FULL_OBJECT\",\"ETag\":\"\\\"0c615623b982c53e09d66b068534e4b6\\\"\",\"Expiration\":null,\"RequestCharged\":\"\",\"SSECustomerAlgorithm\":null,\"SSECustomerKeyMD5\":null,\"SSEKMSEncryptionContext\":null,\"SSEKMSKeyId\":null,\"ServerSideEncryption\":\"\",\"Size\":null,\"VersionId\":\"4_zfac65898f86d8c2194820914_f117e2a94fa8276c2_d20250808_m094308_c003_v0312026_t0049_u01754646188263\",\"ResultMetadata\":{}}"
2025/08/08 15:13:09.393367 level=ERROR event=BodyReadError method=POST path=619719d083f4d8d10437f4350da1f13d+4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864 requestId="" id=619719d083f4d8d10437f4350da1f13d+4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864 error="ERR_UNEXPECTED_EOF: server expected to receive more bytes"
2025/08/08 15:13:09.393382 level=INFO event=ChunkWriteComplete method=POST path=619719d083f4d8d10437f4350da1f13d+4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864 requestId="" id=619719d083f4d8d10437f4350da1f13d+4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864 bytesWritten=539952
2025/08/08 15:13:09.393403 level=INFO event=ResponseOutgoing method=POST path=619719d083f4d8d10437f4350da1f13d+4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864 requestId="" id=619719d083f4d8d10437f4350da1f13d+4_zfac65898f86d8c2194820914_f2577b4a70dc1b51d_d20250808_m094303_c003_v0312030_t0055_u01754646183864 status=400 body="ERR_UNEXPECTED_EOF: server expected to receive more bytes\n"

Expected behavior
Success, I've tested multipart upload with aws-sdk-go-v2 and B2 as storage, it was success.

Setup details
Please provide following details, if applicable to your situation:

  • Operating System: macOS
  • Used tusd version: v2.8.0
  • Used tusd data storage: Blackblaze B2(AWS S3 Compatible)
  • Used tusd configuration:
tusd --s3-bucket "tus-test"
     --s3-endpoint "https://s3.eu-central-003.backblazeb2.com"
     --s3-object-prefix "files"
     --s3-part-size 100663260
     --max-size 2199023255552
     --network-timeout 0
     --port 1080
     --cors-allow-origin 'https?://test.dvl.to'
     --s3-log-api-calls
  • Used tus client library: tus-js-client

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions