V4: Whitelabel not working anymore

Yes I know, this queue is marked “v5” but it seems that there is no v4 queue anymore.

Version ie <v5.10.30>

4.5.50

Environment <Docker/Shared Hosting/Zip/Other>

zip

Describe the bug

I can’t renew our white label license anymore.

Using the “Renew” link (https://host.domain.tld/white_label/purchase) results in an error 500.

[2026-06-04T08:22:52.996042+00:00] production.ERROR: ***ErrorException*** [0] : /var/www/html/invoiceninja/vendor/symfony/http-foundation/Response.php [Line 346] => Header may not contain more than a single header, new line detected  {"context":"PHP","user_id":1,"account_id":1,"user_name":"SYSTEM API","method":"GET","user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36","locale":"de","ip":"2a00:14b0:4200:8600::66","count":3,"is_console":"no","is_api":"no","db_server":"mysql","url":"white_label/purchase"} []
[2026-06-04T08:22:52.996286+00:00] production.ERROR: [stacktrace] 2026-06-04 08:22:52 Header may not contain more than a single header, new line detected: #0 [internal function]: Illuminate\Foundation\Bootstrap\HandleExceptions->handleError() #1 /var/www/html/invoiceninja/vendor/symfony/http-foundation/Response.php(346): header() #2 /var/www/html/invoiceninja/vendor/symfony/http-foundation/Response.php(380): Symfony\Component\HttpFoundation\Response->sendHeaders() #3 /var/www/html/invoiceninja/public/index.php(56): Symfony\Component\HttpFoundation\Response->send() #4 {main}    {"context":"PHP","user_id":1,"account_id":1,"user_name":"SYSTEM API","method":"GET","user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36","locale":"de","ip":"2a00:14b0:4200:8600::66","count":4,"is_console":"no","is_api":"no","db_server":"mysql","url":"white_label/purchase"} []

So, I went the manual way and bought a new license on Purchase

This worked fine (despite the fact that the license is now $40 instead of $30, but never mind) and I got my invoice and my license key. But, trying to enter that license key via https://host.domain.tld/settings/account_management results in an error 500 as well:

[2026-06-04T08:26:56.057350+00:00] production.ERROR: ***Symfony\Component\Debug\Exception\FatalThrowableError*** [0] : /var/www/html/invoiceninja/app/Http/Middleware/StartupCheck.php [Line 190] => Call to a member function modify() on bool  {"context":"PHP","user_id":1,"account_id":1,"user_name":"SYSTEM API","method":"GET","user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36","locale":"de","ip":"2a00:14b0:4200:8600::66","count":3,"is_console":"no","is_api":"no","db_server":"mysql","url":"dashboard"} []

I have no clue why this doesn’t work anymore, I’m quite sure that it was still working last year and there have not been any updates since then.

Also, I know that v4 is outdated but I’m still stuck on the migration problem no one was able to help me so far.

So, what happened here? Has Licensing for v4 been deleted because someone thought “no one is using that anymore anyway”?

Hi,

@david has the response from the /claim_license route changed? This is the relevant part of the v4 code, the app is failing to convert the response to a date.

may need to add this to the .env

NINJA_APP_URL=https://invoicing.co

1 Like

The default setting

define('NINJA_APP_URL', env('NINJA_APP_URL', 'https://app.invoiceninja.com'));

from Constants.php seems to redirect to the new URL, but the app seems to be unable to follow it.

Setting the override in .env seems to have fixed it.

1 Like

Glad to hear it, thanks for the update!

Thank you everyone! I was able to get my v4 white-labeled again thanks to this thread.

1 Like