Troubleshooting auto-update failure

Greetings, programs!

I upgraded from v21.x to v24.x some while ago, and since then my News app is no longer updating. I’m currently running Nextcloud v26.0.4 and News v21.2.0. Use system cron option is enabled and the News settings tell me the last job ran “26 minutes ago” (set to run every 30 minutes), but the most recent article on my feed is from April.

/etc/cron.d/nextcloud has this line:

*/5  *  *  *  * nextcloud /usr/bin/php8.1 --define apc.enable_cli=1 -f /var/www/nextcloud/cron.php

Seems like the next step is to review that cron.php file. Unfortunately I’m not super well-versed in PHP – what am I looking for? I see calls to a logger, where is that logged? /var/log/nextcloud is empty.

What’s my next step? Any help is appreciated.

See Feeds not updated

404 not found

Hi there,

the documentation was changed a bit the content is now here: Troubleshooting - Nextcloud News App

Regarding the logs, I’m not sure for your case but maybe in

/var/www/nextcloud/data/nextcloud.log

Otherwise you have to check where the file is with your setup.
You can see the logs as an Admin in the Webinterface though, which is much easier than reading the logs produced by nextclouds logging system.

Regarding your feeds not updating, it is probably a side effect by how the code works, it will change in the next release and should help with your feeds.

Thanks for the tip on the admin logs, I found this right away:

mkdir(): Permission denied at /var/www/nextcloud/apps/news/lib/AppInfo/Application.php#98

Repeats every five minutes. Here’s a code snippet that shows the context around line 98:

       $context->registerParameter('exploreDir', __DIR__ . '/../Explore/feeds');                                                                          
                                                                                                                                                            
         $context->registerService(HTMLPurifier::class, function (ContainerInterface $c): HTMLPurifier {                                                    
             $directory = $c->get(ITempManager::class)->getTempBaseDir() . '/news/cache/purifier';                                                          
                                                                                                                                                            
             if (!is_dir($directory)) {                                                                                                                     
                 mkdir($directory, 0770, true);                                                                                                             
             }                                                                                                                                              

So, first guess is permissions mismatch, but Nextcloud is running as nextcloud:www-data and everything under the /var/www/nextcloud dir appears to be correctly permissioned, so I’m not sure why this is failing.

Removing the /tmp/news dir has apparently resolved that error. Still waiting to see if the feeds get updated correctly.

So, here’s the post-mortem:

Nextcloud News stores a lot of material in /tmp – mostly files associated with the various feeds. Somehow during my upgrade from 21.x to 25, all of those files got their permissions reset to a different user and group. As a result, NC could no longer write to or remove them, apparently a necessary component to updating the feeds. I removed all of the files owned by the different user and group and now Nextcloud News is working again.

A suggestion – maybe /tmp is not the best place to locate those files. A cache or work dir located somewhere subordinate to the Nextcloud data dir might be a better idea?

We use the /tmp directory in your case because that is what the server provides as temporary directory.
The location can be changed in the nextcloud configuration.

In the latest version we use the unique instance ID.

Path now looks like this:

/tmp/news-oc2iqvwq927d/cache/