private function magicRun()
    {
        $query = $this->createQuery();

        try{
            $this->data = $this->reportDownloader->downloadReportWithAwql(
                $query, $this->format);
        }catch(ApiException $e)
        {
            $field = $e->getErrors()[0]->getFieldPath();

            if(!empty($field)){
                $this->except($field);
                $this->magicRun();
            }else
                var_dump($e->getMessage());
        }

    }
private function magicRun()
    {
        $query = $this->createQuery();

        try{
            $this->data = $this->reportDownloader->downloadReportWithAwql(
                $query, $this->format);
        }catch(ApiException $e)
        {
            $field = $e->getErrors()[0]->getFieldPath();

            if(!empty($field)){
                $this->except($field);
                $this->magicRun();
            }else
                var_dump($e->getMessage());
        }

    }
private function magicRun ( ) { $ query = $ this -> createQuery ( ) ; try { $ this -> data = $ this -> reportDownloader -> downloadReportWithAwql ( $ query , $ this -> format ) ; } catch ( ApiException $ e ) { $ field = $ e -> getErrors ( ) [ 0 ] -> getFieldPath ( ) ; if ( ! empty ( $ field ) ) { $ this -> except ( $ field ) ; $ this -> magicRun ( ) ; } else var_dump ( $ e -> getMessage ( ) ) ; } }
Magic Run the AWQL

Will try to download the report and if fails,
It pulls out the conflicted field and try again the download.
Magic Run the AWQL