Unfortunately the error lies already in the extends ControlThrowable, which has a lineage of ControlThrowable <: java.lang.Throwable. At the moment the compiler enforces every Java class (aside from Object itself) to have a pure self-type, i.e. cannot hold any tracked references. So for now that means you cannot throw tracked exceptions…