Cannot update app TooManyRedirectsException

Cannot update apps today,

NC version:27.1.3/4
system:rocky Linux 9
php: php-8.2-remi

Error log:

[no app in context] Error: GuzzleHttp\Exception\TooManyRedirectsException: Will not follow more than 5 redirects at <<closure>>

 0. /var/www/html/nextcloud/3rdparty/guzzlehttp/guzzle/src/RedirectMiddleware.php line 88
    GuzzleHttp\RedirectMiddleware->guardMax()
 1. /var/www/html/nextcloud/3rdparty/guzzlehttp/guzzle/src/RedirectMiddleware.php line 73
    GuzzleHttp\RedirectMiddleware->checkRedirect()
 2. /var/www/html/nextcloud/3rdparty/guzzlehttp/promises/src/FulfilledPromise.php line 41
    GuzzleHttp\RedirectMiddleware->GuzzleHttp\{closure}("*** sensitive parameters replaced ***")
 3. /var/www/html/nextcloud/3rdparty/guzzlehttp/promises/src/TaskQueue.php line 48
    GuzzleHttp\Promise\FulfilledPromise::GuzzleHttp\Promise\{closure}("*** sensitive parameters replaced ***")
 4. /var/www/html/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php line 248
    GuzzleHttp\Promise\TaskQueue->run()
 5. /var/www/html/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php line 224
    GuzzleHttp\Promise\Promise->invokeWaitFn()
 6. /var/www/html/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php line 269
    GuzzleHttp\Promise\Promise->waitIfPending()
 7. /var/www/html/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php line 226
    GuzzleHttp\Promise\Promise->invokeWaitList()
 8. /var/www/html/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php line 62
    GuzzleHttp\Promise\Promise->waitIfPending()
 9. /var/www/html/nextcloud/3rdparty/guzzlehttp/guzzle/src/Client.php line 187
    GuzzleHttp\Promise\Promise->wait()
10. /var/www/html/nextcloud/lib/private/Http/Client/Client.php line 230
    GuzzleHttp\Client->request()
11. /var/www/html/nextcloud/lib/private/Installer.php line 295
    OC\Http\Client\Client->get()
12. /var/www/html/nextcloud/lib/private/Installer.php line 193
    OC\Installer->downloadApp()
13. /var/www/html/nextcloud/apps/settings/lib/Controller/AppSettingsController.php line 535
    OC\Installer->updateAppstoreApp("*** sensitive parameters replaced ***")
14. /var/www/html/nextcloud/lib/private/AppFramework/Http/Dispatcher.php line 230
    OCA\Settings\Controller\AppSettingsController->updateApp("*** sensitive parameters replaced ***")
15. /var/www/html/nextcloud/lib/private/AppFramework/Http/Dispatcher.php line 137
    OC\AppFramework\Http\Dispatcher->executeController()
16. /var/www/html/nextcloud/lib/private/AppFramework/App.php line 183
    OC\AppFramework\Http\Dispatcher->dispatch()
17. /var/www/html/nextcloud/lib/private/Route/Router.php line 315
    OC\AppFramework\App::main()
18. /var/www/html/nextcloud/lib/base.php line 1068
    OC\Route\Router->match()
19. /var/www/html/nextcloud/index.php line 36
    OC::handleRequest()

This issue seams due to the custom appstrore.
I am using local mirror appstore, which only sync the ‘apps.json’ and ‘categories.json’ files from ‘https://apps.nextcloud.com/api/v1’, as suggested in docs.nextcloud.com.

However, seems need more than those two files in nowa-versions?

The apps can be updated after swich back to ‘https://apps.nextcloud.com/api/v1’.
However, I don’t know what is the needed files for a mirror.