makeplane / makeplane/plane

🐛 Bug: Work items created via the external API with inline assignees never subscribe or notify the assignees

Open Beginner friendly
#9,449 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
59.6k
Forks
5.8k
Avg merge
1d 22h
Merged PRs (30d)
49

Description

Is there an existing issue for this?
  • I have searched the existing issues
Current behavior

Creating a work item through the external REST API (POST /api/v1/workspaces/:slug/projects/:project_id/work-items/) with assignees included in the create payload ("assignees": [...]) silently drops the assignee tracking: no assignee activity is recorded, the assignees are not auto-subscribed to the work item, and consequently they get no notification for the assignment — nor for anything that happens on the work item later, since they never became subscribers.

Assigning the same user in a separate PATCH call afterwards works correctly (activity + auto-subscribe + notification).

Root cause: create_issue_activity in apps/api/plane/bgtasks/issue_activities_task.py only calls track_assignees when the payload contains assignee_ids (the web app field name):

if requested_data.get("assignee_ids") is not None:

The external API serializer uses assignees instead. track_assignees itself already reads both keys via extract_ids(requested_data, "assignee_ids", "assignees"), and the update path maps both field names to track_assignees — only the create gate misses the external API key.

Note: with #9307 the create call now dispatches notification=True, but that alone doesn't help this case — the notification fan-out iterates the created activities and the subscribers, and inline assignees on create produce neither.

Steps to reproduce
  1. POST /api/v1/workspaces/:slug/projects/:project_id/work-items/ with {"name": "Test", "assignees": ["<user-uuid>"]} using an API token.
  2. Check the work item's activity: there is no "added assignee" entry.
  3. Check issue_subscribers: the assignee was not subscribed.
  4. The assignee receives no in-app notification and no email, and won't receive any for future changes either.
Environment

Self-hosted Community Edition, reproduced on v1.3.1; the gate is unchanged on current preview.

Expected behavior

Creating a work item with inline assignees via the external API behaves like the web app: assignee activity is tracked, assignees are auto-subscribed, and they are notified.

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

Start with apps/api/plane/bgtasks/issue_activities_task.py and trace create_issue_activity from POST /api/v1/workspaces/:slug/projects/:project_id/work-items/. Compare the create gate with the existing update path and track_assignees handling for assignees. Done means inline external-API assignees produce activity, subscriptions, and notifications like web-app assignments.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
api, backend
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
84/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.