iflytek/astron-agent · error · BusinessException
INVITE_ADD_TEAM_USER_FAILED
INVITE_ADD_TEAM_USER_FAILED
Error message
INVITE_ADD_TEAM_USER_FAILED
What it means
INVITE_ADD_TEAM_USER_FAILED is thrown when accepting an ENTERPRISE-type invitation and adding the invitee to the enterprise (as GOVERNOR for admin invites, STAFF otherwise) fails. The invite cannot be completed because the enterprise membership write returned false.
Solutions
- Check if the invitee is already an enterprise member and treat as success/idempotent
- Verify the enterprise still exists before accepting the invite
- Inspect enterpriseUserService for the underlying failure and re-run acceptance
Example fix
// before
if (!enterpriseUserService.addEnterpriseUser(eid, uid, role)) {
throw new BusinessException(ResponseEnum.INVITE_ADD_TEAM_USER_FAILED);
}
// after
if (!enterpriseUserService.isEnterpriseUser(eid, uid)
&& !enterpriseUserService.addEnterpriseUser(eid, uid, role)) {
throw new BusinessException(ResponseEnum.INVITE_ADD_TEAM_USER_FAILED);
} Defensive patterns
Strategy: validation
Validate before calling
if (enterpriseUserService.getEnterpriseUser(inviteRecord.getEnterpriseId(), inviteRecord.getInviteeUid()) != null) { return ApiResult.success(); } // already a member Try / catch
try { acceptInvite(inviteId); } catch (BusinessException e) { if ("INVITE_ADD_TEAM_USER_FAILED".equals(e.getMessage())) { /* mark invite accepted-if-member; verify enterprise still exists */ } } Prevention
- Mark invite records consumed to prevent double acceptance
- Validate the enterprise exists and is active before accepting
- Make membership adds idempotent
When it happens
Trigger: Calling acceptInvite for an enterprise invitation where enterpriseUserService.addEnterpriseUser returns false — invitee already a member, enterprise deleted, or membership write failed.
Common situations: User clicking an invite link twice; the enterprise was disbanded before acceptance; admin invitee already exists with a different role; DB errors on the enterprise-user table.
Related errors
AI-assisted analysis of iflytek/astron-agent@5e758547a8 (2026-09-12).
Data as JSON: /api/errors/521b9ca72268bd32.
Report an issue: GitHub.
Appendix: source
Thrown at console/backend/hub/src/main/java/com/iflytek/astron/console/hub/service/space/impl/InviteRecordBizServiceImpl.java:264
*/
@Override
@Transactional
public ApiResult<String> acceptInvite(Long inviteId) {
InviteRecord inviteRecord = inviteRecordService.getById(inviteId);
ApiResult<String> responseMsg = checkInviteRecord(inviteRecord);
if (responseMsg != null) {
return responseMsg;
}
// Update invitation record
inviteRecord.setStatus(InviteRecordStatusEnum.ACCEPT.getCode());
if (!inviteRecordService.updateById(inviteRecord)) {
return ApiResult.error(ResponseEnum.OPERATION_FAILED);
}
// For enterprise invitation, add enterprise user
if (InviteRecordTypeEnum.ENTERPRISE.getCode().equals(inviteRecord.getType())) {
if (!enterpriseUserService.addEnterpriseUser(inviteRecord.getEnterpriseId(), inviteRecord.getInviteeUid(),
Objects.equals(InviteRecordRoleEnum.ADMIN.getCode(), inviteRecord.getRole()) ? EnterpriseRoleEnum.GOVERNOR : EnterpriseRoleEnum.STAFF)) {
throw new BusinessException(ResponseEnum.INVITE_ADD_TEAM_USER_FAILED);
}
// Add space user
} else if (InviteRecordTypeEnum.SPACE.getCode().equals(inviteRecord.getType())) {
if (!spaceUserService.addSpaceUser(inviteRecord.getSpaceId(), inviteRecord.getInviteeUid(),
Objects.equals(InviteRecordRoleEnum.ADMIN.getCode(), inviteRecord.getRole()) ? SpaceRoleEnum.ADMIN : SpaceRoleEnum.MEMBER)) {
throw new BusinessException(ResponseEnum.SPACE_USER_ADD_FAILED);
}
Space space = spaceService.getSpaceById(inviteRecord.getSpaceId());
// For enterprise space invitation, if not joined team, add user
if (space.getEnterpriseId() != null) {
if (!enterpriseUserService.addEnterpriseUser(space.getEnterpriseId(), inviteRecord.getInviteeUid(),
Objects.equals(InviteRecordRoleEnum.ADMIN.getCode(), inviteRecord.getRole()) ? EnterpriseRoleEnum.GOVERNOR : EnterpriseRoleEnum.STAFF)) {
throw new BusinessException(ResponseEnum.INVITE_ADD_TEAM_USER_FAILED);
}
}
} else {
throw new BusinessException(ResponseEnum.INVITE_UNSUPPORTED_TYPE);
}View on GitHub (pinned to 5e758547a8)