All add-ons currently require PHP 7.4 or greater.

On July 4th 2024 PHP 8.2 will be the new minimum requirement for all add-ons. Expect any add-on released after that date to require 8.2 or greater. Some releases may not immediately take advantage of 8.x specific features in PHP, which means you might, be able to continue using new releases in PHP 7.4, however, if you experience an error the first thing you should do is update to PHP 8.2 then create a support ticket if the error persists.

Please read about the changes to BoldMinded add-on licensing.

Ticket: When upgrading from 1.5.0 > 1.7.0 | Fatal error: Uncaught TypeError

Status Resolved
Add-on / Version Speedy 1.7.0
Severity
EE Version 5.4.3

Louis

Jun 02, 2023

I am preparing to upgrade EE from 5 > 7.
First step is upgrading all supported add-ons.
After upgrading Speedy from 1.5.0 > 1.7.0 I get a white page on the add-on settings page containing the following error:

Fatal error: Uncaught TypeError: Return value of BoldMinded\Speedy\Service\Drivers\DatabaseDriver::getModel() must be an instance of ExpressionEngine\Service\Model\Query\Builder, instance of EllisLab\ExpressionEngine\Service\Model\Query\Builder returned in /path/to/ee/user/addons/speedy/Service/Drivers/DatabaseDriver.php:235

Stack trace:
#0 /path/to/ee/user/addons/speedy/Service/Drivers/DatabaseDriver.php(67): BoldMinded\Speedy\Service\Drivers\DatabaseDriver->getModel()
#1 /path/to/ee/user/addons/speedy/mcp.speedy.php(725): BoldMinded\Speedy\Service\Drivers\DatabaseDriver->countItems()
#2 /path/to/ee/user/addons/speedy/mcp.speedy.php(66): Speedy_mcp->buildCacheInfoData()
#3 [internal function]: Speedy_mcp->index()
#4 /path/to/ee/ee/EllisLab/ExpressionEngine/Cont in /path/to/ee/user/addons/speedy/Service/Drivers/DatabaseDriver.php on line 235

#1

BoldMinded (Brian)

Find the DatabaseDriver.php file and update lines 6 and 7 to this:

use EllisLab\ExpressionEngine\Service\Model\Collection;
use EllisLab\ExpressionEngine\Service\Model\Query\Builder;

Should fix it.

#2

Louis

Just wanted to add that before I updated the lines of code that you suggested, when I deleted an entry I got the following errors.

Perhaps its valuable for future reference.

Notice
Trying to get property 'username' of non-object

user/addons/speedy/Service/CacheBreaker.php, line 511

    Severity: E_NOTICE

Notice
Trying to get property 'username' of non-object

user/addons/speedy/Service/CacheBreaker.php, line 512

    Severity: E_NOTICE

Notice
Trying to get property 'username' of non-object

user/addons/speedy/Service/CacheBreaker.php, line 511

    Severity: E_NOTICE

Notice
Trying to get property 'username' of non-object

user/addons/speedy/Service/CacheBreaker.php, line 512

    Severity: E_NOTICE

Notice
Trying to get property 'username' of non-object

user/addons/speedy/Service/CacheBreaker.php, line 511

    Severity: E_NOTICE

Notice
Trying to get property 'username' of non-object

user/addons/speedy/Service/CacheBreaker.php, line 512

    Severity: E_NOTICE

Notice
Trying to get property 'username' of non-object

user/addons/speedy/Service/CacheBreaker.php, line 511

    Severity: E_NOTICE

Notice
Trying to get property 'username' of non-object

user/addons/speedy/Service/CacheBreaker.php, line 512

    Severity: E_NOTICE

Notice
Trying to get property 'username' of non-object

user/addons/speedy/Service/CacheBreaker.php, line 511

    Severity: E_NOTICE

Notice
Trying to get property 'username' of non-object

user/addons/speedy/Service/CacheBreaker.php, line 512

    Severity: E_NOTICE

Notice
Trying to get property 'username' of non-object

user/addons/speedy/Service/CacheBreaker.php, line 511

    Severity: E_NOTICE

Notice
Trying to get property 'username' of non-object

user/addons/speedy/Service/CacheBreaker.php, line 512

    Severity: E_NOTICE

Notice
Trying to get property 'username' of non-object

user/addons/speedy/Service/CacheBreaker.php, line 511

    Severity: E_NOTICE

Notice
Trying to get property 'username' of non-object

user/addons/speedy/Service/CacheBreaker.php, line 512

    Severity: E_NOTICE

Notice
Trying to get property 'username' of non-object

user/addons/speedy/Service/CacheBreaker.php, line 511

    Severity: E_NOTICE

Notice
Trying to get property 'username' of non-object

user/addons/speedy/Service/CacheBreaker.php, line 512

    Severity: E_NOTICE

Notice
Trying to get property 'username' of non-object

user/addons/speedy/Service/CacheBreaker.php, line 511

    Severity: E_NOTICE

Notice
Trying to get property 'username' of non-object

user/addons/speedy/Service/CacheBreaker.php, line 512

    Severity: E_NOTICE

Notice
Trying to get property 'username' of non-object

user/addons/speedy/Service/CacheBreaker.php, line 511

    Severity: E_NOTICE

Notice
Trying to get property 'username' of non-object

user/addons/speedy/Service/CacheBreaker.php, line 512

    Severity: E_NOTICE

Notice
Trying to get property 'username' of non-object

user/addons/speedy/Service/CacheBreaker.php, line 511

    Severity: E_NOTICE

Notice
Trying to get property 'username' of non-object

user/addons/speedy/Service/CacheBreaker.php, line 512

    Severity: E_NOTICE

Notice
Trying to get property 'username' of non-object

user/addons/speedy/Service/CacheBreaker.php, line 511

    Severity: E_NOTICE

Notice
Trying to get property 'username' of non-object

user/addons/speedy/Service/CacheBreaker.php, line 512

    Severity: E_NOTICE

Notice
Trying to get property 'username' of non-object

user/addons/speedy/Service/CacheBreaker.php, line 511

    Severity: E_NOTICE

Notice
Trying to get property 'username' of non-object

user/addons/speedy/Service/CacheBreaker.php, line 512

    Severity: E_NOTICE

Notice
Trying to get property 'username' of non-object

user/addons/speedy/Service/CacheBreaker.php, line 511

    Severity: E_NOTICE

Notice
Trying to get property 'username' of non-object

user/addons/speedy/Service/CacheBreaker.php, line 512

    Severity: E_NOTICE

Notice
Trying to get property 'username' of non-object

user/addons/speedy/Service/CacheBreaker.php, line 511

    Severity: E_NOTICE

Notice
Trying to get property 'username' of non-object

user/addons/speedy/Service/CacheBreaker.php, line 512

    Severity: E_NOTICE

Warning
Cannot modify header information - headers already sent by (output started at ee/legacy/core/Exceptions.php:120)

ee/legacy/core/Input.php, line 265

    Severity: E_WARNING

Warning
Cannot modify header information - headers already sent by (output started at ee/legacy/core/Exceptions.php:120)

ee/legacy/libraries/Functions.php, line 393

    Severity: E_WARNING
#3

Louis

I’m sorry to reopen the ticket. I just realized that I have speedy disabled on my dev setup, that’s why the last errors are not showing up. On my live site the errors are showing up. I’ll make a new ticket for that one. I thought the two were related.

Login to reply