nextcloud / nextcloud/server

[Bug]: Folder Not Found - Error 404 on some folders (randomly)

Open
#53,794 9 comments 3 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

0. Needs triage 30-feedback bug feature: object storage
Dominant language
PHP
Stars
36.9k
Forks
5.2k
Avg merge
2d 3h
Merged PRs (30d)
713

Description

⚠️ This issue respects the following points: ⚠️
Bug description

We user browser to his folders in nextcloud web, sometime some folders display following error :
"Folder not found : retry".
Image

After several refresh are browsing back and again to the folder, it displays his content instead of this error.

Steps to reproduce
  1. Open folder in nextcloud web ui (randomly)
  2. "Folder not found : retry" error is displayed.
Expected behavior

Folder should display his content instead of this error.

Nextcloud Server version

30

Operating system

Debian/Ubuntu

PHP engine version

PHP 8.2

Web server

Nginx

Database engine version

PostgreSQL

Is this bug present after an update or on a fresh install?

Upgraded to a MAJOR version (ex. 31 to 32)

Are you using the Nextcloud Server Encryption module?

None

What user-backends are you using?
  • Default user-backend (database)
  • LDAP/ Active Directory
  • SSO - SAML
  • Other
Configuration report
{
    "system": {
        "installed": "true",
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "trusted_domains": [
            "nextcloud.domain.name"
        ],
        "overwrite.cli.url": "https:\/\/nextcloud.domain.name",
        "overwriteprotocol": "",
        "version": "30.0.8.1",
        "debug": false,
        "instanceid": "***REMOVED SENSITIVE VALUE***",
        "config_is_read_only": "true",
        "skeletondirectory": "",
        "updatechecker": "false",
        "updater.server.url": "***REMOVED SENSITIVE VALUE***",
        "updater.release.channel": "stable",
        "upgrade.disable-web": true,
        "sharing.maxAutocompleteResults": 10,
        "sharing.minSearchStringLength": 2,
        "trashbin_retention_obligation": "30,60",
        "versions_retention_obligation": "auto,365",
        "activity_expire_days": 30,
        "check_for_working_wellknown_setup": false,
        "default_phone_region": "FR",
        "log_type": "errorlog",
        "log_type_audit": "errorlog",
        "auth.bruteforce.protection.enabled": false,
        "ratelimit.protection.enabled": false,
        "memcache.local": "\\OC\\Memcache\\APCu",
        "apps_paths": [
            {
                "path": "\/usr\/src\/nextcloud\/apps",
                "url": "\/apps",
                "writable": false
            }
        ],
        "default_language": "fr",
        "default_locale": "fr",
        "enable_previews": false,
        "preview_format": "webp",
        "memcache.distributed": "\\OC\\Memcache\\Redis",
        "memcache.locking": "\\OC\\Memcache\\Redis",
        "redis": {
            "host": "***REMOVED SENSITIVE VALUE***",
            "password": "***REMOVED SENSITIVE VALUE***",
            "port": 6379
        },
        "trusted_proxies": "***REMOVED SENSITIVE VALUE***",
        "objectstore": {
            "class": "\\OC\\Files\\ObjectStore\\S3",
            "arguments": {
                "bucket": "nextcloud",
                "autocreate": false,
                "uploadPartSize": 124288000,
                "key": "***REMOVED SENSITIVE VALUE***",
                "secret": "***REMOVED SENSITIVE VALUE***",
                "region": "default",
                "hostname": "minio.domain.name",
                "port": "443",
                "use_ssl": true,
                "use_path_style": true
            }
        },
        "mail_smtpmode": "smtp",
        "mail_smtphost": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpport": "587",
        "mail_smtpsecure": "tls",
        "mail_smtpauth": true,
        "mail_smtpauthtype": "LOGIN",
        "mail_smtpname": "***REMOVED SENSITIVE VALUE***",
        "mail_from_address": "***REMOVED SENSITIVE VALUE***",
        "mail_domain": "***REMOVED SENSITIVE VALUE***",
        "mail_smtppassword": "***REMOVED SENSITIVE VALUE***",
        "appstoreenabled": false,
        "dbtableprefix": "",
        "dbhost": "***REMOVED SENSITIVE VALUE***",
        "dbuser": "***REMOVED SENSITIVE VALUE***",
        "dbtype": "pgsql",
        "dbport": "5432",
        "dbpassword": "***REMOVED SENSITIVE VALUE***",
        "dbname": "***REMOVED SENSITIVE VALUE***"
    }
}
List of activated Apps
Enabled:
  - activity: 3.0.0
  - admin_audit: 1.20.0
  - app_api: 4.0.6
  - bruteforcesettings: 3.0.0
  - circles: 30.0.0
  - cloud_federation_api: 1.13.0
  - collectives: 2.16.1
  - comments: 1.20.1
  - contacts: 7.0.5
  - contactsinteraction: 1.11.0
  - dav: 1.31.1
  - deck: 1.14.4
  - drawio: 3.0.9
  - external: 5.5.2
  - federatedfilesharing: 1.20.0
  - federation: 1.20.0
  - files: 2.2.0
  - files_downloadlimit: 3.0.0
  - files_pdfviewer: 3.0.0
  - files_reminders: 1.3.0
  - files_sharing: 1.22.0
  - files_trashbin: 1.20.1
  - files_versions: 1.23.0
  - files_versions_s3: 1.1.0
  - forms: 4.3.12
  - liiibre: 1.0.0
  - lookup_server_connector: 1.18.0
  - notifications: 3.0.0
  - oauth2: 1.18.1
  - onlyoffice: 9.8.0
  - passwords: 2025.4.10
  - polls: 7.4.2
  - privacy: 2.0.0
  - provisioning_api: 1.20.0
  - recommendations: 3.0.0
  - related_resources: 1.5.0
  - settings: 1.13.0
  - sharebymail: 1.20.0
  - systemtags: 1.20.0
  - tasks: 0.16.1
  - text: 4.1.0
  - theming: 2.6.0
  - theming_customcss: 1.18.0
  - twofactor_backupcodes: 1.19.0
  - user_saml: 6.5.0
  - viewer: 3.0.0
  - webhook_listeners: 1.1.0-dev
  - workflowengine: 2.12.0
Nextcloud Signing status
Technical information
=====================
The following list covers which files have failed the integrity check. Please read
the previous linked documentation to learn more about the errors and how to fix
them.

Results
=======
- core
	- INVALID_HASH
		- core/img/favicon.ico
		- core/img/logo/logo.png
		- core/img/logo/logo.svg
		- lib/private/Notification/Manager.php
	- EXTRA_FILE
		- lib/private/Notification/Manager.php.orig
- notifications
	- INVALID_HASH
		- lib/Push.php
	- EXTRA_FILE
		- lib/Push.php.orig
- theming
	- INVALID_HASH
		- lib/Util.php
	- EXTRA_FILE
		- lib/Util.php.orig
- onlyoffice
	- INVALID_HASH
		- lib/Controller/CallbackController.php
		- lib/Controller/EditorController.php
		- lib/DirectEditor.php
	- EXTRA_FILE
		- lib/Controller/CallbackController.php.orig
		- lib/Controller/EditorController.php.orig
		- lib/DirectEditor.php.orig
- user_saml
	- INVALID_HASH
		- lib/SAMLSettings.php
	- EXTRA_FILE
		- lib/SAMLSettings.php.orig

Raw output
==========
Array
(
    [core] => Array
        (
            [INVALID_HASH] => Array
                (
                    [core/img/favicon.ico] => Array
                        (
                            [expected] => 108063e89ca2f5cbcaa07a487a7a1266797ec6db197dc4e39289dce4101f0d192e171e033d0884055a0cb5775026e21935c5cd9710e8e745bbb819a53570438f
                            [current] => 28440b3f313b8fa565c1a4302be20313032fcf4181245b5cc3734eae24160b97a4df43a38ca9e76f0f8887171d3337ca15d5376a53a1d5a7e0670397c2d584d4
                        )

                    [core/img/logo/logo.png] => Array
                        (
                            [expected] => 2ab8f36274675387ff43083c88e35385701852ef62f75d5bfe6da0fcae38c7b7ed92eb7a2245d4970f0c2c9194acf7217ffdbf248d98a9000ba45cefde9cafa7
                            [current] => 1fa3b538503febe9ccaad50362230dc69b80cfb1b240b62864e1eeb737268ac679cc8e2d4e5c14d70e5e2a2891e30014c7767a10b5cd516f9a6d0624ef5b6ecc
                        )

                    [core/img/logo/logo.svg] => Array
                        (
                            [expected] => 29a51bdf4998f28bc190d29dda9d9ca9368d8a2295cf06d3fc8e20e49f280d5bb57cb8a83276e5dec050cc4d9fde6a817802b10f19a148d06a38f4d44fa80b80
                            [current] => b9dfb3f537e5576a2ee1e82aaafc06aa9467dfe6cda96eb6b6f17ee615e36d8c44be58bd8b192902ae129db7c0f4e1b31cfd8c00172953a4c75352af6c38dbf7
                        )

                    [lib/private/Notification/Manager.php] => Array
                        (
                            [expected] => 0b4b9ac99d2b40da071b6fe0e3675aaf3a747b6b1f8e9a61440bd6744def28798a190b0a0beb6de6fb979ae050eecfea181d33c252992674ff57110def1fa14e
                            [current] => d1795e4aedd3a5415e7329225eaff1413424b4bc3a6c691a204bfdb734be2e3af1d3319bcb5351414872860bd1c30bddbd930b36fd4981b69c6690c6d1afe3ad
                        )

                )

            [EXTRA_FILE] => Array
                (
                    [lib/private/Notification/Manager.php.orig] => Array
                        (
                            [expected] => 
                            [current] => 0b4b9ac99d2b40da071b6fe0e3675aaf3a747b6b1f8e9a61440bd6744def28798a190b0a0beb6de6fb979ae050eecfea181d33c252992674ff57110def1fa14e
                        )

                )

        )

    [notifications] => Array
        (
            [INVALID_HASH] => Array
                (
                    [lib/Push.php] => Array
                        (
                            [expected] => cdcd50ca3bb06640ff51643d5019cf33924abca89449235509ef4f4bd8a4526ca2f326abd094044652714f11ac8fc8b81816f326bfd11840c6507b8153fff52b
                            [current] => 6f4faccde800b0b2ebc7ba55a1abd722c9066b3c97a9aae058283889159cc22dd01f20d8ae2ccc4f146ebe6b2ae1b50b92ca6ec90fe3512a9e8d05f4e08a2f52
                        )

                )

            [EXTRA_FILE] => Array
                (
                    [lib/Push.php.orig] => Array
                        (
                            [expected] => 
                            [current] => cdcd50ca3bb06640ff51643d5019cf33924abca89449235509ef4f4bd8a4526ca2f326abd094044652714f11ac8fc8b81816f326bfd11840c6507b8153fff52b
                        )

                )

        )

    [theming] => Array
        (
            [INVALID_HASH] => Array
                (
                    [lib/Util.php] => Array
                        (
                            [expected] => 76b5ffbb374cb34be0e6ad06996ac69f8dd56a978214a75c0542ee296d34ea5caebaa663f40a79b3202f16bbe65cca9cde1d7dc3d29bb896c5a24d91ef21c09e
                            [current] => 16cd672ff4e0f9a0fec6d71bfb8355c855b95d6cd831bb7b30612425a8787114da867d37d268461d9188d53ceab67f74fd2d5ed808dd895b8ed8e06b3d399fb7
                        )

                )

            [EXTRA_FILE] => Array
                (
                    [lib/Util.php.orig] => Array
                        (
                            [expected] => 
                            [current] => 76b5ffbb374cb34be0e6ad06996ac69f8dd56a978214a75c0542ee296d34ea5caebaa663f40a79b3202f16bbe65cca9cde1d7dc3d29bb896c5a24d91ef21c09e
                        )

                )

        )

    [onlyoffice] => Array
        (
            [INVALID_HASH] => Array
                (
                    [lib/Controller/CallbackController.php] => Array
                        (
                            [expected] => f1b16ee6e231b80317123ddc30a3c6fc199da0622915283932bfe2465bc167f58dc5ae1b72feeb63cdee21db21f4204e964b96c2ddace0480b3f36a2d8f6ef24
                            [current] => 33643a6d12f64476a36e81d401a7fcfa887a37c56cd69dd2f86fe2456402baa74e04bb1634c5864596457215823f2b0392a9aa2da82dbf02a04029cfea110626
                        )

                    [lib/Controller/EditorController.php] => Array
                        (
                            [expected] => 5721f5411bdd5d2fdc794e0335adb4130e6ded010924f776bd6f7e0e1eb7e17227f55a8e5ca6025e52669cb1c26364d760e259ce4989577b65f92a1fa916fb4b
                            [current] => ec1707b8c45a5484a652b82114f888664e604a871510afe0f5bdeed9b8a710ca2cc7f06718cd72e1d76650eadecf03bc4fdce16ad130cd0eb48a85bf5b518b74
                        )

                    [lib/DirectEditor.php] => Array
                        (
                            [expected] => 58ea1d43197b987ed3ea0b648397b29ec3b44f3c38f3fd45947d0abe3859cd5b17ad335d95ef2958dd1a865f249286487d5bb7b1ea144b43e45918ccb9a477f1
                            [current] => ba72203b9645b46fae26591b08e1ce7c6ae5528d214d1714cd0ee1c9c3105369f38fdab2ccb9d570553fd4ae25443da66af66f729e6dce130282346a6defd7e5
                        )

                )

            [EXTRA_FILE] => Array
                (
                    [lib/Controller/CallbackController.php.orig] => Array
                        (
                            [expected] => 
                            [current] => f1b16ee6e231b80317123ddc30a3c6fc199da0622915283932bfe2465bc167f58dc5ae1b72feeb63cdee21db21f4204e964b96c2ddace0480b3f36a2d8f6ef24
                        )

                    [lib/Controller/EditorController.php.orig] => Array
                        (
                            [expected] => 
                            [current] => 5721f5411bdd5d2fdc794e0335adb4130e6ded010924f776bd6f7e0e1eb7e17227f55a8e5ca6025e52669cb1c26364d760e259ce4989577b65f92a1fa916fb4b
                        )

                    [lib/DirectEditor.php.orig] => Array
                        (
                            [expected] => 
                            [current] => 58ea1d43197b987ed3ea0b648397b29ec3b44f3c38f3fd45947d0abe3859cd5b17ad335d95ef2958dd1a865f249286487d5bb7b1ea144b43e45918ccb9a477f1
                        )

                )

        )

    [user_saml] => Array
        (
            [INVALID_HASH] => Array
                (
                    [lib/SAMLSettings.php] => Array
                        (
                            [expected] => 764d8866372b6c2de331bb7711d0c4ff9da7f344d4060081743a00b80637784d302d34f296af1a863ce89c55b160a0640499ed2d2e599f3b1538365a7f838935
                            [current] => 41daec0e86c6bc4bd5b95bc3d67e9d97d1523a376326d763372d78a3d256b10bf08fdafcf304ad6ddc98bc277073614b169983b03e630b82c8fe17d87f90c51f
                        )

                )

            [EXTRA_FILE] => Array
                (
                    [lib/SAMLSettings.php.orig] => Array
                        (
                            [expected] => 
                            [current] => 764d8866372b6c2de331bb7711d0c4ff9da7f344d4060081743a00b80637784d302d34f296af1a863ce89c55b160a0640499ed2d2e599f3b1538365a7f838935
                        )

                )

        )

)
Nextcloud Logs
90.1.150.226 - - [03/Jul/2025:12:16:02 +0000] "PROPFIND /remote.php/dav/files/user/PathToFolder/Folder/ HTTP/1.1" 499 0 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:139.0) Gecko/20100101 Firefox/139.0" "90.1.150.226"
90.1.150.226 - - [03/Jul/2025:12:16:02 +0000] "GET /ocs/v2.php/apps/text/workspace?path=%PathToFolder%2FFolder HTTP/1.1" 404 140 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:139.0) Gecko/20100101 Firefox/139.0" "90.1.150.226"
90.1.150.226 - - [03/Jul/2025:12:16:11 +0000] "PROPFIND /remote.php/dav/files/user/PathToFolder/Folder/ HTTP/1.1" 499 0 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:139.0) Gecko/20100101 Firefox/139.0" "90.1.150.226"
Additional info

Web Logs

A setting with the same name is already registered [Settings.js:24:11](webpack:///nextcloud/apps/files/src/services/Settings.js)
    register Settings.js:24
    render main.js:39
    mounted FilesListHeader.vue:41
    VueJS 18
    init vue-router.esm.js:3005
    init vue-router.esm.js:3004
    updateRoute vue-router.esm.js:2414
    transitionTo vue-router.esm.js:2263
    confirmTransition vue-router.esm.js:2402
    a vue-router.esm.js:2084
    Ce vue-router.esm.js:2095
    confirmTransition vue-router.esm.js:2396
    a vue-router.esm.js:2084
    a vue-router.esm.js:2088
    _ vue-router.esm.js:2384
    g vue-router.esm.js:2162
    _ vue-router.esm.js:2362
    a vue-router.esm.js:2087
    a vue-router.esm.js:2091
    Ce vue-router.esm.js:2095
    confirmTransition vue-router.esm.js:2392
    transitionTo vue-router.esm.js:2260
    push vue-router.esm.js:2606
    push vue-router.esm.js:3039
    push router.ts:11
    y vue-router.esm.js:1139
    click NcButton.mjs:232
    VueJS 33

XHRPROPFIND
https://nextcloud.domain.name/remote.php/dav/files/user/user/PathToFolder/Folder/
NS_BINDING_ABORTED

XHRPROPFIND
https://nextcloud.domain.name/remote.php/dav/files/user/PathToFolder/Folder/
[HTTP/2 404  123ms]

Uncaught (in promise) Error: Invalid response: 404 
    nt index.js:2
    at index.js:2
    Ot index.js:2
    promise callback*jt index.js:2
    Ot index.js:2
    Ot index.js:2
    getDirectoryContents index.js:2
    Y Files.ts:17
    s CancelablePromise.js:82
    e CancelablePromise.js:81
    n CancelablePromise.js:30
    r CancelablePromise.js:191
    Y Files.ts:14
    E FileListFilterAccount.vue:63
    setup FileListFilterAccount.vue:113
    VueJS 5
    setup FileListFilterAccount.vue:108
    VueJS 5
    mount AccountFilter.ts:18
    setup FileListFilters.vue:16
    setup FileListFilters.vue:16
    VueJS 14
    init vue-router.esm.js:3005
    init vue-router.esm.js:3004
    updateRoute vue-router.esm.js:2414
    transitionTo vue-router.esm.js:2263
    confirmTransition vue-router.esm.js:2402
    a vue-router.esm.js:2084
    Ce vue-router.esm.js:2095
    confirmTransition vue-router.esm.js:2396
    a vue-router.esm.js:2084
    a vue-router.esm.js:2088
    _ vue-router.esm.js:2384
    g vue-router.esm.js:2162
    _ vue-router.esm.js:2362
    a vue-router.esm.js:2087
    a vue-router.esm.js:2091
    Ce vue-router.esm.js:2095
    confirmTransition vue-router.esm.js:2392
    transitionTo vue-router.esm.js:2260
    push vue-router.esm.js:2606
    push vue-router.esm.js:3039
    push router.ts:11
    y vue-router.esm.js:1139
    click NcButton.mjs:232
[index.js:2:80654](webpack:///nextcloud/node_modules/webdav/dist/web/index.js)
    E FileListFilterAccount.vue:63
    AsyncFunctionThrow self-hosted:804
    (Asynchrone : async)
    setup FileListFilterAccount.vue:113
    VueJS 5
    setup FileListFilterAccount.vue:108
    VueJS 5
    mount AccountFilter.ts:18
    setup FileListFilters.vue:16
    forEach self-hosted:157
    setup FileListFilters.vue:16
    VueJS 14
    init vue-router.esm.js:3005
    forEach self-hosted:157
    init vue-router.esm.js:3004
    updateRoute vue-router.esm.js:2414
    transitionTo vue-router.esm.js:2263
    confirmTransition vue-router.esm.js:2402
    a vue-router.esm.js:2084
    Ce vue-router.esm.js:2095
    confirmTransition vue-router.esm.js:2396
    a vue-router.esm.js:2084
    a vue-router.esm.js:2088
    _ vue-router.esm.js:2384
    g vue-router.esm.js:2162
    _ vue-router.esm.js:2362
    a vue-router.esm.js:2087
    a vue-router.esm.js:2091
    Ce vue-router.esm.js:2095
    confirmTransition vue-router.esm.js:2392
    transitionTo vue-router.esm.js:2260
    push vue-router.esm.js:2606
    push vue-router.esm.js:3039
    push router.ts:11
    y vue-router.esm.js:1139
    click NcButton.mjs:232

[ERROR] files: Error while fetching content 
Object { app: "files", uid: "alexis", level: 2, error: Error }
index.mjs:54:16
    log index.mjs:54
    error index.mjs:72
    fetchContent FilesList.vue:384
    VueJS 4
    onClick BreadCrumbs.vue:133
    click BreadCrumbs.vue:1
    VueJS 31
    init vue-router.esm.js:3005
    init vue-router.esm.js:3004
    updateRoute vue-router.esm.js:2414
    transitionTo vue-router.esm.js:2263
    confirmTransition vue-router.esm.js:2402
    a vue-router.esm.js:2084
    Ce vue-router.esm.js:2095
    confirmTransition vue-router.esm.js:2396
    a vue-router.esm.js:2084
    a vue-router.esm.js:2088
    _ vue-router.esm.js:2384
    g vue-router.esm.js:2162
    _ vue-router.esm.js:2362
    a vue-router.esm.js:2087
    a vue-router.esm.js:2091
    Ce vue-router.esm.js:2095
    confirmTransition vue-router.esm.js:2392
    transitionTo vue-router.esm.js:2260
    push vue-router.esm.js:2606
    push vue-router.esm.js:3036
    push vue-router.esm.js:3035
    push router.ts:13
    goToRoute RouterService.ts:38

404 PROPFIND answer

<?xml version="1.0" encoding="utf-8"?>
<d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns">
  <s:exception>Sabre\DAV\Exception\NotFound</s:exception>
  <s:message>File with name //Projets could not be located</s:message>
</d:error>

We have this error since the upgrade from 27 to 28. Then we upgraded to 29 and then 30, and the issue is still there.

Specific config :

  • S3 versionning with MinIO.
  • Nextcloud in kubernetes.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No source file, test, log trace, or stable folder path is provided. Begin by reproducing the intermittent web UI 404 with the reported Nextcloud 30, PHP 8.2, Nginx, PostgreSQL, S3, and SAML setup, then trace the failing request; done requires a confirmed cause and a regression test.

Written by the indexing model from the issue text.

Assessment

Tech stack
nginx, php, postgresql
Domain
backend, databases, frontend
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.