500 Error when trying to preview an invoice template

Have been trying to get V5 working on a Plesk install. Keep getting a 500 error when trying to preview an invoice template and seeing the following errors in the log file:

[2021-01-31 12:39:56] production.ERROR: The command "'/var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/beganovich/snappdf/versions/848474-Linux_x64/chrome-linux/chrome' '--headless' '--disable-gpu' '--disable-translate' '--disable-extensions' '--disable-sync' '--disable-background-networking' '--disable-software-rasterizer' '--disable-default-apps' '--disable-dev-shm-usage' '--safebrowsing-disable-auto-update' '--run-all-compositor-stages-before-draw' '--no-first-run' '--no-margins' '--no-sandbox' '--print-to-pdf-no-header' '--hide-scrollbars' '--print-to-pdf=/tmp/pdf_dcAF5X.pdf' '/tmp/html_x8XUYx.html'" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/public

Output:
================


Error Output:
================
/var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/beganovich/snappdf/versions/848474-Linux_x64/chrome-linux/chrome: error while loading shared libraries: libnss3.so: cannot open shared object file: No such file or directory
 {"userId":1,"exception":"[object] (Symfony\\Component\\Process\\Exception\\ProcessFailedException(code: 0): The command \"'/var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/beganovich/snappdf/versions/848474-Linux_x64/chrome-linux/chrome' '--headless' '--disable-gpu' '--disable-translate' '--disable-extensions' '--disable-sync' '--disable-background-networking' '--disable-software-rasterizer' '--disable-default-apps' '--disable-dev-shm-usage' '--safebrowsing-disable-auto-update' '--run-all-compositor-stages-before-draw' '--no-first-run' '--no-margins' '--no-sandbox' '--print-to-pdf-no-header' '--hide-scrollbars' '--print-to-pdf=/tmp/pdf_dcAF5X.pdf' '/tmp/html_x8XUYx.html'\" failed.

Exit Code: 127(Command not found)

Working directory: /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/public

Output:
================


Error Output:
================
/var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/beganovich/snappdf/versions/848474-Linux_x64/chrome-linux/chrome: error while loading shared libraries: libnss3.so: cannot open shared object file: No such file or directory
 at /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/beganovich/snappdf/src/Snappdf.php:157)
[stacktrace]
#0 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/app/Utils/Traits/Pdf/PdfMaker.php(38): Beganovich\\Snappdf\\Snappdf->generate()
#1 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/app/Jobs/Util/PreviewPdf.php(49): App\\Jobs\\Util\\PreviewPdf->makePdf()
#2 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): App\\Jobs\\Util\\PreviewPdf->handle()
#3 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/Util.php(40): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}()
#4 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(93): Illuminate\\Container\\Util::unwrapIfClosure()
#5 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(37): Illuminate\\Container\\BoundMethod::callBoundMethod()
#6 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/Container.php(610): Illuminate\\Container\\BoundMethod::call()
#7 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(128): Illuminate\\Container\\Container->call()
#8 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\\Bus\\Dispatcher->Illuminate\\Bus\\{closure}()
#9 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#10 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(132): Illuminate\\Pipeline\\Pipeline->then()
#11 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Bus/Dispatchable.php(67): Illuminate\\Bus\\Dispatcher->dispatchNow()
#12 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/app/Http/Controllers/PreviewController.php(220): App\\Jobs\\Util\\PreviewPdf::dispatchNow()
#13 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/app/Http/Controllers/PreviewController.php(143): App\\Http\\Controllers\\PreviewController->blankEntity()
#14 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): App\\Http\\Controllers\\PreviewController->show()
#15 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(45): Illuminate\\Routing\\Controller->callAction()
#16 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Route.php(254): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#17 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Route.php(197): Illuminate\\Routing\\Route->runController()
#18 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Router.php(693): Illuminate\\Routing\\Route->run()
#19 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}()
#20 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/app/Http/Middleware/Locale.php(34): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#21 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\\Http\\Middleware\\Locale->handle()
#22 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/app/Http/Middleware/TokenAuth.php(83): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#23 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\\Http\\Middleware\\TokenAuth->handle()
#24 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/app/Http/Middleware/SetDb.php(40): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#25 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\\Http\\Middleware\\SetDb->handle()
#26 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/app/Http/Middleware/Cors.php(34): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#27 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\\Http\\Middleware\\Cors->handle()
#28 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/app/Http/Middleware/QueryLogging.php(38): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#29 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\\Http\\Middleware\\QueryLogging->handle()
#30 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(41): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#31 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#32 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(127): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#33 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(63): Illuminate\\Routing\\Middleware\\ThrottleRequests->handleRequest()
#34 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Routing\\Middleware\\ThrottleRequests->handle()
#35 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#36 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Router.php(695): Illuminate\\Pipeline\\Pipeline->then()
#37 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Router.php(670): Illuminate\\Routing\\Router->runRouteWithinStack()
#38 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Router.php(636): Illuminate\\Routing\\Router->runRoute()
#39 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Router.php(625): Illuminate\\Routing\\Router->dispatchToRoute()
#40 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(166): Illuminate\\Routing\\Router->dispatch()
#41 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}()
#42 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/app/Http/Middleware/Cors.php(34): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#43 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\\Http\\Middleware\\Cors->handle()
#44 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/fideloper/proxy/src/TrustProxies.php(57): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#45 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fideloper\\Proxy\\TrustProxies->handle()
#46 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#47 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#48 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#49 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#50 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#51 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle()
#52 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(86): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#53 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#54 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Tracing/Middleware.php(46): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#55 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Sentry\\Laravel\\Tracing\\Middleware->handle()
#56 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#57 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(141): Illuminate\\Pipeline\\Pipeline->then()
#58 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(110): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#59 /var/www/vhosts/domain.co.uk/accounts.domain.co.uk/invoiceninja/public/index.php(57): Illuminate\\Foundation\\Http\\Kernel->handle()
#60 {main}
"}

Hey there, this looks like you’re missing some dependencies:

I tried installing v5 using using two different method:

  1. First it used the git clone method and then used composer to install all dependencies.

2 . The second method I used was by uploading the zip file (this should have included all required resources)

When doing the setup at the beginning it makes you test the PDF and a PDF loads in a separate window both times.

Not sure what else I have to install to get this to work. This is on a Plesk v18 installation on Ubuntu v18

I can confirm I was able to fix this by installing the dependencies listed in the link above

Great! Happy you got it working :tada: