Client side able to view but can't pay. Payment page doensn't display anything

Version ie <v5.12.5-C174>

Environment

Checklist

  • Can you replicate the issue on our v5 demo site https://demo.invoiceninja.com or Invoice Ninja?
  • Have you searched existing issues? Yep. Not seeing anything.
  • Have you inspected the logs in storage/logs/laravel.log for any errors?
    Last error: [2025-07-21 22:20:33] production.INFO: Broadcasting [App\Events\Invoice\InvoiceWasPaid] on channels [private-company-iGQ82flCQ7GMoXSNuu1oCE2eTpE41LDA] with payload:

Describe the bug

I'm able to generate an invoice and view it in the client portal (url is *mywebsite.com/invoiceninja/client/invoices/payment*). However, it automatically opens a payment page that errors out with the message " Nothing Found: It seems we can’t find what you’re looking for. Perhaps searching can help." This also happens when I click the "Next" button by Payment Amount or if I try and download a PDF under the Invoices window.

Steps To Reproduce

Expected Behavior

At this point, I should be able to make a payment through PayPal or Stripe, both of which have been set up and previously worked.

Additional context

Screenshots

Logs

For the entire error log…

A shorter, pasted version for immediate viewing pleasure.
[2025-02-28 05:46:01] production.ERROR: Unable to generate the raw PDF {“userId”:1,“exception”:"[object] (App\Exceptions\FilePermissionsFailure(code: 0): Unable to generate the raw PDF at /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/app/Jobs/Entity/CreateRawPdf.php:208)
[stacktrace]
#0 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/app/Mail/Engine/PaymentEmailEngine.php(95): App\Jobs\Entity\CreateRawPdf->handle()
#1 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Collections/Traits/EnumeratesValues.php(235): App\Mail\Engine\PaymentEmailEngine->App\Mail\Engine\{closure}()
#2 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/app/Mail/Engine/PaymentEmailEngine.php(94): Illuminate\Support\Collection->each()
#3 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/app/Jobs/Payment/EmailPayment.php(82): App\Mail\Engine\PaymentEmailEngine->build()
#4 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): App\Jobs\Payment\EmailPayment->handle()
#5 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/Util.php(41): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()
#6 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(93): Illuminate\Container\Util::unwrapIfClosure()
#7 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\Container\BoundMethod::callBoundMethod()
#8 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Container/Container.php(661): Illuminate\Container\BoundMethod::call()
#9 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(128): Illuminate\Container\Container->call()
#10 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\Bus\Dispatcher->Illuminate\Bus\{closure}()
#11 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#12 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(132): Illuminate\Pipeline\Pipeline->then()
#13 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(123): Illuminate\Bus\Dispatcher->dispatchNow()
#14 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\Queue\CallQueuedHandler->Illuminate\Queue\{closure}()
#15 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#16 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(122): Illuminate\Pipeline\Pipeline->then()
#17 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(70): Illuminate\Queue\CallQueuedHandler->dispatchThroughMiddleware()
#18 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Queue/Jobs/Job.php(98): Illuminate\Queue\CallQueuedHandler->call()
#19 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Queue/SyncQueue.php(43): Illuminate\Queue\Jobs\Job->fire()
#20 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(253): Illuminate\Queue\SyncQueue->push()
#21 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(229): Illuminate\Bus\Dispatcher->pushCommandToQueue()
#22 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(77): Illuminate\Bus\Dispatcher->dispatchToQueue()
#23 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Bus/PendingDispatch.php(193): Illuminate\Bus\Dispatcher->dispatch()
#24 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Bus/Dispatchable.php(19): Illuminate\Foundation\Bus\PendingDispatch->__destruct()
#25 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/app/Services/Payment/SendEmail.php(39): App\Jobs\Payment\EmailPayment::dispatch()
#26 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/app/Services/Payment/PaymentService.php(55): App\Services\Payment\SendEmail->run()
#27 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/app/Services/Invoice/MarkPaid.php(93): App\Services\Payment\PaymentService->sendEmail()
#28 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/app/Services/Invoice/InvoiceService.php(47): App\Services\Invoice\MarkPaid->run()
#29 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/app/Http/Controllers/InvoiceController.php(698): App\Services\Invoice\InvoiceService->markPaid()
#30 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/app/Http/Controllers/InvoiceController.php(583): App\Http\Controllers\InvoiceController->performAction()
#31 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Collections/Traits/EnumeratesValues.php(235): App\Http\Controllers\InvoiceController->App\Http\Controllers\{closure}()
#32 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/app/Http/Controllers/InvoiceController.php(581): Illuminate\Support\Collection->each()
#33 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): App\Http\Controllers\InvoiceController->bulk()
#34 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(43): Illuminate\Routing\Controller->callAction()
#35 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Route.php(259): Illuminate\Routing\ControllerDispatcher->dispatch()
#36 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Route.php(205): Illuminate\Routing\Route->runController()
#37 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Router.php(798): Illuminate\Routing\Route->run()
#38 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\Routing\Router->Illuminate\Routing\{closure}()
#39 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(89): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#40 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(54): Illuminate\Routing\Middleware\ThrottleRequests->handleRequestUsingNamedLimiter()
#41 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Routing\Middleware\ThrottleRequests->handle()
#42 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/app/Http/Middleware/QueryLogging.php(40): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#43 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): App\Http\Middleware\QueryLogging->handle()
#44 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#45 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Routing\Middleware\SubstituteBindings->handle()
#46 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/app/Http/Middleware/Locale.php(44): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#47 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): App\Http\Middleware\Locale->handle()
#48 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/app/Http/Middleware/TokenAuth.php(101): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#49 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): App\Http\Middleware\TokenAuth->handle()
#50 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/app/Http/Middleware/SetDb.php(40): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#51 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): App\Http\Middleware\SetDb->handle()
#52 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#53 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Router.php(797): Illuminate\Pipeline\Pipeline->then()
#54 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Router.php(776): Illuminate\Routing\Router->runRouteWithinStack()
#55 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Router.php(740): Illuminate\Routing\Router->runRoute()
#56 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Router.php(729): Illuminate\Routing\Router->dispatchToRoute()
#57 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(190): Illuminate\Routing\Router->dispatch()
#58 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}()
#59 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/livewire/livewire/src/DisableBrowserCache.php(19): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#60 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Livewire\DisableBrowserCache->handle()
#61 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/app/Http/Middleware/Cors.php(24): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#62 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): App\Http\Middleware\Cors->handle()
#63 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(39): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#64 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Http\Middleware\TrustProxies->handle()
#65 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#66 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle()
#67 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull->handle()
#68 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#69 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(40): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle()
#70 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Foundation\Http\Middleware\TrimStrings->handle()
#71 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#72 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Foundation\Http\Middleware\ValidatePostSize->handle()
#73 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(86): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#74 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance->handle()
#75 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#76 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(165): Illuminate\Pipeline\Pipeline->then()
#77 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(134): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter()
#78 /home/u124509588/domains/mywebsite.com/public_html/invoiceninja/public/index.php(59): Illuminate\Foundation\Http\Kernel->handle()
#79 {main}
"}
[2025-07-18 06:03:18] production.INFO: running post update
[2025-07-18 06:03:18] production.INFO: finished migrating
[2025-07-18 06:03:18] production.INFO: cleared config
[2025-07-18 06:03:18] production.INFO: view cleared
[2025-07-18 06:03:18] production.INFO: queue restarted
[2025-07-18 06:03:19] production.INFO: Sent for version check
[2025-07-21 21:23:22] production.INFO: Broadcasting [App\Events\Invoice\InvoiceWasViewed] on channels [private-company-iGQ82flCQ7GMoXSNuu1oCE2eTpE41LDA] with payload:
{
“id”: “EKQe1xmdJY”,
“user_id”: “VolejRejNm”,
“project_id”: “”,
“assigned_user_id”: “”,
“amount”: 300,
“balance”: 300,
“client_id”: “qM7e5yBe2v”,
“vendor_id”: “”,
“status_id”: “2”,
“design_id”: “Wpmbk5ezJn”,
“recurring_id”: “”,
“created_at”: 1753129650,
“updated_at”: 1753133002,
“archived_at”: 0,
“is_deleted”: false,
“number”: “CPO003”,
“discount”: 0,
“po_number”: “”,
“date”: “2025-07-21”,
“last_sent_date”: “2025-07-21”,
“next_send_date”: “2025-08-05 03:00:00”,
“due_date”: “2025-07-28”,
“terms”: “Prompt payment via PayPal, credit card, check, Venmo (@Christian-Sebes), or Zelle ([email protected]) is greatly appreciated. \nPayment by credit card or PayPal is subject to a possible maximum 3.5% surcharge.”,
“public_notes”: “”,
“private_notes”: “”,
“uses_inclusive_taxes”: false,
“tax_name1”: “”,
“tax_rate1”: 0,
“tax_name2”: “”,
“tax_rate2”: 0,
“tax_name3”: “”,
“tax_rate3”: 0,
“total_taxes”: 0,
“is_amount_discount”: false,
“footer”: “Your business is greatly appreciated. All the best and continued success to you.”,
“partial”: 0,
“partial_due_date”: “”,
“custom_value1”: “”,
“custom_value2”: “”,
“custom_value3”: “”,
“custom_value4”: “”,
“has_tasks”: false,
“has_expenses”: false,
“custom_surcharge1”: 0,
“custom_surcharge2”: 0,
“custom_surcharge3”: 0,
“custom_surcharge4”: 0,
“exchange_rate”: 1,
“custom_surcharge_tax1”: false,
“custom_surcharge_tax2”: false,
“custom_surcharge_tax3”: false,
“custom_surcharge_tax4”: false,
“line_items”: [
{
“product_key”: “Photography”,
“notes”: “Interior photography of Airbnb Chic Barn Getaway”,
“cost”: 300,
“product_cost”: 500,
“quantity”: 1,
“tax_name1”: “”,
“tax_rate1”: 0,
“tax_name2”: “”,
“tax_rate2”: 0,
“tax_name3”: “”,
“tax_rate3”: 0,
“custom_value1”: “”,
“custom_value2”: “”,
“custom_value3”: “”,
“custom_value4”: “”,
“discount”: 0,
“tax_id”: “1”,
“type_id”: “1”,
“task_id”: “”,
“expense_id”: “”,
“createdAt”: 1753129183984137,
“net_cost”: 0,
“is_amount_discount”: false,
“sort_id”: “0”,
“line_total”: 300,
“gross_line_total”: 300,
“tax_amount”: 0,
“date”: “”,
“unit_code”: “C62”
}
],
“entity_type”: “invoice”,
“reminder1_sent”: “”,
“reminder2_sent”: “”,
“reminder3_sent”: “”,
“reminder_last_sent”: “”,
“paid_to_date”: 0,
“subscription_id”: “”,
“auto_bill_enabled”: true,
“tax_info”: {},
“e_invoice”: {},
“backup”: {},
“location_id”: “”,
“invitations”: [
{
“id”: “YQdJ6DgdOG”,
“client_contact_id”: “Wpmbk55ezJ”,
“key”: “jEFeXsIAccd3F7ocDDZuW8DSl47npiMj”,
“link”: “https://mywebsite.com/invoiceninja/public/client/invoice/jEFeXsIAccd3F7ocDDZuW8DSl47npiMj”,
“sent_date”: “2025-07-21 20:29:55”,
“viewed_date”: “2025-07-21 21:23:22”,
“opened_date”: “”,
“updated_at”: 1753133002,
“archived_at”: 0,
“created_at”: 1753129650,
“email_status”: “”,
“email_error”: “”,
“message_id”: “[email protected]
}
],
“documents”: ,
“client”: {
“id”: “qM7e5yBe2v”,
“user_id”: “VolejRejNm”,
“assigned_user_id”: “VolejRejNm”,
“name”: “Tom Capo”,
“website”: “”,
“private_notes”: “Owner of Airbnb Rental Properties”,
“balance”: 300,
“group_settings_id”: “”,
“paid_to_date”: 1350,
“payment_balance”: 1350,
“credit_balance”: 0,
“last_login”: 1753133002,
“size_id”: “1”,
“public_notes”: “”,
“client_hash”: “BWUv0utDdq13nChpnC0Iu37WwmmEesgkSieZOyPj”,
“address1”: “238 US-206”,
“address2”: “”,
“phone”: “(862) 295-2323”,
“city”: “Byram”,
“state”: “New Jersey”,
“postal_code”: “07821”,
“country_id”: “840”,
“industry_id”: “25”,
“custom_value1”: “”,
“custom_value2”: “”,
“custom_value3”: “”,
“custom_value4”: “”,
“shipping_address1”: “238 US-206”,
“shipping_address2”: “”,
“shipping_city”: “Byram”,
“shipping_state”: “New Jersey”,
“shipping_postal_code”: “07821”,
“shipping_country_id”: “840”,
“settings”: {
“language_id”: “1”,
“currency_id”: “1”,
“payment_terms”: “0”,
“valid_until”: “30”,
“entity”: “App\Models\Client”,
“industry_id”: “”,
“size_id”: “”
},
“is_deleted”: false,
“vat_number”: “”,
“id_number”: “CPO”,
“updated_at”: 1753133002,
“archived_at”: 0,
“created_at”: 1746729965,
“display_name”: “Tom Capo”,
“number”: “077”,
“has_valid_vat_number”: false,
“is_tax_exempt”: false,
“routing_id”: “”,
“tax_info”: {},
“classification”: “”,
“e_invoice”: {},
“contacts”: [
{
“id”: “Wpmbk55ezJ”,
“first_name”: “Tom”,
“last_name”: “Capo”,
“email”: “[email protected]”,
“created_at”: 1746729965,
“updated_at”: 1753133002,
“archived_at”: 0,
“is_primary”: true,
“is_locked”: false,
“phone”: “(862) 295-2323”,
“custom_value1”: “”,
“custom_value2”: “”,
“custom_value3”: “”,
“custom_value4”: “”,
“contact_key”: “1kmY0WrXZtcBED3AYLse0w7w5xpiMIDy”,
“send_email”: true,
“last_login”: 1753133002,
“password”: “”,
“link”: “https://mywebsite.com/invoiceninja/public/client/key_login/1kmY0WrXZtcBED3AYLse0w7w5xpiMIDy”
}
],
“documents”: ,
“gateway_tokens”: ,
“locations”:
},
“x-socket-id”: null,
“socket”: null
}
[2025-07-21 22:20:33] production.INFO: Broadcasting [App\Events\Invoice\InvoiceWasPaid] on channels [private-company-iGQ82flCQ7GMoXSNuu1oCE2eTpE41LDA] with payload:
{
“id”: “EKQe1xmdJY”,
“user_id”: “VolejRejNm”,
“project_id”: “”,
“assigned_user_id”: “”,
“amount”: 300,
“balance”: 0,
“client_id”: “qM7e5yBe2v”,
“vendor_id”: “”,
“status_id”: “4”,
“design_id”: “Wpmbk5ezJn”,
“recurring_id”: “”,
“created_at”: 1753129650,
“updated_at”: 1753136433,
“archived_at”: 0,
“is_deleted”: false,
“number”: “CPO003”,
“discount”: 0,
“po_number”: “”,
“date”: “2025-07-21”,
“last_sent_date”: “2025-07-21”,
“next_send_date”: “”,
“due_date”: “2025-07-28”,
“terms”: “Prompt payment via PayPal, credit card, check, Venmo (@Christian-Sebes), or Zelle ([email protected]) is greatly appreciated. \nPayment by credit card or PayPal is subject to a possible maximum 3.5% surcharge.”,
“public_notes”: “”,
“private_notes”: “”,
“uses_inclusive_taxes”: false,
“tax_name1”: “”,
“tax_rate1”: 0,
“tax_name2”: “”,
“tax_rate2”: 0,
“tax_name3”: “”,
“tax_rate3”: 0,
“total_taxes”: 0,
“is_amount_discount”: false,
“footer”: “Your business is greatly appreciated. All the best and continued success to you.”,
“partial”: 0,
“partial_due_date”: “”,
“custom_value1”: “”,
“custom_value2”: “”,
“custom_value3”: “”,
“custom_value4”: “”,
“has_tasks”: false,
“has_expenses”: false,
“custom_surcharge1”: 0,
“custom_surcharge2”: 0,
“custom_surcharge3”: 0,
“custom_surcharge4”: 0,
“exchange_rate”: 1,
“custom_surcharge_tax1”: false,
“custom_surcharge_tax2”: false,
“custom_surcharge_tax3”: false,
“custom_surcharge_tax4”: false,
“line_items”: [
{
“product_key”: “Photography”,
“notes”: “Interior photography of Airbnb Chic Barn Getaway”,
“cost”: 300,
“product_cost”: 500,
“quantity”: 1,
“tax_name1”: “”,
“tax_rate1”: 0,
“tax_name2”: “”,
“tax_rate2”: 0,
“tax_name3”: “”,
“tax_rate3”: 0,
“custom_value1”: “”,
“custom_value2”: “”,
“custom_value3”: “”,
“custom_value4”: “”,
“discount”: 0,
“tax_id”: “1”,
“type_id”: “1”,
“task_id”: “”,
“expense_id”: “”,
“createdAt”: 1753129183984137,
“net_cost”: 0,
“is_amount_discount”: false,
“sort_id”: “0”,
“line_total”: 300,
“gross_line_total”: 300,
“tax_amount”: 0,
“date”: “”,
“unit_code”: “C62”
}
],
“entity_type”: “invoice”,
“reminder1_sent”: “”,
“reminder2_sent”: “”,
“reminder3_sent”: “”,
“reminder_last_sent”: “”,
“paid_to_date”: 300,
“subscription_id”: “”,
“auto_bill_enabled”: true,
“tax_info”: {},
“e_invoice”: {},
“backup”: {},
“location_id”: “”,
“invitations”: [
{
“id”: “YQdJ6DgdOG”,
“client_contact_id”: “Wpmbk55ezJ”,
“key”: “jEFeXsIAccd3F7ocDDZuW8DSl47npiMj”,
“link”: “https://mywebsite.com/invoiceninja/public/client/invoice/jEFeXsIAccd3F7ocDDZuW8DSl47npiMj”,
“sent_date”: “2025-07-21 22:20:33”,
“viewed_date”: “2025-07-21 21:23:22”,
“opened_date”: “”,
“updated_at”: 1753136433,
“archived_at”: 0,
“created_at”: 1753129650,
“email_status”: “”,
“email_error”: “”,
“message_id”: “[email protected]
}
],
“documents”: ,
“client”: {
“id”: “qM7e5yBe2v”,
“user_id”: “VolejRejNm”,
“assigned_user_id”: “VolejRejNm”,
“name”: “Tom Capo”,
“website”: “”,
“private_notes”: “Owner of Airbnb Rental Properties”,
“balance”: 0,
“group_settings_id”: “”,
“paid_to_date”: 1650,
“payment_balance”: 0,
“credit_balance”: 0,
“last_login”: 1753133009,
“size_id”: “1”,
“public_notes”: “”,
“client_hash”: “BWUv0utDdq13nChpnC0Iu37WwmmEesgkSieZOyPj”,
“address1”: “238 US-206”,
“address2”: “”,
“phone”: “(862) 295-2323”,
“city”: “Byram”,
“state”: “New Jersey”,
“postal_code”: “07821”,
“country_id”: “840”,
“industry_id”: “25”,
“custom_value1”: “”,
“custom_value2”: “”,
“custom_value3”: “”,
“custom_value4”: “”,
“shipping_address1”: “238 US-206”,
“shipping_address2”: “”,
“shipping_city”: “Byram”,
“shipping_state”: “New Jersey”,
“shipping_postal_code”: “07821”,
“shipping_country_id”: “840”,
“settings”: {
“language_id”: “1”,
“currency_id”: “1”,
“payment_terms”: “0”,
“valid_until”: “30”,
“entity”: “App\Models\Client”,
“industry_id”: “”,
“size_id”: “”
},
“is_deleted”: false,
“vat_number”: “”,
“id_number”: “CPO”,
“updated_at”: 1753136433,
“archived_at”: 0,
“created_at”: 1746729965,
“display_name”: “Tom Capo”,
“number”: “077”,
“has_valid_vat_number”: false,
“is_tax_exempt”: false,
“routing_id”: “”,
“tax_info”: {},
“classification”: “”,
“e_invoice”: {},
“contacts”: [
{
“id”: “Wpmbk55ezJ”,
“first_name”: “Tom”,
“last_name”: “Capo”,
“email”: “[email protected]”,
“created_at”: 1746729965,
“updated_at”: 1753133009,
“archived_at”: 0,
“is_primary”: true,
“is_locked”: false,
“phone”: “(862) 295-2323”,
“custom_value1”: “”,
“custom_value2”: “”,
“custom_value3”: “”,
“custom_value4”: “”,
“contact_key”: “1kmY0WrXZtcBED3AYLse0w7w5xpiMIDy”,
“send_email”: true,
“last_login”: 1753133009,
“password”: “”,
“link”: “https://mywebsite.com/invoiceninja/public/client/key_login/1kmY0WrXZtcBED3AYLse0w7w5xpiMIDy”
}
],
“documents”: ,
“gateway_tokens”: ,
“locations”:
},
“x-socket-id”: null,
“socket”: null
}

Hi,

It’s likely a configuration issue, here’s what ChatGPT suggests in case it’s helpful.

Based on the logs and description you provided, here’s a breakdown of the main issues and how to fix them:


:wrench: Problem Summary

  1. Clients can view the invoice but cannot proceed with payment — they see a “Nothing Found” message on the payment page.
  2. Downloading PDFs fails — error in logs: Unable to generate the raw PDF.
  3. Payments not showing correctly despite gateways (PayPal/Stripe) previously working.
  4. URL path includes /public — may suggest a misconfigured server or incorrect APP_URL.

:white_check_mark: Likely Root Causes & Fixes

1. PDF Generation Failure

Error:

Unable to generate the raw PDF
App\Exceptions\FilePermissionsFailure

Cause: The PDF generator cannot write to the required folder, likely due to incorrect permissions or ownership.

Fix:

cd /home/u124509588/domains/mywebsite.com/public_html/invoiceninja
chmod -R 775 storage
chmod -R 775 bootstrap/cache
chown -R www-data:www-data storage bootstrap/cache  # or your web user (e.g. `nobody`, `apache`)

Then:

php artisan optimize
php artisan queue:restart

2. Incorrect APP_URL / URL Routing Issues

The fact that the payment link is showing .../public/... (e.g. invoiceninja/public/client/invoice/...) suggests either:

  • You’re using APP_URL=https://mywebsite.com/invoiceninja/public (which is incorrect)
  • Or the app is installed in a subfolder but not properly routed

Fix:

If using a subfolder install:

  • Set .env:

    APP_URL=https://mywebsite.com/invoiceninja
    
  • In public/.htaccess, update the RewriteBase:

    RewriteBase /invoiceninja
    

If using root domain with /public exposed:
It’s recommended to point the web server to the /public directory and set:

APP_URL=https://mywebsite.com

3. Blank Payment Page

If the invoice shows fine but payment page is blank or redirects incorrectly, this can result from:

  • Broken PDF generation (already discussed)
  • JavaScript errors (check browser console)
  • Misconfigured payment gateway settings

Action Steps:

  • Ensure all gateways (PayPal, Stripe) are still enabled, linked to a company, and have the correct credentials.
  • Verify that your client portal is using the correct URL (not including /public).
  • Check browser dev tools → Console + Network tabs for any failed JS or HTTP requests.

:repeat_button: Additional Recommendations

  1. Clear cache and views:

    php artisan optimize:clear
    php artisan view:clear
    php artisan config:clear
    
  2. Check payment gateway config:

    • Admin > Settings > Online Payments > Gateways
    • Ensure the gateways are active, tested, and assigned to the proper company
  3. Update Invoice Ninja (if <5.12.5):
    You’re on an older version. Update to the latest stable to rule out already-fixed bugs.


:white_check_mark: TL;DR Fix Checklist

  • Fix permissions for storage and bootstrap/cache
  • Correct APP_URL in .env (remove /public if needed)
  • Fix .htaccess RewriteBase if in subfolder
  • Clear app caches
  • Validate payment gateway setup
  • Check client portal URLs (should not include /public)
  • Check browser console for JS errors

Let me know your deployment method (Apache/Nginx + shared/VPS/etc.) if you want help adjusting .htaccess or virtual host settings.

I’m abandoning the old installation and have created a new one. New challenges that I will outline in a new post.