POST /tasks/{id}/move with section_id silently strips parent_id from subtasks
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 72/100
Research direction
Locate the implementation and tests for POST /api/v1/tasks/{task_id}/move, then reproduce the section_id path with a parent task and subtask. Compare it with the parent_id path and add coverage showing that moving by section preserves the parent relationship or returns an explicit warning or error.
Written by the indexing model from the issue text.
Description
Description
When moving a subtask to a section via POST /api/v1/tasks/{task_id}/move with {"section_id": "..."}, the API silently clears the task's parent_id, promoting the subtask to a top-level task. The response returns 200 with no warning that the parent relationship was removed.
Steps to reproduce
- Create a parent task and a subtask under it (
parent_idset). - Call
POST /api/v1/tasks/{subtask_id}/movewith body{"section_id": "<section_id>"}. - Fetch the task again:
parent_idis nownull.
Expected behavior
Moving a subtask between sections should preserve its parent_id, or the API should return an error/warning if detaching the parent is intentional.
Actual behavior
The subtask is silently detached and becomes a top-level task in the target section.
Additional context
- Moving with
{"parent_id": "<parent_id>"}on the same endpoint does re-attach the task, so the move endpoint clearly understands parentage. Only thesection_idvariant drops it. - The task update endpoint (
POST /api/v1/tasks/{task_id}) rejectsparent_idas an unsupported field, so the move endpoint is currently the only way to restore the relationship after it is lost. - Observed against REST API v1 on 2026-09-22.
- Dominant language
- Python
- Stars
- 250
- Forks
- 34
- Avg merge
- 3d 20h
- Merged PRs (30d)
- 2
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Doist/todoist-api-python
-
api enhancement
Difficulty 4/5 3-5 days Newbie friendliness 35/100
Doist/todoist-api-python#219 · 1 comment ·
-
api enhancement
Difficulty 3/5 1-2 days Newbie friendliness 35/100
Doist/todoist-api-python#206 · 1 comment ·
-
api enhancement
Difficulty 4/5 3-5 days Newbie friendliness 45/100
Doist/todoist-api-python#205 · 6 comments · 1 reaction ·
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 35/100
Doist/todoist-api-python#202 ·
-
bug
Difficulty 3/5 1-2 days Newbie friendliness 35/100
Doist/todoist-api-python#193 · 4 comments ·
All issues in Doist/todoist-api-python
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
stephrobert/dsoxlab#238 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
sublimehq/package_control#1780 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
nwg-piotr/nwg-displays#145 ·