ruvnet/ruflo · error
ALREADY_CLAIMED
ALREADY_CLAIMED
Error message
Issue ${issueId} is already claimed by ${existingClaim.claimant.name} What it means
claim() found an existing claim for the issue with status 'active', so another claimant already holds it. Concurrency guard: only one active claim per issue is allowed; the current claimant's name is returned so the caller knows who owns the work.
Source
Thrown at v3/@claude-flow/claims/src/application/claim-service.ts:178
// Validate issue exists
const issue = await this.issueRepository.findById(issueId);
if (!issue) {
return {
success: false,
error: {
code: 'ISSUE_NOT_FOUND',
message: `Issue ${issueId} not found`,
},
};
}
// Check if already claimed
const existingClaim = await this.claimRepository.findByIssueId(issueId);
if (existingClaim && existingClaim.status === 'active') {
return {
success: false,
error: {
code: 'ALREADY_CLAIMED',
message: `Issue ${issueId} is already claimed by ${existingClaim.claimant.name}`,
details: { currentClaimant: existingClaim.claimant },
},
};
}
// Check claimant's current workload
const currentClaimCount = await this.claimRepository.countByClaimant(claimant.id);
const maxClaims = claimant.maxConcurrentClaims ?? 5;
if (currentClaimCount >= maxClaims) {
return {
success: false,
error: {
code: 'MAX_CLAIMS_EXCEEDED',
message: `Claimant ${claimant.name} has reached maximum concurrent claims (${maxClaims})`,
details: { currentClaims: currentClaimCount, maxClaims },
},
};View on GitHub (pinned to fa13ee4ad6)
Solutions
- Check the current claim status before claiming; skip or release the existing claim if it belongs to a stale claimant.
- Implement claim takeover/renewal semantics so a conflicting claim surfaces as a recoverable state instead of a hard failure.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at v3/@claude-flow/claims/src/application/claim-service.ts:178 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of ruvnet/ruflo@fa13ee4ad6 (2026-08-18).
Data as JSON: /api/errors/9d7e81c8d752ec13.
Report an issue: GitHub.