nextcloud / nextcloud/mail

Mail unsubscribe fails although server returns HTTP 200 OK

Open
#11,991 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

1. to develop bug
Dominant language
JavaScript
Stars
1k
Forks
348
Avg merge
12h 28m
Merged PRs (30d)
91

Description

Steps to reproduce
  1. Open a newsletter email in the Nextcloud Mail app.
  2. Click the “Unsubscribe” button in the top-right corner.
  3. The email contains a valid List-Unsubscribe header with an HTTPS URL, for example:
    List-Unsubscribe: https://www.abcde.com/unsubscribe-contributor.php?...
  4. The server responds with a standard HTTP 200 OK and a confirmation page.
Expected behavior

Nextcloud Mail should treat a successful HTTP 200 OK response as a valid unsubscribe confirmation (or at least not show an error message).

Actual behavior

Nextcloud shows an error notification:
“Unsubscribing from the mailing list failed”
even though the unsubscribe request was successfully sent and the server returned 200 OK.

Mail app version
  • mail: 5.5.11 - sharebymail: 1.22.0
Nextcloud version

32.0.1.2

Mailserver or service

GMAIL, GMX

Operating system

Debian 12 Proxmox 8.4.14 LCX

PHP engine version

PHP 8.2

Nextcloud memory caching

\OC\Memcache\APCu | \OC\Memcache\Redis

Web server

Nginx

Database

PostgreSQL

Additional info
Environment
Component Version / Info
Nextcloud 30.0.1
Mail app 3.7.0
Operating system Debian 12 (LXC on Proxmox)
PHP 8.2.16 (FPM)
Web server nginx 1.24
Database MariaDB 10.11
Mail service smtp.gmail.com (587 / STARTTLS)
Memory cache Redis
Container type unprivileged LXC
Networking IPv4 only (IPv6 disabled)
Additional info
  • Outbound HTTPS confirmed working (curl returns 200 OK)
  • Browser unsubscribe link works correctly
  • Nextcloud Mail unsubscribe fails with “Unsubscribing failed” although server returns HTTP 200 OK.

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 file or test is named. Start by tracing the Mail app's unsubscribe action from the top-right button through its HTTP response handling, then reproduce the HTTPS 200 OK case and inspect why it reaches the failure notification. Done means a valid HTTP 200 response is treated as successful without showing the error.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, php
Domain
full-stack
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.