View Invoice as a "PDF" hanging

I thought this was just my installation but when i visited the demo.invoiceninja.com to view an invoice there i got the same result. The loading icon just keeps spinning and nothing happens. Is there something i’m missing here??

Are there any errors in the logs in storage/logs

I sent you a picture of “demo.invoiceninja.com” I can’t see your logs. But its doing the same on my site as it is on yours!!

Can you see this?:

If you’re able to send details from your error logs it would be helpful.

The demo server is a strange setup as we constantly refresh the database, it’s unclear if it’s the same problem.

Error Output:

================
Error: Failed to launch chrome!
[0723/015132.111360:FATAL:zygote_host_impl_linux.cc(116)] No usable sandbox! Update your kernel or see https://chromium.googlesource.com/chromium/src/+/master/docs/linux_suid_sandbox_development.md for more information on developing with the SUID sandbox. If you want to live dangerously and need an immediate workaround, you can try using --no-sandbox.
#0 0x564749872879 base::debug::CollectStackTrace()
#1 0x5647497cfc63 base::debug::StackTrace::StackTrace()
#2 0x5647497e4013 logging::LogMessage::~LogMessage()
#3 0x56474af7e95e service_manager::ZygoteHostImpl::Init()
#4 0x564749413adc content::ContentMainRunnerImpl::Initialize()
#5 0x56474945f72c service_manager::Main()
#6 0x5647494120b1 content::ContentMain()
#7 0x56474945e99d headless::(anonymous namespace)::RunContentMain()
#8 0x56474945e70b headless::HeadlessShellMain()
#9 0x5647471ef1b8 ChromeMain
#10 0x2ab110c76555 __libc_start_main
#11 0x5647471ef02a _start

Received signal 6
#0 0x564749872879 base::debug::CollectStackTrace()
#1 0x5647497cfc63 base::debug::StackTrace::StackTrace()
#2 0x564749872401 base::debug::(anonymous namespace)::StackDumpSignalHandler()
#3 0x2ab10ac88630
#4 0x2ab110c8a387 __GI_raise
#5 0x2ab110c8ba78 __GI_abort
#6 0x564749871265 base::debug::BreakDebugger()
#7 0x5647497e4461 logging::LogMessage::~LogMessage()
#8 0x56474af7e95e service_manager::ZygoteHostImpl::Init()
#9 0x564749413adc content::ContentMainRunnerImpl::Initialize()
#10 0x56474945f72c service_manager::Main()
#11 0x5647494120b1 content::ContentMain()
#12 0x56474945e99d headless::(anonymous namespace)::RunContentMain()
#13 0x56474945e70b headless::HeadlessShellMain()
#14 0x5647471ef1b8 ChromeMain
#15 0x2ab110c76555 __libc_start_main
#16 0x5647471ef02a _start
r8: 0000000000000000 r9: 0000000000000000 r10: 0000000000000008 r11: 0000000000000202
r12: 00007ffc1eb028c8 r13: 00007ffc1eb018a8 r14: 00007ffc1eb018a8 r15: 00007ffc1eb018c0
di: 0000000000000451 si: 0000000000000451 bp: 00007ffc1eb01850 bx: 00002ab11101c868
dx: 0000000000000006 ax: 0000000000000000 cx: ffffffffffffffff sp: 00007ffc1eb01718
ip: 00002ab110c8a387 efl: 0000000000000202 cgf: 0000000000000033 erf: 0000000000000000
trp: 0000000000000000 msk: 0000000000000000 cr2: 0000000000000000
[end of stack trace]
Calling _exit(1). Core file will not be generated.

Did you see the responses here:

Yes, did you see the last post by Zeeshan?

@greaseduck

Did you try Zeeshans solution (assuming you are using CentOS) ? I don’t have a CentOS environment to see whether this does work.

Zeeshan did not have a solution, he asked a question that he’s still waiting a reply to!

Puppeteer has lots of issues with SELINUX. You could set it to permissive and allow puppeteer to generate its requests after doing a few things you can search and add those policies and re-enforce.

I have updated instructions here that should guide you through setup without those errors.

One of the worthwhile comments to note are chrom(e/ium)s dependencies:

sudo yum install libXcomposite libXcursor libXdamage libXext libXi libXtst libmng libXScrnSaver libXrandr libXv alsa-lib cairo pango atk at-spi2-atk gtk3

Do that, and set SELINUX permissive and you should be able to run it.

I also have problems with the PDF generation, but it seems its not generating the PDF at all. The Test.PDF at Setup worked and the logs just show the file doesn’t exist, and I couldn’t find it on the server either.

Setup was Centos8 per your Instructions but disabled SELinux for now. I first used PHP8 and did a 2nd fresh setup with PHP7.4, as I thought that might have been it. But it wasn’t.

[2021-02-22 00:27:26] production.INFO: product1
[2021-02-22 00:27:26] production.INFO: product2
[2021-02-22 00:27:26] production.INFO: product3
[2021-02-22 00:27:26] production.ERROR: The file “/usr/share/nginx/invoiceninja/public/storage/nC2bxOaOIj0asHwUwbfCN9IlBm9NKFS2OTMnjOt3nw7zQNASJyDCfJeVI3rWs5Zm/XF18PvW1jXg57hlU7IzkW6TafVUiHz9wDzBLVyIY/invoices/0001.pdf” does not exist {“exception”:"[object] (Symfony\Component\HttpFoundation\File\Exception\FileNotFoundException(code: 0): The file “/usr/share/nginx/invoiceninja/public/storage/nC2bxOaOIj0asHwUwbfCN9IlBm9NKFS2OTMnjOt3nw7zQNASJyDCfJeVI3rWs5Zm/XF18PvW1jXg57hlU7IzkW6TafVUiHz9wDzBLVyIY/invoices/0001.pdf” does not exist at /usr/share/nginx/invoiceninja/vendor/symfony/http-foundation/File/File.php:36)
[stacktrace]
#0 /usr/share/nginx/invoiceninja/vendor/symfony/http-foundation/BinaryFileResponse.php(93): Symfony\Component\HttpFoundation\File\File->__construct()
#1 /usr/share/nginx/invoiceninja/vendor/symfony/http-foundation/BinaryFileResponse.php(51): Symfony\Component\HttpFoundation\BinaryFileResponse->setFile()
#2 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/ResponseFactory.php(165): Symfony\Component\HttpFoundation\BinaryFileResponse->__construct()
#3 /usr/share/nginx/invoiceninja/app/Http/Controllers/InvoiceController.php(795): Illuminate\Routing\ResponseFactory->download()
#4 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): App\Http\Controllers\InvoiceController->downloadPdf()
#5 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(45): Illuminate\Routing\Controller->callAction()
#6 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Route.php(254): Illuminate\Routing\ControllerDispatcher->dispatch()
#7 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Route.php(197): Illuminate\Routing\Route->runController()
#8 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Router.php(693): Illuminate\Routing\Route->run()
#9 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\Routing\Router->Illuminate\Routing\{closure}()
#10 /usr/share/nginx/invoiceninja/app/Http/Middleware/SetInviteDb.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#11 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\Http\Middleware\SetInviteDb->handle()
#12 /usr/share/nginx/invoiceninja/app/Http/Middleware/QueryLogging.php(38): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#13 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\Http\Middleware\QueryLogging->handle()
#14 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(41): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#15 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Routing\Middleware\SubstituteBindings->handle()
#16 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(78): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#17 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\VerifyCsrfToken->handle()
#18 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#19 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\View\Middleware\ShareErrorsFromSession->handle()
#20 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(121): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#21 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(63): Illuminate\Session\Middleware\StartSession->handleStatefulRequest()
#22 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Session\Middleware\StartSession->handle()
#23 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#24 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle()
#25 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#26 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Cookie\Middleware\EncryptCookies->handle()
#27 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#28 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Router.php(695): Illuminate\Pipeline\Pipeline->then()
#29 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Router.php(670): Illuminate\Routing\Router->runRouteWithinStack()
#30 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Router.php(636): Illuminate\Routing\Router->runRoute()
#31 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Router.php(625): Illuminate\Routing\Router->dispatchToRoute()
#32 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(166): Illuminate\Routing\Router->dispatch()
#33 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}()
#34 /usr/share/nginx/invoiceninja/app/Http/Middleware/Cors.php(34): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#35 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\Http\Middleware\Cors->handle()
#36 /usr/share/nginx/invoiceninja/vendor/fideloper/proxy/src/TrustProxies.php(57): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#37 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fideloper\Proxy\TrustProxies->handle()
#38 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#39 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle()
#40 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#41 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle()
#42 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#43 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\ValidatePostSize->handle()
#44 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(86): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#45 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance->handle()
#46 /usr/share/nginx/invoiceninja/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Tracing/Middleware.php(46): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#47 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Sentry\Laravel\Tracing\Middleware->handle()
#48 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#49 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(141): Illuminate\Pipeline\Pipeline->then()
#50 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(110): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter()
#51 /usr/share/nginx/invoiceninja/public/index.php(57): Illuminate\Foundation\Http\Kernel->handle()
#52 {main}
"}