# Invalid delegator

> How to resolve the InvalidDelegator error.

# Invalid delegator

The <GlossaryTerm term="Delegation Manager" /> reverts with `InvalidDelegator()` when the caller is not the <GlossaryTerm term="Delegator account">delegator</GlossaryTerm>
specified in the delegation.

This error is thrown by the `disableDelegation` and `enableDelegation` contract functions. Only the
account that created the delegation can [disable](../guides/delegation/disable-delegation.md)
or enable it.

## Solution

Verify that you're sending the transaction from the delegator's account. If the delegator is a smart account, submit a <GlossaryTerm term="User operation">user operation</GlossaryTerm> through the smart account.

```typescript

// Generate calldata to disable the delegation.
const disableCalldata = DelegationManager.encode.disableDelegation({
  delegation: signedDelegation, // Signed by delegatorSmartAccount
})

const userOpHash = await bundlerClient.sendUserOperation({
  account: delegatorSmartAccount,
  calls: [
    {
      to: delegatorSmartAccount.environment.DelegationManager,
      data: disableCalldata,
    },
  ],
})
```
