nextcloud / nextcloud/desktop

e2ee doesn't work on Ubuntu

Open
#9,038 7 comments 0 reactions 1 assignee Claimed by @nilsding View on GitHub
bug feature: :lock: end to end encryption os: :penguin: Linux
Dominant language
C++
Stars
3.9k
Forks
1k
Avg merge
1d 17h
Merged PRs (30d)
123

Description

### Steps to reproduce
1. Enable E2EE app in NextCloud
2. Set-up the mnemonic on nextcloud-desktop Ubuntu version
3. Create a folder in Nextcloud
4. Encrypt the folder in nextcloud-desktop settings

### Expected behaviour

Folder is created, files can be uploaded

### Actual behaviour

On Windows client, no issue. On Ubuntu, this issue
Image

### Server configuration

**Operating system:**
```
% cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 13 (trixie)"
NAME="Debian GNU/Linux"
VERSION_ID="13"
VERSION="13 (trixie)"
VERSION_CODENAME=trixie
DEBIAN_VERSION_FULL=13.1
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
```

**Web server:**
```
% nginx -v
nginx version: nginx/1.29.3

% cat /etc/nginx/sites-available/nextcloud
server {
listen 443 ssl;
listen 443 quic reuseport;
http2 on;
http3 on;
server_name CONCEALED;

ssl_certificate /etc/letsencrypt/live/CONCEALED/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/CONCEALED/privkey.pem; # managed by Certbot

root /var/www/nextcloud/;

add_header Alt-Svc 'h3=":443"; ma=86400' always;
add_header X-Content-Type-Options nosniff;
add_header X-Robots-Tag "noindex, nofollow";
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
add_header Referrer-Policy no-referrer;
add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains;';
add_header X-Frame-Options SAMEORIGIN;

location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}

location ^~ /.well-known {
location = /.well-known/carddav {
return 301 /remote.php/dav/;
}

location = /.well-known/caldav {
return 301 /remote.php/dav/;
}

location /.well-known/acme-challenge {
try_files $uri $uri/ =404;
}

location /.well-known/pki-validation {
try_files $uri $uri/ =404;
}

return 301 /index.php$request_uri;
}

location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/) {
return 404;
}

location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
return 404;
}

client_max_body_size 4G;
fastcgi_buffers 64 4K;

gzip on;
gzip_vary on;
gzip_comp_level 4;
gzip_min_length 256;
gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;

location / {
rewrite ^ /index.php$uri;
}

location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+)\.php(?:$|/) {
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param HTTPS on;
fastcgi_param modHeadersAvailable true;
fastcgi_param front_controller_active true;
fastcgi_param PHP_VALUE "memory_limit = 2G";
fastcgi_pass php-fpm;
fastcgi_intercept_errors on;
fastcgi_request_buffering off;
fastcgi_read_timeout 300;
}

location ~ ^/(?:updater|ocs-provider)(?:$|/) {
try_files $uri/ =404;
index index.php;
}

location ~* \.(?:css|js|woff|svg|gif|mjs|map)$ {
try_files $uri /index.php$uri$is_args$args;
add_header Cache-Control "public, max-age=15778463";
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
access_log off;
}

location ~* \.(?:png|html|ttf|ico|jpg|jpeg)$ {
try_files $uri /index.php$uri$is_args$args;
access_log off;
}

location ~ \.(otf|woff2?)$ {
try_files $uri /index.php$request_uri;
expires 7d; # Cache-Control policy borrowed from `.htaccess`
access_log off; # Optional: Don't log access to assets
}

location /exapps/ {
proxy_pass http://127.0.0.1:8780;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

server {
if ($host = CONCEALED) {
return 301 https://$host$request_uri;
} # managed by Certbot

listen 80;
server_name CONCEALED;
return 404; # managed by Certbot

}
```

**Database:**
MySQL v8.4.7

**PHP version:**
```
% php -v
PHP 8.4.14 (cli) (built: Oct 27 2025 21:20:52) (NTS)
Copyright (c) The PHP Group
Built by Debian
Zend Engine v4.4.14, Copyright (c) Zend Technologies
with Zend OPcache v8.4.14, Copyright (c), by Zend Technologies
```
**Nextcloud version:**
```
% occ
Nextcloud 32.0.1
```

**Where did you install Nextcloud from:**
From sources

**Signing status:**

Image

**List of activated apps:**
```
% occ app:list
Enabled:
- admin_audit: 1.22.0
- app_api: 32.0.0
- bruteforcesettings: 5.0.0-dev.0
- cloud_federation_api: 1.16.0
- dav: 1.34.2
- end_to_end_encryption: 1.18.0
- federatedfilesharing: 1.22.0
- files: 2.4.0
- files_downloadlimit: 5.0.0-dev.0
- files_reminders: 1.5.0
- files_sharing: 1.24.0
- files_trashbin: 1.22.0
- files_versions: 1.25.0
- logreader: 5.0.0-dev.0
- lookup_server_connector: 1.20.0
- notifications: 5.0.0-dev.0
- oauth2: 1.20.0
- password_policy: 4.0.0-dev.0
- privacy: 4.0.0-dev.0
- profile: 1.1.0
- provisioning_api: 1.22.0
- related_resources: 3.0.0-dev.0
- serverinfo: 4.0.0-dev.0
- settings: 1.15.1
- suspicious_login: 10.0.0-dev.0
- text: 6.0.1
- theming: 2.7.0
- twofactor_backupcodes: 1.21.0
- twofactor_totp: 14.0.0
- twofactor_webauthn: 2.4.1
- updatenotification: 1.22.0
- viewer: 5.0.0-dev.0
- webhook_listeners: 1.3.0
- workflowengine: 2.14.0
Disabled:
- activity: 5.0.0-dev.0 (installed 2.14.3)
- circles: 32.0.0 (installed 24.0.1)
- comments: 1.22.0 (installed 1.11.0)
- contactsinteraction: 1.13.1 (installed 1.2.0)
- dashboard: 7.12.0 (installed 7.1.0)
- encryption: 2.20.0
- federation: 1.22.0 (installed 1.14.0)
- files_external: 1.24.0
- files_pdfviewer: 5.0.0-dev.0 (installed 2.1.0)
- firstrunwizard: 5.0.0-dev.0 (installed 2.18.0)
- nextcloud_announcements: 4.0.0-dev.0 (installed 1.6.0)
- photos: 5.0.0-dev.1 (installed 1.3.0)
- recommendations: 5.0.0-dev.0 (installed 1.3.0)
- sharebymail: 1.22.0 (installed 1.14.0)
- support: 4.0.0-dev.0 (installed 1.7.0)
- survey_client: 4.0.0-dev.0 (installed 1.9.0)
- systemtags: 1.22.0 (installed 1.11.0)
- twofactor_nextcloud_notification: 6.0.0-dev.0
- user_ldap: 1.23.0
- user_status: 1.12.0 (installed 1.1.1)
- weather_status: 1.12.0 (installed 1.1.0)
```

**Nextcloud configuration:**
```
% occ config:list system
{
"system": {
"instanceid": "***REMOVED SENSITIVE VALUE***",
"passwordsalt": "***REMOVED SENSITIVE VALUE***",
"secret": "***REMOVED SENSITIVE VALUE***",
"trusted_domains": [
"CONCEALED"
],
"datadirectory": "***REMOVED SENSITIVE VALUE***",
"overwrite.cli.url": "https:\/\/CONCEALED",
"dbtype": "mysql",
"version": "32.0.1.2",
"dbname": "***REMOVED SENSITIVE VALUE***",
"dbhost": "***REMOVED SENSITIVE VALUE***",
"dbport": "",
"dbtableprefix": "oc_",
"dbuser": "***REMOVED SENSITIVE VALUE***",
"dbpassword": "***REMOVED SENSITIVE VALUE***",
"installed": true,
"memcache.local": "\\OC\\Memcache\\APCu",
"memcache.locking": "\\OC\\Memcache\\Redis",
"redis": {
"host": "***REMOVED SENSITIVE VALUE***",
"port": 6379
},
"loglevel": 2,
"logtimezone": "Europe\/Paris",
"logfile": "\/var\/log\/nextcloud\/nextcloud.log",
"log_rotate_size": 104857600,
"mail_smtpmode": "smtp",
"maintenance": false,
"maintenance_window_start": 2,
"theme": "",
"mysql.utf8mb4": true,
"updater.release.channel": "stable",
"mail_sendmailmode": "smtp",
"default_phone_region": "FR",
"mail_domain": "***REMOVED SENSITIVE VALUE***",
"mail_from_address": "***REMOVED SENSITIVE VALUE***",
"mail_smtphost": "***REMOVED SENSITIVE VALUE***",
"mail_smtpport": "587",
"mail_smtpauth": 1,
"mail_smtpname": "***REMOVED SENSITIVE VALUE***",
"mail_smtppassword": "***REMOVED SENSITIVE VALUE***",
"app_install_overwrite": []
}
}
```

**Are you using external storage, if yes which one:** local/smb/sftp/...
NO

**Are you using encryption:** yes/no
I would like to use e2ee :)
Not using server-side encryption

**Are you using an external user-backend, if yes which one:** LDAP/ActiveDirectory/Webdav/...
No

### Client configuration
**Operating system:**
```
> cat /etc/os-release
PRETTY_NAME="Ubuntu 24.04.3 LTS"
NAME="Ubuntu"
VERSION_ID="24.04"
VERSION="24.04.3 LTS (Noble Numbat)"
VERSION_CODENAME=noble
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=noble
LOGO=ubuntu-logo

> apt-cache policy nextcloud-desktop
nextcloud-desktop:
Installed: 4.0.1-20251029.160431.e81c242e13-1.0~noble1
Candidate: 4.0.1-20251029.160431.e81c242e13-1.0~noble1
Version table:
*** 4.0.1-20251029.160431.e81c242e13-1.0~noble1 500
500 https://ppa.launchpadcontent.net/nextcloud-devs/client/ubuntu noble/main amd64 Packages
100 /var/lib/dpkg/status
3.11.0-1.1build4 500
500 http://fr.archive.ubuntu.com/ubuntu noble/universe amd64 Packages
```

### Logs

#### Web server error log
```
{
"reqId": "CONCEALED",
"level": 3,
"time": "2025-11-05T09:12:19+01:00",
"remoteAddr": "CONCEALED",
"user": "CONCEALED",
"app": "no app in context",
"method": "GET",
"url": "/ocs/v2.php/apps/end_to_end_encryption/api/v2/meta-data/52756?format=json",
"message": "/appdata_ocn4xe6m05t8/end_to_end_encryption/meta-data/52756",
"userAgent": "Mozilla/5.0 (Linux) mirall/4.0.1-20251029.160431.e81c242e13-1.0~noble1 (Nextcloud, ubuntu-6.14.0-34-generic ClientArchitecture: x86_64 OsArchitecture: x86_64)",
"version": "32.0.1.2",
"clientReqId": "193a829e-6446-44c6-8079-542c4140cbe4",
"exception": {
"Exception": "OCP\\Files\\NotFoundException",
"Message": "/appdata_ocn4xe6m05t8/end_to_end_encryption/meta-data/52756",
"Code": 0,
"Trace": [
{
"file": "/var/www/nextcloud/lib/private/Files/Node/LazyFolder.php",
"line": 138,
"function": "get",
"class": "OC\\Files\\Node\\Root",
"type": "->"
},
{
"file": "/var/www/nextcloud/lib/private/Files/AppData/AppData.php",
"line": 114,
"function": "get",
"class": "OC\\Files\\Node\\LazyFolder",
"type": "->"
},
{
"file": "/var/www/nextcloud/apps/end_to_end_encryption/lib/MetaDataStorage.php",
"line": 220,
"function": "getFolder",
"class": "OC\\Files\\AppData\\AppData",
"type": "->"
},
{
"file": "/var/www/nextcloud/apps/end_to_end_encryption/lib/Controller/MetaDataController.php",
"line": 86,
"function": "readSignature",
"class": "OCA\\EndToEndEncryption\\MetaDataStorage",
"type": "->"
},
{
"file": "/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php",
"line": 204,
"function": "getMetaData",
"class": "OCA\\EndToEndEncryption\\Controller\\MetaDataController",
"type": "->"
},
{
"file": "/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php",
"line": 118,
"function": "executeController",
"class": "OC\\AppFramework\\Http\\Dispatcher",
"type": "->"
},
{
"file": "/var/www/nextcloud/lib/private/AppFramework/App.php",
"line": 153,
"function": "dispatch",
"class": "OC\\AppFramework\\Http\\Dispatcher",
"type": "->"
},
{
"file": "/var/www/nextcloud/lib/private/Route/Router.php",
"line": 321,
"function": "main",
"class": "OC\\AppFramework\\App",
"type": "::"
},
{
"file": "/var/www/nextcloud/ocs/v1.php",
"line": 61,
"function": "match",
"class": "OC\\Route\\Router",
"type": "->"
},
{
"file": "/var/www/nextcloud/ocs/v2.php",
"line": 8,
"args": [
"/var/www/nextcloud/ocs/v1.php"
],
"function": "require_once"
}
],
"File": "/var/www/nextcloud/lib/private/Files/Node/Root.php",
"Line": 182,
"message": "/appdata_ocn4xe6m05t8/end_to_end_encryption/meta-data/52756",
"exception": {},
"CustomMessage": "/appdata_ocn4xe6m05t8/end_to_end_encryption/meta-data/52756"
}
}
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.