nextcloud / nextcloud/tasks

Completing a recurring parent advances recurring subtasks a second time

Open
#3,244 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
JavaScript
Stars
706
Forks
117
Avg merge
8h 50m
Merged PRs (30d)
18

Description

Steps to reproduce
  1. In the Nextcloud Tasks web UI, create a parent task with DTSTART and DUE set to today.
  2. Configure the parent to repeat weekly.
  3. Add a subtask with the same start date, due date, and weekly recurrence.
  4. Complete the subtask using its checkbox.
  5. Observe that the subtask is rescheduled by one recurrence interval.
  6. Complete the parent task using its checkbox.
Expected behavior

Completing the recurring parent should not silently complete the already-rescheduled occurrence of a recurring subtask and advance it a second time.

Possible safe behaviors would be:

  • do not cascade completion to a recurring child whose current occurrence is later than the parent's completed occurrence;
  • ask which open subtasks should be completed, as discussed in #2376; or
  • prevent completion of the parent until its current subtasks are complete, without affecting their newly generated occurrences.
Actual behaviour

Completing the child advances it once, as expected. Completing the parent immediately afterwards recursively completes the child's newly scheduled occurrence and advances the child a second time.

In a clean weekly reproduction:

  • parent: 2026-08-26 -> 2026-09-02;
  • child after completing the child: 2026-08-26 -> 2026-09-02;
  • same child after subsequently completing the parent: 2026-09-02 -> 2026-09-09.

The 2026-09-02 child occurrence is therefore skipped without a warning. Recurring sibling subtasks that were not completed individually were advanced once by completing the parent.

This was reproduced entirely in the Tasks web UI with temporary tasks. No external CalDAV client was involved.

Tasks app version

0.18.1

CalDAV-clients used

None for reproduction

Browser

Google Chrome

Client operating system

macOS

Server operating system

Official Nextcloud Docker image (nextcloud:34.0.2-apache)

Web server

Apache

Database engine version

PostgreSQL

PHP engine version

Bundled with the official Nextcloud 34.0.2 Apache image

Nextcloud version

34.0.2

Updated from an older installed version or fresh install

Updated from an older version

List of activated apps

Not relevant; reproduced using the Tasks web UI only.

Nextcloud configuration

Standard containerized installation. No custom Tasks patch.

Web server error log

No related error.

Log file

No related error.

Browser log

No related error.

Additional info

This is related to, but distinct from, #2376. That issue covers recursively completing open subtasks in general. This report covers the recurrence-specific consequence: an already completed and rescheduled child occurrence is completed again when the parent is completed, silently skipping the next occurrence.

Current workaround: use a permanent, undated, non-recurring parent as a container and never complete it; only the subtasks recur and are completed.

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

Reproduce the recurrence scenario in the Tasks web UI using the checkbox steps described, then trace the parent-completion path and its recursive handling of recurring subtasks. Verify the fix against the reported weekly dates: a child already rescheduled after completion must not be advanced again when the parent is completed.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, php
Domain
backend, frontend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
50/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.