diff --git a/internal/file/file_service_operator.go b/internal/file/file_service_operator.go index 15876e1ca..cad5d68a4 100644 --- a/internal/file/file_service_operator.go +++ b/internal/file/file_service_operator.go @@ -539,7 +539,11 @@ func (fso *FileServiceOperator) sendFileUpdateStreamChunks( chunkID++ } - return nil + // Ensure the stream is closed and wait for the server's response only + // after all chunks are sent + _, err = updateFileStreamClient.CloseAndRecv() + + return err } func (fso *FileServiceOperator) sendFileUpdateStreamChunk( diff --git a/test/mock/grpc/mock_management_file_service.go b/test/mock/grpc/mock_management_file_service.go index a865777c7..918b80672 100644 --- a/test/mock/grpc/mock_management_file_service.go +++ b/test/mock/grpc/mock_management_file_service.go @@ -217,6 +217,8 @@ func (mgs *FileService) UpdateFileStream(streamingServer grpc.ClientStreamingSer return writeChunkedFileError } + streamingServer.SendAndClose(&v1.UpdateFileResponse{}) + return nil }