Can't get snappdf to work - 500 error

v5 installed and running for a while now, with root access. But I was using PhantomJS and want to switch to snappdf. Getting a 500 error when trying to view/generate an invoice.

[previous exception] [object] (League\\Flysystem\\FileNotFoundException(code: 0): File not found at path: 9og9ratdqgqn6l9kww3ct7p4ejy9kw6k/YlVvdtALZPL6nbPetugvvIxcup8lDJqpWF6l59BJ/xercmejl863lo4dl9dh4tj3wd6qau6bb/invoices/2021-4387.pdf at /home/invoices/webapps/invoices/vendor/league/flysystem/src/Filesystem.php:390)

[stacktrace]
#0 /home/invoices/webapps/invoices/vendor/league/flysystem/src/Filesystem.php(180): League\Flysystem\Filesystem->assertPresent()
#1 /home/invoices/webapps/invoices/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php(152): League\Flysystem\Filesystem->read()
#2 /home/invoices/webapps/invoices/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemManager.php(398): Illuminate\Filesystem\FilesystemAdapter->get()
#3 /home/invoices/webapps/invoices/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(261): Illuminate\Filesystem\FilesystemManager->__call()
#4 /home/invoices/webapps/invoices/app/Http/Controllers/InvoiceController.php(811): Illuminate\Support\Facades\Facade::__callStatic()
#5 /home/invoices/webapps/invoices/vendor/symfony/http-foundation/StreamedResponse.php(109): App\Http\Controllers\InvoiceController->App\Http\Controllers\{closure}()
#6 /home/invoices/webapps/invoices/vendor/symfony/http-foundation/Response.php(394): Symfony\Component\HttpFoundation\StreamedResponse->sendContent()
#7 /home/invoices/webapps/invoices/public/index.php(61): Symfony\Component\HttpFoundation\Response->send()
#8 {main}
"}

.env settings:

NINJA_ENVIRONMENT=selfhost
PHANTOMJS_PDF_GENERATION=false
PHANTOMJS_KEY='....'
PHANTOMJS_SECRET=secret
NINJA_HOSTED_PDF=false

@david @ben any suggestions?

Drop to the command line and run

vendor/bin/snappdf convert --html="<html</html>" g.pdf

This will confirm snap is working by producing an empty pdf

looks like … chrome is not installed?

root@vps1:/home/invoices/webapps/invoices# ./vendor/bin/snappdf convert --html="<html" g.pdf

In Snappdf.php line 223:

The command “’/home/invoices/webapps/invoices/vendor/beganovich/snappdf/versions/902957-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-st
ages-before-draw’ ‘–no-first-run’ ‘–no-margins’ ‘–no-sandbox’ ‘–print-to-pdf-no-header’ ‘–hide-scrollbars’ ‘–ignore-certificate-errors’ ‘–print-to-pdf=/tmp/pdf_gfKKhT.pdf’ ‘/tmp/html_Wa4W
yH.html’” failed.

Exit Code: 127(Command not found)

Working directory: /home/invoices/webapps/invoices

Output:

Error Output:

/home/invoices/webapps/invoices/vendor/beganovich/snappdf/versions/902957-Linux_x64/chrome-linux/chrome: error while loading shared libraries: libnss3.so: cannot open shared object file: No such
file or directory

convert [–url URL] [–html HTML] [–binary BINARY] [–]

tried this, no luck:

root@vps1:/home/invoices/webapps/invoices# ./vendor/bin/snappdf download
Chromium binary already downloaded. Provide --force to download again.

@torch2k

Your missing some subsystem packages, have a look here for your flavour of linux:

Thank you. Packages are now installed, and I was able to generate a “g.pdf” as you requested. However, Invoice Ninja is still throwing a 500 error:

[2021-07-19 23:38:21] production.ERROR: File not found at path: p3j2r65rmb4vvxwy8vno5zbeguta92no/e13fAh56Y4MaINWN0oBDHA1yeLlG9DZrUX8zsfXl/db58xp37rge7xsfjbipdedc9zev4g6ev/invoices/R2021-2341.pdf {“exception”:"[object] (Illuminate\Contracts\Filesystem\FileNotFoundException(code: 0): File not found at path: p3j2r65rmb4vvxwy8vno5zbeguta92no/e13fAh56Y4MaINWN0oBDHA1yeLlG9DZrUX8zsfXl/db58xp37rge7xsfjbipdedc9zev4g6ev/invoices/R2021-2341.pdf at /home/invoices/webapps/invoices/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php:154)
[stacktrace]
#0 /home/invoices/webapps/invoices/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemManager.php(398): Illuminate\Filesystem\FilesystemAdapter->get()
#1 /home/invoices/webapps/invoices/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(261): Illuminate\Filesystem\FilesystemManager->__call()
#2 /home/invoices/webapps/invoices/app/Http/Controllers/InvoiceController.php(811): Illuminate\Support\Facades\Facade::__callStatic()
#3 /home/invoices/webapps/invoices/vendor/symfony/http-foundation/StreamedResponse.php(109): App\Http\Controllers\InvoiceController->App\Http\Controllers\{closure}()
#4 /home/invoices/webapps/invoices/vendor/symfony/http-foundation/Response.php(394): Symfony\Component\HttpFoundation\StreamedResponse->sendContent()
#5 /home/invoices/webapps/invoices/public/index.php(61): Symfony\Component\HttpFoundation\Response->send()
#6 {main}

[previous exception] [object] (League\Flysystem\FileNotFoundException(code: 0): File not found at path: p3j2r65rmb4vvxwy8vno5zbeguta92no/e13fAh56Y4MaINWN0oBDHA1yeLlG9DZrUX8zsfXl/db58xp37rge7xsfjbipdedc9zev4g6ev/invoices/R2021-2341.pdf at /home/invoices/webapps/invoices/vendor/league/flysystem/src/Filesystem.php:390)
[stacktrace]
#0 /home/invoices/webapps/invoices/vendor/league/flysystem/src/Filesystem.php(180): League\Flysystem\Filesystem->assertPresent()
#1 /home/invoices/webapps/invoices/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php(152): League\Flysystem\Filesystem->read()
#2 /home/invoices/webapps/invoices/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemManager.php(398): Illuminate\Filesystem\FilesystemAdapter->get()
#3 /home/invoices/webapps/invoices/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(261): Illuminate\Filesystem\FilesystemManager->__call()
#4 /home/invoices/webapps/invoices/app/Http/Controllers/InvoiceController.php(811): Illuminate\Support\Facades\Facade::__callStatic()
#5 /home/invoices/webapps/invoices/vendor/symfony/http-foundation/StreamedResponse.php(109): App\Http\Controllers\InvoiceController->App\Http\Controllers\{closure}()
#6 /home/invoices/webapps/invoices/vendor/symfony/http-foundation/Response.php(394): Symfony\Component\HttpFoundation\StreamedResponse->sendContent()
#7 /home/invoices/webapps/invoices/public/index.php(61): Symfony\Component\HttpFoundation\Response->send()
#8 {main}
"}

Could be a permissions error now, you may want to check the webuser can write to public/storage