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

  1. Check if the invitee is already an enterprise member and treat as success/idempotent
  2. Verify the enterprise still exists before accepting the invite
  3. 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

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)