Project invitation endpoint crashes with SoftDeletionQuerySet.role on v1.3.1
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 59.6k
- Forks
- 5.8k
- Avg merge
- 1d 22h
- Merged PRs (30d)
- 49
Description
Summary
In Plane Community v1.3.1, creating a project invitation through the application endpoint fails with HTTP 500.
Affected route
POST /api/workspaces/{workspace_slug}/projects/{project_id}/invitations/
Observed behavior
The request fails before persisting an invitation with:
AttributeError: 'SoftDeletionQuerySet' object has no attribute 'role'
The failure is in plane/app/views/project/invite.py:60-64, where the code accesses .role on the WorkspaceMember.objects.filter(...) queryset.
Expected behavior
A workspace/project admin should be able to create a project invitation for a valid email and permitted role, returning a successful invitation response.
Reproduction
- Run Plane Community
v1.3.1. - Sign in as a workspace and project admin.
- POST a valid
emailspayload to the route above. - Observe HTTP 500 and no persisted invitation.
Safe workaround
Create a workspace invitation first, complete the invite-gated signup and workspace join, then add the existing workspace member to the project through the session-authenticated project-members endpoint with the same allowed role.
No credentials, internal addresses, or deployment-specific identifiers are included.
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
Read plane/app/views/project/invite.py:60-64 and reproduce the POST request against the listed invitations route. Inspect the WorkspaceMember.objects.filter(...) usage and its role access, then verify the endpoint returns a successful invitation response and persists the invitation for a permitted role without the AttributeError.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- django, python
- Domain
- api, backend
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 78/100