Server Error 500 when emailing purchase order

I am getting this error when sending a purchase order. What I can see is the purchase order table has a mismatched name:

Table on error: ninja_ninj222.purchaseOrders
Table on MyAdmin: ninja_ninj222.purchase_Orders

How do I fix this?

[2024-01-08 12:53:03] production.ERROR: SQLSTATE[42S02]: Base table or view not found: 1146 Table ‘ninja_ninj222.purchaseOrders’ doesn’t exist (Connection: mysql, SQL: select count() as aggregate from purchaseOrders where id = 2 and company_id = 3) {“userId”:1,“exception”:"[object] (Illuminate\Database\QueryException(code: 42S02): SQLSTATE[42S02]: Base table or view not found: 1146 Table ‘ninja_ninj222.purchaseOrders’ doesn’t exist (Connection: mysql, SQL: select count() as aggregate from purchaseOrders where id = 2 and company_id = 3) at /home/vendor/laravel/framework/src/Illuminate/Database/Connection.php:822)
[stacktrace]
#0 /home/vendor/laravel/framework/src/Illuminate/Database/Connection.php(776): Illuminate\Database\Connection->runQueryCallback(‘select count()…', Array, Object(Closure))
#1 /home/vendor/laravel/framework/src/Illuminate/Database/Connection.php(407): Illuminate\Database\Connection->run('select count(
)…’, Array, Object(Closure))
#2 /home/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2751): Illuminate\Database\Connection->select(‘select count(*)…’, Array, false)
#3 /home/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2740): Illuminate\Database\Query\Builder->runSelect()
#4 /home/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3294): Illuminate\Database\Query\Builder->Illuminate\Database\Query\{closure}()
#5 /home/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2739): Illuminate\Database\Query\Builder->onceWithColumns(Array, Object(Closure))
#6 /home/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3221): Illuminate\Database\Query\Builder->get(Array)
#7 /home/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3149): Illuminate\Database\Query\Builder->aggregate(‘count’, Array)
#8 /home/vendor/laravel/framework/src/Illuminate/Validation/DatabasePresenceVerifier.php(54): Illuminate\Database\Query\Builder->count()
#9 /home/vendor/laravel/framework/src/Illuminate/Validation/Concerns/ValidatesAttributes.php(903): Illuminate\Validation\DatabasePresenceVerifier->getCount(‘purchaseOrders’, ‘id’, 2, NULL, NULL, Array)
#10 /home/vendor/laravel/framework/src/Illuminate/Validation/Concerns/ValidatesAttributes.php(874): Illuminate\Validation\Validator->getExistCount(NULL, ‘purchaseOrders’, ‘id’, 2, Array)
#11 /home/vendor/laravel/framework/src/Illuminate/Validation/Validator.php(657): Illuminate\Validation\Validator->validateExists(‘entity_id’, 2, Array, Object(Illuminate\Validation\Validator))
#12 /home/vendor/laravel/framework/src/Illuminate/Validation/Validator.php(457): Illuminate\Validation\Validator->validateAttribute(‘entity_id’, ‘Exists’)
#13 /home/vendor/laravel/framework/src/Illuminate/Validation/Validator.php(492): Illuminate\Validation\Validator->passes()
#14 /home/vendor/laravel/framework/src/Illuminate/Validation/ValidatesWhenResolvedTrait.php(31): Illuminate\Validation\Validator->fails()
#15 /home/vendor/laravel/framework/src/Illuminate/Foundation/Providers/FormRequestServiceProvider.php(30): Illuminate\Foundation\Http\FormRequest->validateResolved()
#16 /home/vendor/laravel/framework/src/Illuminate/Container/Container.php(1302): Illuminate\Foundation\Providers\FormRequestServiceProvider->Illuminate\Foundation\Providers\{closure}(Object(App\Http\Requests\Email\SendEmailRequest), Object(Illuminate\Foundation\Application))
#17 /home/vendor/laravel/framework/src/Illuminate/Container/Container.php(1266): Illuminate\Container\Container->fireCallbackArray(Object(App\Http\Requests\Email\SendEmailRequest), Array)
#18 /home/vendor/laravel/framework/src/Illuminate/Container/Container.php(1252): Illuminate\Container\Container->fireAfterResolvingCallbacks(‘App\\Http\\Reques…’, Object(App\Http\Requests\Email\SendEmailRequest))
#19 /home/vendor/laravel/framework/src/Illuminate/Container/Container.php(813): Illuminate\Container\Container->fireResolvingCallbacks(‘App\\Http\\Reques…’, Object(App\Http\Requests\Email\SendEmailRequest))
#20 /home/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(957): Illuminate\Container\Container->resolve(‘App\\Http\\Reques…’, Array, true)
#21 /home/vendor/laravel/framework/src/Illuminate/Container/Container.php(731): Illuminate\Foundation\Application->resolve(‘App\\Http\\Reques…’, Array)
#22 /home/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(942): Illuminate\Container\Container->make(‘App\\Http\\Reques…’, Array)
#23 /home/vendor/laravel/framework/src/Illuminate/Routing/ResolvesRouteDependencies.php(85): Illuminate\Foundation\Application->make(‘App\\Http\\Reques…’)
#24 /home/vendor/laravel/framework/src/Illuminate/Routing/ResolvesRouteDependencies.php(50): Illuminate\Routing\ControllerDispatcher->transformDependency(Object(ReflectionParameter), Array, Object(stdClass))
#25 /home/vendor/laravel/framework/src/Illuminate/Routing/ResolvesRouteDependencies.php(29): Illuminate\Routing\ControllerDispatcher->resolveMethodDependencies(Array, Object(ReflectionMethod))
#26 /home/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(59): Illuminate\Routing\ControllerDispatcher->resolveClassMethodDependencies(Array, Object(App\Http\Controllers\EmailController), ‘send’)
#27 /home/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(40): Illuminate\Routing\ControllerDispatcher->resolveParameters(Object(Illuminate\Routing\Route), Object(App\Http\Controllers\EmailController), ‘send’)
#28 /home/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Tracing/Routing/TracingControllerDispatcherTracing.php(21): Illuminate\Routing\ControllerDispatcher->dispatch(Object(Illuminate\Routing\Route), Object(App\Http\Controllers\EmailController), ‘send’)
#29 /home/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Tracing/Routing/TracingRoutingDispatcher.php(19): Sentry\Laravel\Tracing\Routing\TracingControllerDispatcherTracing->Sentry\Laravel\Tracing\Routing\{closure}()
#30 /home/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Tracing/Routing/TracingControllerDispatcherTracing.php(20): Sentry\Laravel\Tracing\Routing\TracingRoutingDispatcher->wrapRouteDispatch(Object(Closure), Object(Illuminate\Routing\Route))
#31 /home/vendor/laravel/framework/src/Illuminate/Routing/Route.php(259): Sentry\Laravel\Tracing\Routing\TracingControllerDispatcherTracing->dispatch(Object(Illuminate\Routing\Route), Object(App\Http\Controllers\EmailController), ‘send’)
#32 /home/vendor/laravel/framework/src/Illuminate/Routing/Route.php(205): Illuminate\Routing\Route->runController()
#33 /home/vendor/laravel/framework/src/Illuminate/Routing/Router.php(806): Illuminate\Routing\Route->run()
#34 /home/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(144): Illuminate\Routing\Router->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#35 /home/app/Http/Middleware/UserVerified.php(40): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#36 /home/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): App\Http\Middleware\UserVerified->handle(Object(Illuminate\Http\Request), Object(Closure))
#37 /home/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(122): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#38 /home/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(87): Illuminate\Routing\Middleware\ThrottleRequests->handleRequestUsingNamedLimiter(Object(Illuminate\Http\Request), Object(Closure), ‘api’, Object(Closure))
#39 /home/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Routing\Middleware\ThrottleRequests->handle(Object(Illuminate\Http\Request), Object(Closure), ‘api’)
#40 /home/app/Http/Middleware/QueryLogging.php(40): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#41 /home/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): App\Http\Middleware\QueryLogging->handle(Object(Illuminate\Http\Request), Object(Closure))
#42 /home/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#43 /home/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Routing\Middleware\SubstituteBindings->handle(Object(Illuminate\Http\Request), Object(Closure))
#44 /home/app/Http/Middleware/Locale.php(86): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#45 /home/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): App\Http\Middleware\Locale->handle(Object(Illuminate\Http\Request), Object(Closure))
#46 /home/app/Http/Middleware/TokenAuth.php(101): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#47 /home/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): App\Http\Middleware\TokenAuth->handle(Object(Illuminate\Http\Request), Object(Closure))
#48 /home/app/Http/Middleware/SetDb.php(40): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#49 /home/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): App\Http\Middleware\SetDb->handle(Object(Illuminate\Http\Request), Object(Closure))
#50 /home/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(119): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#51 /home/vendor/laravel/framework/src/Illuminate/Routing/Router.php(805): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#52 /home/vendor/laravel/framework/src/Illuminate/Routing/Router.php(784): Illuminate\Routing\Router->runRouteWithinStack(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request))
#53 /home/vendor/laravel/framework/src/Illuminate/Routing/Router.php(748): Illuminate\Routing\Router->runRoute(Object(Illuminate\Http\Request), Object(Illuminate\Routing\Route))
#54 /home/vendor/laravel/framework/src/Illuminate/Routing/Router.php(737): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
#55 /home/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#56 /home/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(144): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}(Object(Illuminate\Http\Request))
#57 /home/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestIpMiddleware.php(45): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#58 /home/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Sentry\Laravel\Http\SetRequestIpMiddleware->handle(Object(Illuminate\Http\Request), Object(Closure))
#59 /home/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestMiddleware.php(31): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#60 /home/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Sentry\Laravel\Http\SetRequestMiddleware->handle(Object(Illuminate\Http\Request), Object(Closure))
#61 /home/vendor/livewire/livewire/src/Features/SupportDisablingBackButtonCache/DisableBackButtonCacheMiddleware.php(19): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#62 /home/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Livewire\Features\SupportDisablingBackButtonCache\DisableBackButtonCacheMiddleware->handle(Object(Illuminate\Http\Request), Object(Closure))
#63 /home/app/Http/Middleware/Cors.php(24): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#64 /home/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): App\Http\Middleware\Cors->handle(Object(Illuminate\Http\Request), Object(Closure))
#65 /home/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(39): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#66 /home/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Http\Middleware\TrustProxies->handle(Object(Illuminate\Http\Request), Object(Closure))
#67 /home/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#68 /home/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Closure))
#69 /home/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull->handle(Object(Illuminate\Http\Request), Object(Closure))
#70 /home/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#71 /home/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(40): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Closure))
#72 /home/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Foundation\Http\Middleware\TrimStrings->handle(Object(Illuminate\Http\Request), Object(Closure))
#73 /home/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#74 /home/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Foundation\Http\Middleware\ValidatePostSize->handle(Object(Illuminate\Http\Request), Object(Closure))
#75 /home/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(99): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#76 /home/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance->handle(Object(Illuminate\Http\Request), Object(Closure))
#77 /home/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Tracing/Middleware.php(87): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#78 /home/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Sentry\Laravel\Tracing\Middleware->handle(Object(Illuminate\Http\Request), Object(Closure))
#79 /home/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(119): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#80 /home/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#81 /home/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request))
#82 /home/public/index.php(56): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))
#83 {main}

Hi,

It should help to run php artisan migrate

hi,

have the same issue on 5.8.3, when i run php artisan migrate i get this output

Blockquote
INFO Running migrations.

2023_11_26_082959_add_bank_integration_id … 5ms FAIL

In Connection.php line 822:

SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name ‘integration_type’ (Connection: mysql, SQL: alter table bank_integrati ons add integration_type varchar(191) null, add nordigen_account_id varchar(191) null, add nordigen_institution_id varchar(191) nul
l)

In Connection.php line 580:

SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name ‘integration_type’

Blockquote

It looks like the migration failed, you’ll need to comment out the lines in the file which were already run and than rerun the migrate command. The migration files are in database/migrations.

@david this same issue was also reported today on Slack.

i comment out the lines and now the migrate command output ‘DONE’

but still the same issue, server error 500 when sending PO mail.

also i figure out that data (quotes, invoices and payment from 2020) are all missing.

Are you seeing the same error in storage/logs?

Which frontend are you using/have you tried using a different one?

I’m sorry for my ignorance, Where do I run that command? I am using a shared hosting with invoice ninja license.

in logs here’s what i found

Blockquote
[2024-01-10 13:40:00] production.ERROR: SQLSTATE[42S02]: Base table or view not found: 1146 Table ‘madsysma_ninjav5.purchaseOrders’ doesn’t exist (Connection: mysql, SQL: select count() as aggregate from purchaseOrders where id = 1106 and company_id = 3) {“userId”:1,“exception”:"[object] (Illuminate\Database\QueryException(code: 42S02): SQLSTATE[42S02]: Base table or view not found: 1146 Table ‘madsysma_ninjav5.purchaseOrders’ doesn’t exist (Connection: mysql, SQL: select count() as aggregate from purchaseOrders where id = 1106 and company_id = 3) at /var/www/in.madsys.ma/vendor/laravel/framework/src/Illuminate/Database/Connection.php:822)

Blockquote

seems like a database issue.

for frontend i use windows app, iOS app and browser, same issue with all of them.

You need to run the command from the CLI in the root folder of the project.

got it! just got this response:

INFO: Nothing to migrate.

Which version of the app are you using?

I just updated to 5.8.8

Are you seeing the same error in storage/logs?

Yes, I keep getting the same error:

[2024-01-10 14:43:53] production.ERROR: SQLSTATE[42S02]: Base table or view not found: 1146 Table ‘ninja_ninj222.purchaseOrders’ doesn’t exist (Connection: mysql, SQL: select count() as aggregate from purchaseOrders where id = 3 and company_id = 3) {“userId”:1,“exception”:"[object] (Illuminate\Database\QueryException(code: 42S02): SQLSTATE[42S02]: Base table or view not found: 1146 Table ‘ninja_ninj222.purchaseOrders’ doesn’t exist (Connection: mysql, SQL: select count() as aggregate from purchaseOrders where id = 3 and company_id = 3) at /home/vendor/laravel/framework/src/Illuminate/Database/Connection.php:822)
[stacktrace]

i just upgraded to 5.8.9, and run php artisan migrate (nothing to migrate).
same error on laravel log

Blockquote
[2024-01-10 14:52:55] production.ERROR: SQLSTATE[42S02]: Base table or view not found: 1146 Table ‘madsysma_ninjav5.purchaseOrders’ doesn’t exist (Connection: mysql, SQL: select count() as aggregate from purchaseOrders where id = 1106 and company_id = 3) {“userId”:1,“exception”:"[object] (Illuminate\Database\QueryException(code: 42S02): SQLSTATE[42S02]: Base table or view not found: 1146 Table ‘madsysma_ninjav5.purchaseOrders’ doesn’t exist (Connection: mysql, SQL: select count() as aggregate from purchaseOrders where id = 1106 and company_id = 3) at /var/www/in.madsys.ma/vendor/laravel/framework/src/Illuminate/Database/Connection.php:822)

@david do you have any suggestions?

i checked the database and the table “purchaseOrders” doesn’t exist, it’s “purchase_orders”

also all the missing data from 2019 and 2020 are still there on the database but doesn’t appears on the app, only 2021 data and up, this problem appeared on the latests updates

Are you using the Flutter or React app?

Note: if you’re using the Flutter app with a large account you can increase the number of years to load on Settings > User Details to view older data.

i think it’s flutter, i’m using desktop app from microsoft store and iOS app from appstore.

thanks for note, effectively it was the number of years to load, didn’t pay attention to this option.

Thanks, I see the problem. We’ll include a fix with the next release.

2 Likes