# Error split multiallelic

**URL:** <https://discuss.hail.is/t/error-split-multiallelic/1719>\
**Category:** Hail Query & hailctl\
**Created:** [October 1, 2020, 7:14am UTC](https://discuss.hail.is/t/error-split-multiallelic/1719 "2020-10-01T07:14:36Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Santiago](https://avatars.discourse-cdn.com/v4/letter/s/3bc359/32.png) [@Santiago](https://discuss.hail.is/u/Santiago)\
**Post date:** [October 1, 2020, 7:14am UTC](https://discuss.hail.is/t/error-split-multiallelic/1719/1 "2020-10-01T07:14:36Z")

</div>

Hi,  
when I split multiallelic variants I get an error in one case:

hail.utils.java.FatalError: HailException: RVD error! Keys found out of order:  
Current key: { locus: { contig: chr3, position: 16902883 }, alleles: [2; N, GGGGTGCGC] }  
Previous key: { locus: { contig: chr3, position: 16902883 }, alleles: [2; NGCGCAT, CGCGGGCCG] }  
This error can occur after a split\_multi if the dataset  
contains both multiallelic variants and duplicated loci.

Java stack trace:  
org.apache.spark.SparkException: Job aborted due to stage failure: Task 227 in stage 6.0 failed 1 times, most recent failure: Lost task 227.0 in stage 6.0 (TID 3320, localhost, executor driver): is.hail.utils.HailException: RVD error! Keys found out of order:  
Current key: { locus: { contig: chr3, position: 16902883 }, alleles: [2; N, GGGGTGCGC] }  
Previous key: { locus: { contig: chr3, position: 16902883 }, alleles: [2; NGCGCAT, CGCGGGCCG] }  
This error can occur after a split\_multi if the dataset  
contains both multiallelic variants and duplicated loci.

```
    at is.hail.utils.ErrorHandling$class.fatal(ErrorHandling.scala:9)
    at is.hail.utils.package$.fatal(package.scala:77)
    at is.hail.rvd.RVD$$anonfun$checkKeyOrdering$1$$anon$1.next(RVD.scala:224)
    at is.hail.rvd.RVD$$anonfun$checkKeyOrdering$1$$anon$1.next(RVD.scala:208)
    at scala.collection.Iterator$$anon$12.next(Iterator.scala:445)
    at is.hail.io.RichContextRDDLong$$anonfun$boundary$extension$2$$anon$1.next(RichContextRDDRegionValue.scala:196)
    at is.hail.io.RichContextRDDLong$$anonfun$boundary$extension$2$$anon$1.next(RichContextRDDRegionValue.scala:180)
    at scala.collection.Iterator$$anon$11.next(Iterator.scala:410)
    at scala.collection.Iterator$$anon$12.next(Iterator.scala:445)
    at scala.collection.Iterator$$anon$1.next(Iterator.scala:1008)
    at scala.collection.Iterator$$anon$1.head(Iterator.scala:995)
    at is.hail.utils.richUtils.RichIterator$$anon$5.value(RichIterator.scala:29)
    at is.hail.utils.StagingIterator.consume(FlipbookIterator.scala:57)
    at is.hail.utils.FlipbookIterator$MergeStateMachine$1.advance(FlipbookIterator.scala:451)
    at is.hail.utils.StagingIterator.stage(FlipbookIterator.scala:61)
    at is.hail.utils.StagingIterator.hasNext(FlipbookIterator.scala:71)
    at scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:439)
    at scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:409)
    at scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:439)
    at scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:409)
    at scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:439)
    at is.hail.io.RichContextRDDLong$$anonfun$boundary$extension$2$$anon$1.hasNext(RichContextRDDRegionValue.scala:188)
    at scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:409)
    at scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:439)
    at scala.collection.Iterator$$anon$1.hasNext(Iterator.scala:1002)
    at is.hail.utils.richUtils.RichIterator$$anon$5.isValid(RichIterator.scala:30)
    at is.hail.utils.StagingIterator.isValid(FlipbookIterator.scala:48)
    at is.hail.utils.FlipbookIterator$$anon$9.setValue(FlipbookIterator.scala:327)
    at is.hail.utils.FlipbookIterator$$anon$9.advance(FlipbookIterator.scala:341)
    at is.hail.utils.StagingIterator.advance(FlipbookIterator.scala:53)
    at is.hail.utils.FlipbookIterator$$anon$5.advance(FlipbookIterator.scala:179)
    at is.hail.utils.StagingIterator.stage(FlipbookIterator.scala:61)
    at is.hail.utils.StagingIterator.hasNext(FlipbookIterator.scala:71)
    at scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:439)
    at scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:409)
    at scala.collection.Iterator$$anon$13.hasNext(Iterator.scala:462)
    at scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:439)
    at scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:409)
    at scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:439)
    at scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:409)
    at scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:439)
    at is.hail.utils.richUtils.RichContextRDD$$anonfun$cleanupRegions$1$$anon$1.hasNext(RichContextRDD.scala:66)
    at scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:439)
    at org.apache.spark.storage.memory.MemoryStore.putIterator(MemoryStore.scala:221)
    at org.apache.spark.storage.memory.MemoryStore.putIteratorAsValues(MemoryStore.scala:299)
    at org.apache.spark.storage.BlockManager$$anonfun$doPutIterator$1.apply(BlockManager.scala:1165)
    at org.apache.spark.storage.BlockManager$$anonfun$doPutIterator$1.apply(BlockManager.scala:1156)
    at org.apache.spark.storage.BlockManager.doPut(BlockManager.scala:1091)
    at org.apache.spark.storage.BlockManager.doPutIterator(BlockManager.scala:1156)
    at org.apache.spark.storage.BlockManager.getOrElseUpdate(BlockManager.scala:882)
    at org.apache.spark.rdd.RDD.getOrCompute(RDD.scala:335)
    at org.apache.spark.rdd.RDD.iterator(RDD.scala:286)
    at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:52)
    at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:324)
    at org.apache.spark.rdd.RDD.iterator(RDD.scala:288)
    at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:52)
    at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:324)
    at org.apache.spark.rdd.RDD.iterator(RDD.scala:288)
    at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:52)
    at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:324)
    at org.apache.spark.rdd.RDD.iterator(RDD.scala:288)
    at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:52)
    at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:324)
    at org.apache.spark.rdd.RDD.iterator(RDD.scala:288)
    at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:52)
    at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:324)
    at org.apache.spark.rdd.RDD.iterator(RDD.scala:288)
    at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:90)
    at org.apache.spark.scheduler.Task.run(Task.scala:121)
    at org.apache.spark.executor.Executor$TaskRunner$$anonfun$10.apply(Executor.scala:403)
    at org.apache.spark.util.Utils$.tryWithSafeFinally(Utils.scala:1360)
    at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:409)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

```

Driver stacktrace:  
at org.apache.spark.scheduler.DAGScheduler.org$apache$spark$scheduler$DAGScheduler$$failJobAndIndependentStages(DAGScheduler.scala:1889)  
at org.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1877)  
at org.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1876)  
at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59)  
at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:48)  
at org.apache.spark.scheduler.DAGScheduler.abortStage(DAGScheduler.scala:1876)  
at org.apache.spark.scheduler.DAGScheduler$$anonfun$handleTaskSetFailed$1.apply(DAGScheduler.scala:926)  
at org.apache.spark.scheduler.DAGScheduler$$anonfun$handleTaskSetFailed$1.apply(DAGScheduler.scala:926)  
at scala.Option.foreach(Option.scala:257)  
at org.apache.spark.scheduler.DAGScheduler.handleTaskSetFailed(DAGScheduler.scala:926)  
at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.doOnReceive(DAGScheduler.scala:2110)  
at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:2059)  
at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:2048)  
at org.apache.spark.util.EventLoop$$anon$1.run(EventLoop.scala:49)  
at org.apache.spark.scheduler.DAGScheduler.runJob(DAGScheduler.scala:737)  
at org.apache.spark.SparkContext.runJob(SparkContext.scala:2061)  
at org.apache.spark.SparkContext.runJob(SparkContext.scala:2158)  
at is.hail.rvd.RVD.combine(RVD.scala:724)  
at is.hail.expr.ir.Interpret$.run(Interpret.scala:941)  
at is.hail.expr.ir.Interpret$.alreadyLowered(Interpret.scala:53)  
at is.hail.expr.ir.InterpretNonCompilable$.interpretAndCoerce$1(InterpretNonCompilable.scala:16)  
at is.hail.expr.ir.InterpretNonCompilable$.is$hail$expr$ir$InterpretNonCompilable$$rewrite$1(InterpretNonCompilable.scala:53)  
at is.hail.expr.ir.InterpretNonCompilable$.apply(InterpretNonCompilable.scala:58)  
at is.hail.expr.ir.lowering.InterpretNonCompilablePass$.transform(LoweringPass.scala:67)  
at is.hail.expr.ir.lowering.LoweringPass$$anonfun$apply$3$$anonfun$1.apply(LoweringPass.scala:15)  
at is.hail.expr.ir.lowering.LoweringPass$$anonfun$apply$3$$anonfun$1.apply(LoweringPass.scala:15)  
at is.hail.utils.ExecutionTimer.time(ExecutionTimer.scala:69)  
at is.hail.expr.ir.lowering.LoweringPass$$anonfun$apply$3.apply(LoweringPass.scala:15)  
at is.hail.expr.ir.lowering.LoweringPass$$anonfun$apply$3.apply(LoweringPass.scala:13)  
at is.hail.utils.ExecutionTimer.time(ExecutionTimer.scala:69)  
at is.hail.expr.ir.lowering.LoweringPass$class.apply(LoweringPass.scala:13)  
at is.hail.expr.ir.lowering.InterpretNonCompilablePass$.apply(LoweringPass.scala:62)  
at is.hail.expr.ir.lowering.LoweringPipeline$$anonfun$apply$1.apply(LoweringPipeline.scala:14)  
at is.hail.expr.ir.lowering.LoweringPipeline$$anonfun$apply$1.apply(LoweringPipeline.scala:12)  
at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)  
at scala.collection.mutable.WrappedArray.foreach(WrappedArray.scala:35)  
at is.hail.expr.ir.lowering.LoweringPipeline.apply(LoweringPipeline.scala:12)  
at is.hail.expr.ir.CompileAndEvaluate$.\_apply(CompileAndEvaluate.scala:28)  
at is.hail.backend.spark.SparkBackend.is$hail$backend$spark$SparkBackend$$\_execute(SparkBackend.scala:334)  
at is.hail.backend.spark.SparkBackend$$anonfun$execute$1.apply(SparkBackend.scala:321)  
at is.hail.backend.spark.SparkBackend$$anonfun$execute$1.apply(SparkBackend.scala:320)  
at is.hail.expr.ir.ExecuteContext$$anonfun$scoped$1.apply(ExecuteContext.scala:20)  
at is.hail.expr.ir.ExecuteContext$$anonfun$scoped$1.apply(ExecuteContext.scala:18)  
at is.hail.utils.package$.using(package.scala:609)  
at is.hail.annotations.Region$.scoped(Region.scala:18)  
at is.hail.expr.ir.ExecuteContext$.scoped(ExecuteContext.scala:18)  
at is.hail.backend.spark.SparkBackend.withExecuteContext(SparkBackend.scala:230)  
at is.hail.backend.spark.SparkBackend.execute(SparkBackend.scala:320)  
at is.hail.backend.spark.SparkBackend.executeJSON(SparkBackend.scala:349)  
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)  
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)  
at java.lang.reflect.Method.invoke(Method.java:498)  
at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:244)  
at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:357)  
at py4j.Gateway.invoke(Gateway.java:282)  
at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132)  
at py4j.commands.CallCommand.execute(CallCommand.java:79)  
at py4j.GatewayConnection.run(GatewayConnection.java:238)  
at java.lang.Thread.run(Thread.java:748)

---

<div class="post-metadata">

**Author:** ![danking](https://yyz2.discourse-cdn.com/flex036/user_avatar/discuss.hail.is/danking/32/43_2.png) [@danking](https://discuss.hail.is/u/danking)\
**Post date:** [October 1, 2020, 11:28am UTC](https://discuss.hail.is/t/error-split-multiallelic/1719/2 "2020-10-01T11:28:33Z")

</div>

Hi!

This error is almost always caused by splitting a dataset that already has some split alleles. Do you call split multi hts twice? Is your input dataset already split? Try filtering to the locus printed in the error message and verify your input dataset has exactly one row, not two.

---

<div class="post-metadata">

**Author:** ![danking](https://yyz2.discourse-cdn.com/flex036/user_avatar/discuss.hail.is/danking/32/43_2.png) [@danking](https://discuss.hail.is/u/danking)\
**Post date:** [March 22, 2021, 4:32pm UTC](https://discuss.hail.is/t/error-split-multiallelic/1719/3 "2021-03-22T16:32:54Z")

</div>

2 posts were split to a new topic: [When running split\_multi\_hts, I received a key out of order error. Why do I receive that and what should I do?](https://discuss.hail.is/t/when-running-split-multi-hts-i-received-a-key-out-of-order-error-why-do-i-receive-that-and-what-should-i-do/1978)
