Migrated from 7.13 to 7.14.3 and I have error on export property. Blank pages (Home page is also blank)


As title suggests, I am getting an PHP Fatal Error.

PHP Fatal error:  Uncaught Error: Attempt to assign property "export" on null in /var/www/html/suitecrm/custom/include/Dashlets/DashletGeneric.php:399
Stack trace:
#0 /var/www/html/suitecrm/modules/Home/index.php(244): DashletGeneric->process()
#1 /var/www/html/suitecrm/modules/Home/views/view.list.php(55): include('...')
#2 /var/www/html/suitecrm/include/MVC/View/SugarView.php(210): HomeViewList->display()
#3 /var/www/html/suitecrm/include/MVC/Controller/SugarController.php(432): SugarView->process()
#4 /var/www/html/suitecrm/include/MVC/Controller/SugarController.php(363): SugarController->processView()
#5 /var/www/html/suitecrm/include/MVC/SugarApplication.php(101): SugarController->execute()
#6 /var/www/html/suitecrm/index.php(52): SugarApplication->execute()
#7 {main}
  thrown in /var/www/html/suitecrm/custom/include/Dashlets/DashletGeneric.php on line 399

Code at line 399 is:

$this->lvs->export = false;

Function code is:

     * Does all dashlet processing, here's your chance to modify the rows being displayed!
    function process($lvsParams = array()) {
        $currentSearchFields = array();
        $configureView = true; // configure view or regular view
        $query = false;
        $whereArray = array();
        $lvsParams['massupdate'] = false;

        if ($useCustomMetadata) {

        // apply filters
        if(isset($this->filters) || $this->myItemsOnly) {
            $whereArray = $this->buildWhere();

        $this->lvs->export = false;
        $this->lvs->multiSelect = false;
        // columns
        $displayColumns = array();
        if(!empty($this->displayColumns)) { // use user specified columns
        	foreach($this->displayColumns as $name => $val) {
                $displayColumns[strtoupper($val)] = $this->columns[$val];
                $displayColumns[strtoupper($val)]['label'] = trim($displayColumns[strtoupper($val)]['label'], ':');// strip : at the end of headers
        else if (isset($this->columns)){
           // use the default
            foreach($this->columns as $name => $val) {
                if(!empty($val['default']) && $val['default']) {
                    $displayColumns[strtoupper($name)] = $val;
                    $displayColumns[strtoupper($name)]['label'] = trim($displayColumns[strtoupper($name)]['label'], ':');
        $this->lvs->displayColumns = $displayColumns;

        $this->lvs->lvd->setVariableName($this->seedBean->object_name, array());
        $lvdOrderBy = $this->lvs->lvd->getOrderBy(); // has this list been ordered, if not use default

        $nameRelatedFields = array();

PHP v8.2.x

Please help to debug this error! :pray:

Find out where $this->lvs was set, and why it was set to null. Probably related to the fact that PHP 8.2 is more strict than previously in PHP 8.1 and 8.0. Looks like this needs a github bug report issue to get it updated to be compatible with the more strict PHP 8.2.

You’re correct :smiley:! But, I was able to resolve that issue by correcting code of add-ons and custom code files.
Still I have other code errors, I will ask solution for them in forum :melting_face: