🐛 Bug: Work items created via the external API with inline assignees never subscribe or notify the assignees
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
POST /api/v1/workspaces/:slug/projects/:project_id/work-items/with{"name": "Test", "assignees": ["<user-uuid>"]}using an API token.- Check the work item's activity: there is no "added assignee" entry.
- Check
issue_subscribers: the assignee was not subscribed. - 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
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.
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