Tencent/WeKnora · error
invite_code_validity_days must be 0, 1, 7, or 30
Error message
invite_code_validity_days must be 0, 1, 7, or 30
What it means
Sentinel ErrInvalidValidityDays returned by org create/update when req.InviteCodeValidityDays is set to a value outside the allowed set {0,1,7,30} (checked against ValidInviteCodeValidityDays). Pure input validation of the settings field.
Source
Thrown at internal/application/service/organization.go:35
// Default invite code validity in days; allowed values: 0 (never), 1, 7, 30
const DefaultInviteCodeValidityDays = 7
// DefaultMemberLimit is the default max tenant-members per organization (0 = unlimited)
const DefaultMemberLimit = 200
// ValidInviteCodeValidityDays are the allowed values for invite_code_validity_days
var ValidInviteCodeValidityDays = map[int]bool{0: true, 1: true, 7: true, 30: true}
var (
ErrOrgNotFound = errors.New("organization not found")
ErrOrgPermissionDenied = errors.New("permission denied for this organization")
ErrCannotRemoveOwner = errors.New("cannot remove organization owner tenant")
ErrCannotChangeOwnerRole = errors.New("cannot change organization owner tenant role")
ErrTenantNotInOrg = errors.New("tenant is not a member of this organization")
ErrInvalidRole = errors.New("invalid role")
ErrInviteCodeExpired = errors.New("invite code has expired")
ErrInvalidValidityDays = errors.New("invite_code_validity_days must be 0, 1, 7, or 30")
ErrOrgMemberLimitReached = errors.New("organization member limit reached")
ErrOrgMemberLimitTooLow = errors.New("member limit cannot be lower than current member count")
)
// organizationService implements OrganizationService.
//
// Plan 3 of #1303: a "member" of an org is a tenant, identified by
// (org_id, tenant_id). The user_id of the requester is recorded only as
// the representative for UI/audit; permission decisions ride on the
// tenant's role inside the org.
type organizationService struct {
orgRepo interfaces.OrganizationRepository
userRepo interfaces.UserRepository
shareRepo interfaces.KBShareRepository
agentShareRepo interfaces.AgentShareRepository
}
// NewOrganizationService creates a new organization serviceView on GitHub (pinned to 988cbb0330)
Solutions
- Send 0 (never), 1, 7, or 30 days for invite_code_validity_days
- Fix client-side validation to restrict the field to allowed values
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at internal/application/service/organization.go:35 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of Tencent/WeKnora@988cbb0330 (2026-09-02).
Data as JSON: /api/errors/6c3e68d5a92590d1.
Report an issue: GitHub.