ios icon indicating copy to clipboard operation
ios copied to clipboard

Upload cameraroll (~25000 photos), many 404 errors due to missing directory.

Open hurenkam opened this issue 5 months ago • 5 comments

Steps to reproduce

  1. Clear all photos from nextcloud server
  2. Reset nextcloud ios application
  3. Upload whole cameraroll using monthly subdirs

Expected behaviour

All photos & movies uploaded in the appropriate subdirs

Actual behaviour

Upload often seems to stop, then when looking in the log it seems that it receives a 404 error because the folder does not yet exist. When i create the folder using the web ui, sometimes uploading will continue.

Logs

Can add on request.

Reasoning or why should it be changed/implemented?

Because the current situation is not user friendly, and imho simply faulty.

Environment data

iOS version: e.g. iOS 18.5

Nextcloud iOS app version: 7.0.0.25

Server operating system: debian/bookworm (docker.io/nextcloud:31)

Web server: Apache (docker.io/nextcloud:31)

Database: Mariadb

PHP version:

Nextcloud version: [Nextcloud Hub 10] (31.0.5)

hurenkam avatar Jun 30 '25 20:06 hurenkam

Also happens to me AIO docker. Was happening on previous version AIO 11.4.0. That's because I upgraded to latest AIO but problem it's still here.

So I tried to create 08 (august) directory and 21 media are uploading.

Inside the logs I get this. 404 error appears repeated.

https://nextcloud.local:8080/api/docker/logs?id=nextcloud-aio-mastercontainer

2025-08-11T18:59:33.208623456Z Trying to fix docker.sock permissions internally...
2025-08-11T18:59:33.221318963Z Creating docker group internally with id 113
2025-08-11T18:59:34.105079083Z WARNING: No memory limit support
2025-08-11T18:59:34.105174693Z WARNING: No swap limit support
2025-08-11T18:59:34.178731309Z WARNING: No memory limit support
2025-08-11T18:59:34.178814401Z WARNING: No swap limit support
2025-08-11T18:59:34.608490617Z [0;92mInitial startup of Nextcloud All-in-One complete!
2025-08-11T18:59:34.608573283Z You should be able to open the Nextcloud AIO Interface now on port 8080 of this server!
2025-08-11T18:59:34.608592764Z E.g. https://internal.ip.of.this.server:8080
2025-08-11T18:59:34.608610116Z ⚠️ Important: do always use an ip-address if you access this port and not a domain as HSTS might block access to it later!
2025-08-11T18:59:34.608628857Z 
2025-08-11T18:59:34.608646282Z If your server has port 80 and 8443 open and you point a domain to your server, you can get a valid certificate automatically by opening the Nextcloud AIO Interface via:
2025-08-11T18:59:34.608664097Z https://your-domain-that-points-to-this-server.tld:8443[0m
2025-08-11T18:59:35.400380263Z /usr/lib/python3.12/site-packages/supervisor/options.py:13: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.
2025-08-11T18:59:35.400480429Z   import pkg_resources
2025-08-11T18:59:36.711916408Z [Mon Aug 11 18:59:36.710890 2025] [mpm_event:notice] [pid 143:tid 143] AH00489: Apache/2.4.65 (Unix) OpenSSL/3.5.1 configured -- resuming normal operations
2025-08-11T18:59:36.712051111Z [Mon Aug 11 18:59:36.711057 2025] [core:notice] [pid 143:tid 143] AH00094: Command line: 'httpd -D FOREGROUND'
2025-08-11T18:59:36.763671967Z {"level":"info","ts":1754938776.7629137,"msg":"maxprocs: Leaving GOMAXPROCS=4: CPU quota undefined"}
2025-08-11T18:59:36.764282759Z {"level":"info","ts":1754938776.763436,"msg":"GOMEMLIMIT is updated","package":"github.com/KimMachineGun/automemlimit/memlimit","GOMEMLIMIT":3627874713,"previous":9223372036854775807}
2025-08-11T18:59:36.764356296Z {"level":"info","ts":1754938776.7636716,"msg":"using config from file","file":"/Caddyfile"}
2025-08-11T18:59:36.765353511Z [11-Aug-2025 18:59:36] NOTICE: fpm is running, pid 148
2025-08-11T18:59:36.766135895Z [11-Aug-2025 18:59:36] NOTICE: ready to handle connections
2025-08-11T18:59:36.768370084Z {"level":"info","ts":1754938776.7677279,"msg":"adapted config to JSON","adapter":"caddyfile"}
2025-08-11T18:59:36.786983421Z {"level":"info","ts":1754938776.7862585,"msg":"serving initial configuration"}
2025-08-11T19:07:12.952582528Z NOTICE: PHP message: 404 Not Found
2025-08-11T19:07:12.952704693Z Type: Slim\Exception\HttpNotFoundException
2025-08-11T19:07:12.952728248Z Code: 404
2025-08-11T19:07:12.952746396Z Message: Not found.
2025-08-11T19:07:12.952803729Z File: /var/www/docker-aio/php/vendor/slim/slim/Slim/Middleware/RoutingMiddleware.php
2025-08-11T19:07:12.952824117Z Line: 76
2025-08-11T19:07:12.952841025Z Trace: #0 /var/www/docker-aio/php/vendor/slim/slim/Slim/Routing/RouteRunner.php(62): Slim\Middleware\RoutingMiddleware->performRouting(Object(GuzzleHttp\Psr7\ServerRequest))
2025-08-11T19:07:12.952860117Z #1 /var/www/docker-aio/php/vendor/slim/csrf/src/Guard.php(482): Slim\Routing\RouteRunner->handle(Object(GuzzleHttp\Psr7\ServerRequest))
2025-08-11T19:07:12.952878321Z #2 /var/www/docker-aio/php/vendor/slim/slim/Slim/MiddlewareDispatcher.php(177): Slim\Csrf\Guard->process(Object(GuzzleHttp\Psr7\ServerRequest), Object(Slim\Routing\RouteRunner))
2025-08-11T19:07:12.952901005Z #3 /var/www/docker-aio/php/vendor/slim/twig-view/src/TwigMiddleware.php(117): Psr\Http\Server\RequestHandlerInterface@anonymous->handle(Object(GuzzleHttp\Psr7\ServerRequest))
2025-08-11T19:07:12.952919339Z #4 /var/www/docker-aio/php/vendor/slim/slim/Slim/MiddlewareDispatcher.php(129): Slim\Views\TwigMiddleware->process(Object(GuzzleHttp\Psr7\ServerRequest), Object(Psr\Http\Server\RequestHandlerInterface@anonymous))
2025-08-11T19:07:12.952938375Z #5 /var/www/docker-aio/php/src/Middleware/AuthMiddleware.php(36): Psr\Http\Server\RequestHandlerInterface@anonymous->handle(Object(GuzzleHttp\Psr7\ServerRequest))
2025-08-11T19:07:12.952956709Z #6 /var/www/docker-aio/php/vendor/slim/slim/Slim/MiddlewareDispatcher.php(280): AIO\Middleware\AuthMiddleware->__invoke(Object(GuzzleHttp\Psr7\ServerRequest), Object(Psr\Http\Server\RequestHandlerInterface@anonymous))
2025-08-11T19:07:12.952975319Z #7 /var/www/docker-aio/php/vendor/slim/slim/Slim/Middleware/ErrorMiddleware.php(77): Psr\Http\Server\RequestHandlerInterface@anonymous->handle(Object(GuzzleHttp\Psr7\ServerRequest))
2025-08-11T19:07:12.952993578Z #8 /var/www/docker-aio/php/vendor/slim/slim/Slim/MiddlewareDispatcher.php(129): Slim\Middleware\ErrorMiddleware->process(Object(GuzzleHttp\Psr7\ServerRequest), Object(Psr\Http\Server\RequestHandlerInterface@anonymous))
2025-08-11T19:07:12.953012115Z #9 /var/www/docker-aio/php/vendor/slim/slim/Slim/MiddlewareDispatcher.php(73): Psr\Http\Server\RequestHandlerInterface@anonymous->handle(Object(GuzzleHttp\Psr7\ServerRequest))
2025-08-11T19:07:12.953033615Z #10 /var/www/docker-aio/php/vendor/slim/slim/Slim/App.php(209): Slim\MiddlewareDispatcher->handle(Object(GuzzleHttp\Psr7\ServerRequest))
2025-08-11T19:07:12.953052393Z #11 /var/www/docker-aio/php/vendor/slim/slim/Slim/App.php(193): Slim\App->handle(Object(GuzzleHttp\Psr7\ServerRequest))
2025-08-11T19:07:12.953069929Z #12 /var/www/docker-aio/php/public/index.php(196): Slim\App->run()
2025-08-11T19:07:12.953087281Z #13 {main}
2025-08-11T19:07:12.953104040Z Tips: To display error details in HTTP response set "displayErrorDetails" to true in the ErrorHandler constructor.

tassoman avatar Aug 11 '25 19:08 tassoman

Can you try the TestFlight version ?

https://testflight.apple.com/join/RXEJbWj9

marinofaggiana avatar Aug 13 '25 14:08 marinofaggiana

If anyone having TestFlight version, tested this fix, maybe can be released?

tassoman avatar Aug 21 '25 10:08 tassoman

I installed the TestFlight version - still the same errors, even after reboot / restart:

Image Image

perfectra1n avatar Aug 23 '25 00:08 perfectra1n

Well it's nice, because it's handling the exception... But why the folder can't be created? 😅

tassoman avatar Aug 27 '25 18:08 tassoman