You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I confirm that I am using English to submit this report, otherwise it will be closed.
【中文用户 & Non English User】请使用英语提交,否则会被关闭 :)
Please do not modify this template :) and fill in all the required fields.
Dify version
1.15.0
Cloud or Self Hosted
Self Hosted (Docker)
Steps to reproduce
Note
This has not been fully verified in a production environment. It was discovered while investigating test behavior and reviewing the source code.
Create a workspace (Workspace A) with an owner account (Account A). The owner account
is created with ACTIVE status.
Log in as a different account (Account B) that is an admin or owner of another
workspace (Workspace B).
Go to Preferences > Members and invite Account A by email.
The invitation appears to succeed and an invitation URL is returned.
Check the member list of Workspace B.
✔️ Expected Behavior
The invited account appears in the member list with pending status, and the user can join the workspace by visiting the invitation URL.
❌ Actual Behavior
The invited account does not appear in the member list at all — not even as pending.
The invitation URL is technically valid, but unless the user visits it manually, the workspace membership is never established.
Additional Information
In services/account_service.py, RegisterService.invite_new_member has the following
condition for existing accounts:
When the invitee already has an ACTIVE account (e.g. a workspace owner) and RBAC_ENABLED is False (the default), this condition evaluates to False and create_tenant_member is never called.
As a result, no TenantAccountJoin record is created, so the user does not appear in the member list.
The API still returns result: "success" and generates an invitation token, making the failure invisible to the caller.
Self Checks
Dify version
1.15.0
Cloud or Self Hosted
Self Hosted (Docker)
Steps to reproduce
Note
This has not been fully verified in a production environment. It was discovered while investigating test behavior and reviewing the source code.
is created with
ACTIVEstatus.workspace (Workspace B).
✔️ Expected Behavior
The invited account appears in the member list with
pendingstatus, and the user can join the workspace by visiting the invitation URL.❌ Actual Behavior
The invited account does not appear in the member list at all — not even as
pending.The invitation URL is technically valid, but unless the user visits it manually, the workspace membership is never established.
Additional Information
In
services/account_service.py,RegisterService.invite_new_memberhas the followingcondition for existing accounts:
When the invitee already has an
ACTIVEaccount (e.g. a workspace owner) andRBAC_ENABLEDisFalse(the default), this condition evaluates toFalseandcreate_tenant_memberis never called.As a result, no
TenantAccountJoinrecord is created, so the user does not appear in the member list.The API still returns
result: "success"and generates an invitation token, making the failure invisible to the caller.