Automated tentative appointment creation records success (imip_processed=1, imip_error=0) and permanently retires invitations whose DAV delivery actually failed
I maintainer di solito rispondono entro 1 giorno
@kesselb ci sta già lavorando.
Dal 18/8/2026.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
Steps to reproduce
- Nextcloud 33.0.2, Mail 5.10, cron working, "Automatically create
tentative appointments" enabled (oc_mail_accounts.imip_create = 1). - Create any condition under which DAV-side iMIP delivery fails without
throwing — e.g. enable the server sharing setting "Restrict users to
only share with users in their groups", which makes principal
resolution fail in background jobs (no session user; see companion
issue filed against nextcloud/server). - Receive an external iMIP invitation (METHOD:REQUEST, ATTENDEE matches
the account address exactly) into the synced INBOX. - Let IMipMessageJob process it (cron, or occ background-job:execute
--force-execute).
Expected behavior
If the event cannot be delivered/created, the Mail app should either mark
the message with imip_error and/or retry later, and ideally surface the
failure to the user. A failed delivery should not be recorded as success.
Actual behavior
OCP\Calendar\IManager::handleIMip() returns true even when Sabre delivery
fails (scheduleStatus "3.7;Could not find principal" is logged only at
DEBUG level server-side and never propagated). IMipService::process()
therefore sets imip_processed = true and imip_error = false, and
findIMipMessagesAscending() excludes the message from all future runs —
the invitation is permanently dropped with no event created, no error
flag, no log entry above debug, and no user-visible feedback.
Verified state after processing: oc_mail_messages.imip_message = 1,
imip_processed = 1, imip_error = 0, flag_junk = 0, sent_at < 14 days,
message in synced INBOX (not a special mailbox); no new row in
oc_calendarobjects or oc_schedulingobjects. Manual "Maybe" on the same
invitation works (different code path: browser CalDAV PUT).
Note this is partly a server API limitation (handleIMip cannot signal
delivery failure), but Mail's one-shot semantics amplify it: a transient
server-side condition permanently burns every invitation received while
it persists. Suggested: treat non-created events as retryable, or at
minimum set imip_error so the state is inspectable.
Related: #7750, PR #12144, server PR #56924.
Mail app version
5.10
Nextcloud version
33.0.2
Mailserver or service
No response
Operating system
No response
PHP engine version
None
Nextcloud memory caching
No response
Web server
None
Database
None
Additional info
- Lingua principale
- JavaScript
- Stelle
- 1k
- Fork
- 348
- Merge medio
- 1g 22h
- PR unite (30g)
- 66
Preparare l'ambiente
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di nextcloud/mail
-
0. to triage bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno
-
1. to develop enhancement good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
nextcloud/mail#13703 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
1. to develop bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
nextcloud/mail#13472 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
1. to develop technical debt
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
0. to triage bug
Difficoltà 3/5 1-2 giorni Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di nextcloud/mail
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
solana-foundation/solana-com#2202 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 92/100
yegor256/copyrights-action#216 ·
-
[BUG] onScroll never refreshes the window container's height after a vertical-only viewport resizeAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
juliangarnier/anime#1192 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
PedestrianDynamics/pyFDS-Evac#226 ·
I maintainer di solito rispondono entro 1 giorno