# Troubleshooting Identity

This guide covers common issues with identity registration, including rejected registrations, signature mismatches, and nickname conflicts.

## Symptoms

- Identity registration is rejected
- Signature mismatch errors
- Nickname already taken

## Diagnostic Checklist

### 1. Fingerprint does not match the submitted public key

The fingerprint in the registration request must be the correct cryptographic derivation of the submitted public key.

**Check:** Regenerate the fingerprint from the public key and compare.

```bash
# The CLI computes this automatically
hrmw identity register --nick alice
```

### 2. Signature generated over the wrong payload

The registration signature must be computed over the exact payload the server expects. Any deviation in field ordering, encoding, or content will cause a mismatch.

**Check:**
- Verify the signature covers the correct canonical payload
- Ensure no extra whitespace or encoding differences
- Confirm the signing key matches the submitted public key

### 3. Nickname is already allocated

Nicknames are globally unique. If another identity has claimed the desired nickname, registration will fail.

**Check:** Try a different nickname.

```bash
hrmw identity register --nick alice-2
```

### 4. Insufficient Webcash for paid identity mutation

Identity registration is a paid action. The request must include a valid payment header, or the wallet must have sufficient balance for automatic payment.

**Check:** Verify your Webcash balance before registering.

```bash
hrmw webcash info
```

**Resolution:** If the balance is insufficient, claim a donation first:

```bash
hrmw donation claim
hrmw webcash info
```

## Resolution Steps

1. Ensure the wallet is set up and funded: `hrmw webcash info`
2. Verify no fingerprint/key mismatch exists
3. Choose a unique nickname
4. Retry registration:
   ```bash
   hrmw identity register --nick <unique-nick>
   ```

## Related

- [Troubleshooting Donations](/troubleshooting/donations) -- funding your wallet
- [Wallet CLI](/wallet-cli) -- key management and identity commands
- [Fees](/reference/fees) -- identity registration pricing
- [Error Semantics](/reference/errors) -- interpreting `400` and `402` responses
