# Writing MatrixTable on DNAnexus extremely slow + “server connection failed” at the end

**URL:** <https://discuss.hail.is/t/writing-matrixtable-on-dnanexus-extremely-slow-server-connection-failed-at-the-end/4218>\
**Category:** Hail Batch & General Cloud\
**Created:** [November 26, 2025, 2:14pm UTC](https://discuss.hail.is/t/writing-matrixtable-on-dnanexus-extremely-slow-server-connection-failed-at-the-end/4218 "2025-11-26T14:14:32Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![marise](https://yyz2.discourse-cdn.com/flex036/user_avatar/discuss.hail.is/marise/32/1333_2.png) [@marise](https://discuss.hail.is/u/marise)\
**Post date:** [November 26, 2025, 2:14pm UTC](https://discuss.hail.is/t/writing-matrixtable-on-dnanexus-extremely-slow-server-connection-failed-at-the-end/4218/1 "2025-11-26T14:14:32Z")

</div>

Hi everyone,  
I’m working with UK Biobank exome sequences (450k individuals) on DNAnexus using Hail, and I’m having persistent issues when trying to write a MatrixTable.

My goal is to create the MatrixTable so I can later run the full QC pipeline. However, the write step takes many hours and then fails at the end with a _“server connection failed”_ error.

### **Cluster / Job Setup**

I first used this cluster configuration:

- **Instance type:** `mem1_hdd1_v2_x16`

- **Initial worker count:**  **16**

these are all available option

mem1\_hdd1\_x2  
mem1\_hdd1\_x4  
mem1\_hdd1\_x8  
mem1\_hdd1\_x16  
mem1\_hdd1\_x36  
mem1\_hdd1\_v2\_x2  
mem1\_hdd1\_v2\_x4  
mem1\_hdd1\_v2\_x8  
mem1\_hdd1\_v2\_x16  
mem1\_hdd1\_v2\_x36  
mem1\_hdd1\_v2\_x72  
mem1\_hdd1\_v2\_x96  
mem1\_ssd1\_x2  
mem1\_ssd1\_x4  
mem1\_ssd1\_x8  
mem1\_ssd1\_x16  
mem1\_ssd1\_x32  
mem1\_ssd1\_x36  
mem1\_ssd1\_v2\_x2  
mem1\_ssd1\_v2\_x4  
mem1\_ssd1\_v2\_x8  
mem1\_ssd1\_v2\_x16  
mem1\_ssd1\_v2\_x36  
mem1\_ssd1\_v2\_x72  
mem1\_ssd2\_x2  
mem1\_ssd2\_x4  
mem1\_ssd2\_x8  
mem1\_ssd2\_x16  
mem1\_ssd2\_x36  
mem1\_ssd2\_v2\_x2  
mem1\_ssd2\_v2\_x4  
mem1\_ssd2\_v2\_x8  
mem1\_ssd2\_v2\_x16  
mem1\_ssd2\_v2\_x36  
mem1\_ssd2\_v2\_x72  
mem1\_hdd2\_x1  
mem1\_hdd2\_x8  
mem1\_hdd2\_x32  
mem2\_ssd1\_x2  
mem2\_ssd1\_x4  
mem2\_ssd1\_x8  
mem2\_ssd1\_v2\_x2  
mem2\_ssd1\_v2\_x4  
mem2\_ssd1\_v2\_x8  
mem2\_ssd1\_v2\_x16  
mem2\_ssd1\_v2\_x32  
mem2\_ssd1\_v2\_x48  
mem2\_ssd1\_v2\_x64  
mem2\_ssd1\_v2\_x96  
mem2\_ssd2\_x2  
mem2\_ssd2\_x4  
mem2\_ssd2\_x8  
mem2\_ssd2\_x16  
mem2\_ssd2\_x40  
mem2\_ssd2\_x64  
mem2\_ssd2\_v2\_x2  
mem2\_ssd2\_v2\_x4  
mem2\_ssd2\_v2\_x8  
mem2\_ssd2\_v2\_x16  
mem2\_ssd2\_v2\_x32  
mem2\_ssd2\_v2\_x48  
mem2\_ssd2\_v2\_x64  
mem2\_ssd2\_v2\_x96  
mem2\_hdd2\_x1  
mem2\_hdd2\_x2  
mem2\_hdd2\_x4  
mem2\_hdd2\_v2\_x2  
mem2\_hdd2\_v2\_x4  
mem3\_ssd1\_x2  
mem3\_ssd1\_x4  
mem3\_ssd1\_x8  
mem3\_ssd1\_x16  
mem3\_ssd1\_x32  
mem3\_ssd1\_v2\_x2  
mem3\_ssd1\_v2\_x4  
mem3\_ssd1\_v2\_x8  
mem3\_ssd1\_v2\_x16  
mem3\_ssd1\_v2\_x32  
mem3\_ssd1\_v2\_x48  
mem3\_ssd1\_v2\_x64  
mem3\_ssd1\_v2\_x96  
mem3\_ssd2\_x4  
mem3\_ssd2\_x8  
mem3\_ssd2\_x16  
mem3\_ssd2\_x32  
mem3\_ssd2\_v2\_x2  
mem3\_ssd2\_v2\_x4  
mem3\_ssd2\_v2\_x8  
mem3\_ssd2\_v2\_x16  
mem3\_ssd2\_v2\_x32  
mem3\_ssd2\_v2\_x64  
mem3\_ssd3\_x2  
mem3\_ssd3\_x4  
mem3\_ssd3\_x8  
mem3\_ssd3\_x12  
mem3\_ssd3\_x24  
mem3\_ssd3\_x48  
mem3\_ssd3\_x96  
mem3\_hdd2\_x2  
mem3\_hdd2\_x4  
mem3\_hdd2\_x8  
mem3\_hdd2\_v2\_x2  
mem3\_hdd2\_v2\_x4  
mem3\_hdd2\_v2\_x8  
mem4\_ssd1\_x128

I am using the right ones for the write() function, and what about later when i want to do quality control?

this is my code

import hail as hl  
import dxpy  
hl.init()  
VCFs\_path = “file:///mnt/project/…”  
mt = hl.import\_vcf(  
VCFs\_path,  
force\_bgz=True,  
reference\_genome=“GRCh38”,  
array\_elements\_required=False  
)  
db\_name = “x”  
mt\_name = “y.mt”  
db\_uri = dxpy.find\_one\_data\_object(name=f"{db\_name}“, classname=“database”)[‘id’]  
url = f"dnax://{db\_uri}/{mt\_name}”  
mt.write(url)  
mt = hl.read\_matrix\_table(url)
