We're seeing some unusual behaviour since installing dd-trace where occasionally the instance of PDOStatement being used is NULL, this doesn't happen all the time but we're seeing a sizeable number of requests where this is happening. Strange issue I know, here is the trace
ErrorException: Undefined variable: statement in /path/to/us/vendor/laravel/framework/src/Illuminate/Database/Connection.php:408
Stack trace:
#0 /path/to/us/vendor/laravel/framework/src/Illuminate/Database/Connection.php(408): Illuminate\Foundation\Bootstrap\HandleExceptions->handleError(8, 'Undefined varia...', '/home/forge/api...', 408, Array)
#1 /path/to/us/vendor/laravel/framework/src/Illuminate/Database/Connection.php(335): Illuminate\Database\Connection->bindValues(NULL, Array)
#2 /path/to/us/vendor/laravel/framework/src/Illuminate/Database/Connection.php(763): Illuminate\Database\Connection->Illuminate\Database\{closure}(Object(Illuminate\Database\PostgresConnection), 'select * from "...', Array)
#3 /path/to/us/vendor/laravel/framework/src/Illuminate/Database/Connection.php(726): Illuminate\Database\Connection->runQueryCallback('select * from "...', Array, Object(Closure))
#4 /path/to/us/vendor/laravel/framework/src/Illuminate/Database/Connection.php(351): Illuminate\Database\Connection->run('select * from "...', Array, Object(Closure))
#5 /path/to/us/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(1648): Illuminate\Database\Connection->select('select * from "...', Array, true)
#6 /path/to/us/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(1634): Illuminate\Database\Query\Builder->runSelect()
#7 /path/to/us/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(638): Illuminate\Database\Query\Builder->get(Array)
#8 [internal function]: Illuminate\Database\Eloquent\Builder->getModels(Array)
#9 /opt/datadog-php/dd-trace-sources/src/DDTrace/Util/TryCatchFinally.php(31): call_user_func_array(Array, Array)
#10 /opt/datadog-php/dd-trace-sources/src/DDTrace/Integrations/Eloquent/EloquentIntegration.php(32): DDTrace\Util\TryCatchFinally::executePublicMethod(Object(DDTrace\Scope), Object(Illuminate\Database\Eloquent\Builder), 'getModels', Array)
#11 /path/to/us/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(327): Illuminate\Database\Eloquent\Builder->DDTrace\Integrations\Eloquent\{closure}(Array)
#12 /path/to/us/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(297): Illuminate\Database\Eloquent\Builder->get(Array)
#13 /path/to/us/app/Models/Domain/UserQueryContext/UserQueryContext.php(36): Illuminate\Database\Eloquent\Builder->first()
#14 /path/to/us/app/Models/Domain/Timeline/UserMessagePayload.php(1858): App\Models\Domain\UserQueryContext\UserQueryContext->getUserById(123456)
#15 /path/to/us/app/Http/Controllers/Vendors/ACME/MessagePayloadController.php(29): App\Models\Domain\Timeline\UserMessagePayload->getLongPayload('ROU_1')
#16 [internal function]: App\Http\Controllers\Vendors\ACME\MessagePayloadController->long('123456', 'ROU_1')
#17 /path/to/us/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(55): call_user_func_array(Array, Array)
#18 /path/to/us/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(44): Illuminate\Routing\Controller->callAction('long', Array)
#19 /path/to/us/vendor/laravel/framework/src/Illuminate/Routing/Route.php(189): Illuminate\Routing\ControllerDispatcher->dispatch(Object(Illuminate\Routing\Route), Object(App\Http\Controllers\Vendors\ACME\MessagePayloadController), 'long')
#20 /path/to/us/vendor/laravel/framework/src/Illuminate/Routing/Route.php(144): Illuminate\Routing\Route->runController()
#21 /path/to/us/vendor/laravel/framework/src/Illuminate/Routing/Router.php(653): Illuminate\Routing\Route->run(Object(Illuminate\Http\Request))
#22 /path/to/us/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Routing\Router->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#23 /path/to/us/app/Http/Middleware/V3/VerifyApiAuthentication.php(20): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#24 /path/to/us/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): App\Http\Middleware\V3\VerifyApiAuthentication->handle(Object(Illuminate\Http\Request), Object(Closure))
#25 /path/to/us/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#26 /path/to/us/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(104): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#27 /path/to/us/vendor/laravel/framework/src/Illuminate/Routing/Router.php(655): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#28 /path/to/us/vendor/laravel/framework/src/Illuminate/Routing/Router.php(629): Illuminate\Routing\Router->runRouteWithinStack(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request))
#29 /path/to/us/vendor/laravel/framework/src/Illuminate/Routing/Router.php(607): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
#30 /path/to/us/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(268): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#31 /path/to/us/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}(Object(Illuminate\Http\Request))
#32 /path/to/us/app/Http/Middleware/LogRequests.php(12): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#33 [internal function]: App\Http\Middleware\LogRequests->handle(Object(Illuminate\Http\Request), Object(Closure))
#34 /opt/datadog-php/dd-trace-sources/src/DDTrace/Util/TryCatchFinally.php(31): call_user_func_array(Array, Array)
#35 /opt/datadog-php/dd-trace-sources/src/DDTrace/Integrations/Laravel/V5/LaravelIntegrationLoader.php(123): DDTrace\Util\TryCatchFinally::executePublicMethod(Object(DDTrace\Scope), Object(App\Http\Middleware\LogRequests), 'handle', Array)
#36 /path/to/us/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): App\Http\Middleware\LogRequests->DDTrace\Integrations\Laravel\V5\{closure}(Object(Illuminate\Http\Request), Object(Closure))
#37 /path/to/us/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#38 /path/to/us/vendor/barryvdh/laravel-cors/src/HandleCors.php(37): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#39 [internal function]: Barryvdh\Cors\HandleCors->handle(Object(Illuminate\Http\Request), Object(Closure))
#40 /opt/datadog-php/dd-trace-sources/src/DDTrace/Util/TryCatchFinally.php(31): call_user_func_array(Array, Array)
#41 /opt/datadog-php/dd-trace-sources/src/DDTrace/Integrations/Laravel/V5/LaravelIntegrationLoader.php(123): DDTrace\Util\TryCatchFinally::executePublicMethod(Object(DDTrace\Scope), Object(Barryvdh\Cors\HandleCors), 'handle', Array)
#42 /path/to/us/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Barryvdh\Cors\HandleCors->DDTrace\Integrations\Laravel\V5\{closure}(Object(Illuminate\Http\Request), Object(Closure))
#43 /path/to/us/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#44 /path/to/us/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(46): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#45 [internal function]: Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle(Object(Illuminate\Http\Request), Object(Closure))
#46 /opt/datadog-php/dd-trace-sources/src/DDTrace/Util/TryCatchFinally.php(31): call_user_func_array(Array, Array)
#47 /opt/datadog-php/dd-trace-sources/src/DDTrace/Integrations/Laravel/V5/LaravelIntegrationLoader.php(123): DDTrace\Util\TryCatchFinally::executePublicMethod(Object(DDTrace\Scope), Object(Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode), 'handle', Array)
#48 /path/to/us/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->DDTrace\Integrations\Laravel\V5\{closure}(Object(Illuminate\Http\Request), Object(Closure))
#49 /path/to/us/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#50 /path/to/us/app/DatadogMiddleware.php(11): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#51 [internal function]: App\DatadogMiddleware->handle(Object(Illuminate\Http\Request), Object(Closure))
#52 /opt/datadog-php/dd-trace-sources/src/DDTrace/Util/TryCatchFinally.php(31): call_user_func_array(Array, Array)
#53 /opt/datadog-php/dd-trace-sources/src/DDTrace/Integrations/Laravel/V5/LaravelIntegrationLoader.php(123): DDTrace\Util\TryCatchFinally::executePublicMethod(Object(DDTrace\Scope), Object(App\DatadogMiddleware), 'handle', Array)
#54 /path/to/us/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): App\DatadogMiddleware->DDTrace\Integrations\Laravel\V5\{closure}(Object(Illuminate\Http\Request), Object(Closure))
#55 /path/to/us/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#56 /path/to/us/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(104): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#57 [internal function]: Illuminate\Pipeline\Pipeline->then(Object(Closure))
#58 /opt/datadog-php/dd-trace-sources/src/DDTrace/Integrations/Laravel/V5/LaravelIntegrationLoader.php(128): call_user_func_array(Array, Array)
#59 /path/to/us/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(150): Illuminate\Pipeline\Pipeline->DDTrace\Integrations\Laravel\V5\{closure}(Object(Closure))
#60 /path/to/us/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(117): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request))
#61 /path/to/us/public/index.php(53): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))
#62 {main}
Next Illuminate\Database\QueryException: Undefined variable: statement (SQL: select * from "users" where "id" = 123456 limit 1) in /path/to/us/vendor/laravel/framework/src/Illuminate/Database/Connection.php:770
Stack trace:
#0 /path/to/us/vendor/laravel/framework/src/Illuminate/Database/Connection.php(726): Illuminate\Database\Connection->runQueryCallback('select * from "...', Array, Object(Closure))
#1 /path/to/us/vendor/laravel/framework/src/Illuminate/Database/Connection.php(351): Illuminate\Database\Connection->run('select * from "...', Array, Object(Closure))
#2 /path/to/us/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(1648): Illuminate\Database\Connection->select('select * from "...', Array, true)
#3 /path/to/us/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(1634): Illuminate\Database\Query\Builder->runSelect()
#4 /path/to/us/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(638): Illuminate\Database\Query\Builder->get(Array)
#5 [internal function]: Illuminate\Database\Eloquent\Builder->getModels(Array)
#6 /opt/datadog-php/dd-trace-sources/src/DDTrace/Util/TryCatchFinally.php(31): call_user_func_array(Array, Array)
#7 /opt/datadog-php/dd-trace-sources/src/DDTrace/Integrations/Eloquent/EloquentIntegration.php(32): DDTrace\Util\TryCatchFinally::executePublicMethod(Object(DDTrace\Scope), Object(Illuminate\Database\Eloquent\Builder), 'getModels', Array)
#8 /path/to/us/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(327): Illuminate\Database\Eloquent\Builder->DDTrace\Integrations\Eloquent\{closure}(Array)
#9 /path/to/us/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(297): Illuminate\Database\Eloquent\Builder->get(Array)
#10 /path/to/us/app/Models/Domain/UserQueryContext/UserQueryContext.php(36): Illuminate\Database\Eloquent\Builder->first()
#11 /path/to/us/app/Models/Domain/Timeline/UserMessagePayload.php(1858): App\Models\Domain\UserQueryContext\UserQueryContext->getUserById(123456)
#12 /path/to/us/app/Http/Controllers/Vendors/ACME/MessagePayloadController.php(29): App\Models\Domain\Timeline\UserMessagePayload->getLongPayload('ROU_1')
#13 [internal function]: App\Http\Controllers\Vendors\ACME\MessagePayloadController->long('123456', 'ROU_1')
#14 /path/to/us/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(55): call_user_func_array(Array, Array)
#15 /path/to/us/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(44): Illuminate\Routing\Controller->callAction('long', Array)
#16 /path/to/us/vendor/laravel/framework/src/Illuminate/Routing/Route.php(189): Illuminate\Routing\ControllerDispatcher->dispatch(Object(Illuminate\Routing\Route), Object(App\Http\Controllers\Vendors\ACME\MessagePayloadController), 'long')
#17 /path/to/us/vendor/laravel/framework/src/Illuminate/Routing/Route.php(144): Illuminate\Routing\Route->runController()
#18 /path/to/us/vendor/laravel/framework/src/Illuminate/Routing/Router.php(653): Illuminate\Routing\Route->run(Object(Illuminate\Http\Request))
#19 /path/to/us/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Routing\Router->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#20 /path/to/us/app/Http/Middleware/V3/VerifyApiAuthentication.php(20): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#21 /path/to/us/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): App\Http\Middleware\V3\VerifyApiAuthentication->handle(Object(Illuminate\Http\Request), Object(Closure))
#22 /path/to/us/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#23 /path/to/us/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(104): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#24 /path/to/us/vendor/laravel/framework/src/Illuminate/Routing/Router.php(655): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#25 /path/to/us/vendor/laravel/framework/src/Illuminate/Routing/Router.php(629): Illuminate\Routing\Router->runRouteWithinStack(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request))
#26 /path/to/us/vendor/laravel/framework/src/Illuminate/Routing/Router.php(607): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
#27 /path/to/us/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(268): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#28 /path/to/us/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}(Object(Illuminate\Http\Request))
#29 /path/to/us/app/Http/Middleware/LogRequests.php(12): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#30 [internal function]: App\Http\Middleware\LogRequests->handle(Object(Illuminate\Http\Request), Object(Closure))
#31 /opt/datadog-php/dd-trace-sources/src/DDTrace/Util/TryCatchFinally.php(31): call_user_func_array(Array, Array)
#32 /opt/datadog-php/dd-trace-sources/src/DDTrace/Integrations/Laravel/V5/LaravelIntegrationLoader.php(123): DDTrace\Util\TryCatchFinally::executePublicMethod(Object(DDTrace\Scope), Object(App\Http\Middleware\LogRequests), 'handle', Array)
#33 /path/to/us/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): App\Http\Middleware\LogRequests->DDTrace\Integrations\Laravel\V5\{closure}(Object(Illuminate\Http\Request), Object(Closure))
#34 /path/to/us/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#35 /path/to/us/vendor/barryvdh/laravel-cors/src/HandleCors.php(37): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#36 [internal function]: Barryvdh\Cors\HandleCors->handle(Object(Illuminate\Http\Request), Object(Closure))
#37 /opt/datadog-php/dd-trace-sources/src/DDTrace/Util/TryCatchFinally.php(31): call_user_func_array(Array, Array)
#38 /opt/datadog-php/dd-trace-sources/src/DDTrace/Integrations/Laravel/V5/LaravelIntegrationLoader.php(123): DDTrace\Util\TryCatchFinally::executePublicMethod(Object(DDTrace\Scope), Object(Barryvdh\Cors\HandleCors), 'handle', Array)
#39 /path/to/us/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Barryvdh\Cors\HandleCors->DDTrace\Integrations\Laravel\V5\{closure}(Object(Illuminate\Http\Request), Object(Closure))
#40 /path/to/us/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#41 /path/to/us/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(46): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#42 [internal function]: Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle(Object(Illuminate\Http\Request), Object(Closure))
#43 /opt/datadog-php/dd-trace-sources/src/DDTrace/Util/TryCatchFinally.php(31): call_user_func_array(Array, Array)
#44 /opt/datadog-php/dd-trace-sources/src/DDTrace/Integrations/Laravel/V5/LaravelIntegrationLoader.php(123): DDTrace\Util\TryCatchFinally::executePublicMethod(Object(DDTrace\Scope), Object(Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode), 'handle', Array)
#45 /path/to/us/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->DDTrace\Integrations\Laravel\V5\{closure}(Object(Illuminate\Http\Request), Object(Closure))
#46 /path/to/us/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#47 /path/to/us/app/DatadogMiddleware.php(11): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#48 [internal function]: App\DatadogMiddleware->handle(Object(Illuminate\Http\Request), Object(Closure))
#49 /opt/datadog-php/dd-trace-sources/src/DDTrace/Util/TryCatchFinally.php(31): call_user_func_array(Array, Array)
#50 /opt/datadog-php/dd-trace-sources/src/DDTrace/Integrations/Laravel/V5/LaravelIntegrationLoader.php(123): DDTrace\Util\TryCatchFinally::executePublicMethod(Object(DDTrace\Scope), Object(App\DatadogMiddleware), 'handle', Array)
#51 /path/to/us/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): App\DatadogMiddleware->DDTrace\Integrations\Laravel\V5\{closure}(Object(Illuminate\Http\Request), Object(Closure))
#52 /path/to/us/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#53 /path/to/us/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(104): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#54 [internal function]: Illuminate\Pipeline\Pipeline->then(Object(Closure))
#55 /opt/datadog-php/dd-trace-sources/src/DDTrace/Integrations/Laravel/V5/LaravelIntegrationLoader.php(128): call_user_func_array(Array, Array)
#56 /path/to/us/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(150): Illuminate\Pipeline\Pipeline->DDTrace\Integrations\Laravel\V5\{closure}(Object(Closure))
#57 /path/to/us/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(117): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request))
#58 /path/to/us/public/index.php(53): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))
#59 {main}