ruvnet/ruflo · error · TeammateError
DELEGATION_DENIED
DELEGATION_DENIED
Error message
No active delegation from ${fromId} to ${toId} What it means
revokeDelegation() searched team.delegations for an entry with matching fromId/toId that is still active and found none. The delegation was already revoked, never existed, or the ids are wrong — there is no active grant to revoke.
Source
Thrown at v3/plugins/teammate-plugin/src/teammate-bridge.ts:1462
this.emit('delegate:granted', { team: teamName, from: fromId, to: toId, permissions });
return delegation;
}
/**
* Revoke delegation from a teammate
*/
async revokeDelegation(teamName: string, fromId: string, toId: string): Promise<void> {
this.ensureAvailable();
const team = this.getTeamOrThrow(teamName);
const delegationIndex = team.delegations.findIndex(
d => d.fromId === fromId && d.toId === toId && d.active
);
if (delegationIndex === -1) {
throw new TeammateError(
`No active delegation from ${fromId} to ${toId}`,
TeammateErrorCode.DELEGATION_DENIED,
teamName
);
}
team.delegations[delegationIndex].active = false;
// Update target teammate
const toTeammate = team.teammates.find(t => t.id === toId);
if (toTeammate) {
const delegation = team.delegations[delegationIndex];
toTeammate.delegatedPermissions = (toTeammate.delegatedPermissions ?? [])
.filter(p => !delegation.permissions.includes(p));
if (toTeammate.delegatedPermissions.length === 0) {
toTeammate.delegatedFrom = undefined;
}View on GitHub (pinned to fa13ee4ad6)
Solutions
- Verify a delegation exists between the two agents before revoking/acting on it; list active delegations first.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at v3/plugins/teammate-plugin/src/teammate-bridge.ts:1462 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/1fcd68fc94ba1184.
Report an issue: GitHub.