> For the complete documentation index, see [llms.txt](/llms.txt).

# Invalid delegator

The Delegation Manager reverts with `InvalidDelegator()` when the caller is not the delegator specified in the delegation.

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

## Solution[​](#solution "Direct link to Solution")

Verify that you're sending the transaction from the delegator's account. If the delegator is a smart account, submit a user operation through the smart account.

```
import { DelegationManager } from '@metamask/smart-accounts-kit/contracts'

// 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,
    },
  ],
})

```
