Update not working

I have a message saying v5.152 is available.

When I click update I’m asked for my password and then when I click to continue it says “update completed”. However it remains on v5.150 and doesn’t actually update. There are no errors.



@david any ideas to debug?


Can you advise your system configuration please, ie. Shared Hosting / Server etc.

I think I know the issue with this one.

I think the file permissions check is failing silently in the update library itself.

If you can delete the .git folder and then retry the update, i am pretty sure this will fix the issue.

I didnt see a .git folder but I do have a .github folder, I deleted that and tried the update again but still the same issue. I’m not seeing any error in the server logs.

I’m on a managed Hetzner server, so I suppose it would be technically shared hosting, but it would be a lot less restricted than typical shared hosting - I have no issues running a variety of different applications/software.

Invoice Ninja is being hosted on a sub-domain if that makes any difference.

Also I logged another issue where accept quote terms and require quote signature functionality isnt working, again there are no errors, I’m not sure if this is related and being caused by the same problem.

They are separate and distinct issues here.

I’m not sure why the update is failing. I think I’ll need to work with the package maintainer to improve the error reporting.


I do experiment the same issue.

No .git folder, only .github
I’m on Siteground, under a subdomain

Thanks for your support


I have same issues that update from v5.1.46 (clean installation) to v5.1.56.

production.ERROR: Cannot update system because files are not writable! {“userId”:1,“exception”:"[object] (App\Exceptions\FilePermissionsFailure(code: 0): Cannot update system because files are not writable! at /home/vwww/1_invoiceninja-01/app/Http/Controllers/SelfUpdateController.php:66)

I tried it with .git folder deleted, but still did not update.
CentOS 8/Apache 2.4.37/php v7.4.16
All ninja folders have apache:apache ownership
All permissions are remain unchanged from fresh installation.

BTW, I am working on this to make this great system work in Japanese Language and business practice here in Japan!

Thank you very much for all your support.

In the next release, i’ll explicity throw the file that is not writable back.

Thank you so much.

I also tested with all files and folders changed to 777 permission and update did not work.

@hillel @david
Im on Softcalous and i tried to update, i get this error

Command 'git update-index -q --refresh ’ failed (exit-code 128).

Changes to the codebase may be blocking the update, you can run these commands to discard the changes:

git fetch
git reset --hard origin/v5-stable
composer install --no-dev -o
php artisan migrate


If you use Softaculous then you need to use their updater, the Git based updater won’t work.

Was able to update using the releases.

Can you provide more detail? I’ve just started experimenting with v5 and thought the newest files needed to be uploaded (like v4.x)? The old way of using /update afterwards doesn’t seem to apply though.

@evolvehosting If there are changes in dependencies and the archive you are uploading from doesn’t contain the vendor folder then you may need to run composer update.

The zip from invoiceninja.org should contain the vendor folder.

I was using the zip file from Github and uploading it to the server (using cPanel). So there is no /update to run within the browser like v4.x? I’ve been trying to read through the documentation but I don’t see anything about the upgrade process.
Thanks for your help so far!

The zip from github doesn’t include the vendor folder, so if there have been changes in dependencies then you would need to run composer update.
That was the same in V4.

The /update URL that v4 used to finish an upgrade applied things like database schema updates and that’s also the same in v5 and can be run manually, but I think you need to set a secret in your .env file which would also require you to run php artisan optimize.


What works for me is: Change the ownership of the /yourINdirectory/storage/logs directory to ‘www-data’ or whatever your OS is using to run web services. For some reason the IN app sets files in that directory to ‘root’ leading to permissions problems when upgrading from the UI. Maybe a bug?