From the gridfs spec:
Note: drivers SHOULD store length as Int64 and chunkSize as Int32 when creating new GridFS files. However, drivers MUST be able to handle existing GridFS files where the length and chunkSize fields might have been stored using a different numeric data type.
But the Go driver does not handle existing GridFS files if the chunksize type is not int32. It will panic with the following error:
panic: Call of bsoncore.Value.Int32 on 64-bit integer type
goroutine 1274825 [running]:
go.mongodb.org/mongo-driver/x/bsonx/bsoncore.Value.Int32(0xc007ee2012, 0xc007ee2066, 0x8, 0x12715, 0x1)
/go/pkg/mod/go.mongodb.org/mongo-driver@v1.7.3/x/bsonx/bsoncore/value.go:755 +0x187
go.mongodb.org/mongo-driver/bson.RawValue.Int32(...)
/go/pkg/mod/go.mongodb.org/mongo-driver@v1.7.3/bson/raw_value.go:263
go.mongodb.org/mongo-driver/mongo/gridfs.(*DownloadStream).fillBuffer(0xc002042af0, 0x109b740, 0xc000118000, 0x109b740, 0xc000118000)
/go/pkg/mod/go.mongodb.org/mongo-driver@v1.7.3/mongo/gridfs/download_stream.go:245 +0x260
go.mongodb.org/mongo-driver/mongo/gridfs.(*DownloadStream).Read(0xc002042af0, 0xc004a48600, 0x200, 0x200, 0x0, 0x0, 0x0)
/go/pkg/mod/go.mongodb.org/mongo-driver@v1.7.3/mongo/gridfs/download_stream.go:158 +0x1cc
bytes.(*Buffer).ReadFrom(0xc0011a7bf0, 0x10918a0, 0xc002042af0, 0x7fea00439180, 0xc0011a7bf0, 0xa80f01)
/usr/local/go/src/bytes/buffer.go:204 +0xb1
io.copyBuffer(0x1091140, 0xc0011a7bf0, 0x10918a0, 0xc002042af0, 0x0, 0x0, 0x0, 0xfc11f470bcae5907, 0x72458b000c, 0x0)
/usr/local/go/src/io/io.go:391 +0x2fc
io.Copy(...)
/usr/local/go/src/io/io.go:364
go.mongodb.org/mongo-driver/mongo/gridfs.(*Bucket).downloadToStream(0xc00cf900b0, 0xc002042af0, 0x1091140, 0xc0011a7bf0, 0x0, 0x0, 0x2c)
/go/pkg/mod/go.mongodb.org/mongo-driver@v1.7.3/mongo/gridfs/bucket.go:419 +0xa8
go.mongodb.org/mongo-driver/mongo/gridfs.(*Bucket).DownloadToStream(0xc00cf900b0, 0xa22c40, 0xc0066cdf00, 0x1091140, 0xc0011a7bf0, 0x0, 0x0, 0xa7f597)
/go/pkg/mod/go.mongodb.org/mongo-driver@v1.7.3/mongo/gridfs/bucket.go:209 +0x9e