> Feedback: If these docs are stale, missing, or confusing, post sanitized feedback to `https://docs.tempo.xyz/api/feedback` with `source: "mcp"`, a short `message`, and any relevant `toolName`, `relatedResource`, or `client`.
# Troubleshooting and FAQ

## My node is not proposing blocks

Once your node is proposing blocks, it will start emitting logs like these:

```
INFO handle_propose{epoch=18 view=387213 parent.view=387212 parent.digest=0x43885416b4a7ae7550c615ad4dc702045cd26540b78fa2bd75abdcbfbef02d9d}: tempo_commonware_node::consensus::application::actor: constructed proposal proposal.digest=0x6baa8fa813beea491cf598024d8b31cb2927e7ba1b92a29899a795dbafd682c6 proposal.height=5733680
```

If you do not see logs like these:

* Check that your validator is part of the active set, and is both [a player and a dealer](/docs/guide/node/validator-status).
* Check that your node is synced up to the [latest block height](https://explorer.tempo.xyz/).
* Check that your outgoing IP address matches the one whitelisted on the validator smart contract:

::::code-group

```bash [Mainnet]
tempo consensus validators-info --rpc-url https://rpc.tempo.xyz
```

```bash [Testnet]
tempo consensus validators-info --rpc-url https://rpc.testnet.tempo.xyz
```

::::

## My node is not connecting to peers

If `consensus_engine_peer_manager_peers` remains at `0` for more than 3 hours after your validator was added on-chain:

* Verify your firewall allows inbound connections on the ingress port you registered.
* Verify your egress IP matches the one registered on-chain — check with `tempo consensus validator <pubkey> --rpc-url https://rpc.tempo.xyz`.
* If you have reset your validator's data without rotating to a new identity, your node may have been blocked due to double-signing. In that case, [reach out to the Tempo team](https://tempo.xyz/contact) to coordinate a new validator identity.

## My node's DKG metrics are not increasing

If `how_often_dealer` and `how_often_player` are not increasing after 6 hours:

* Confirm your node is connected to peers (see above).
* Check that your validator has progressed past the [Syncer state](/docs/guide/node/validator-status#state-transitions) — it takes at least one full epoch (~3 hours) after on-chain addition before your node participates in DKG.
* Check DKG failure count: if `consensus_engine_dkg_manager_ceremony_failures_total` is increasing, your node may be failing to complete ceremonies. Enable debug logging for more detail:
  ```bash
  RUST_LOG=info,tempo_commonware_node::dkg=debug
  ```

## My node is rejecting blocks or missing proposals

If your node logs block validation errors (e.g. "block timestamp is in the future") or you notice missed proposals, a potential root cause is **clock drift**. Check whether `parent_ahead_of_local_time` is increasing in your metrics — if so, your system clock is behind the network.

To fix:

1. **Check your current sync status:**
   ```bash
   timedatectl status
   ```
   Confirm `System clock synchronized: yes` and `NTP service: active`.

2. **Install chrony** (if not already installed):
   ```bash
   sudo apt install chrony
   sudo systemctl enable --now chronyd
   ```

3. **Verify the offset is acceptable:**
   ```bash
   chronyc tracking
   ```
   The **System time** offset should be under a few milliseconds.

4. **Restart your node** after fixing the clock to clear any cached invalid block state.

See [Time Synchronization](/docs/guide/node/system-requirements#time-synchronization) for full setup details.

## I accidentally deleted my consensus data directory

If you deleted `<datadir>/consensus`, your signing share is lost but will be [automatically recovered](/docs/guide/node/validator-keys#signing-share-recovery) from the network when the node restarts. Your node will re-join the committee after the next successful DKG ceremony.

:::danger
Do **not** delete the entire data directory and attempt to re-sync with the same signing key. This risks double-signing and will require [rotating to a new identity](/docs/guide/node/validator-lifecycle#resetting-your-validators-data).
:::

## How long does it take for my validator to become active?

After on-chain registration, your validator follows the [state transition timeline](/docs/guide/node/validator-status#state-transitions):

1. **Epoch E** (immediate) — registered on the p2p network, starts syncing.
2. **Epoch E+1** (~3 hours) — becomes a player, receives signing shares.
3. **Epoch E+2** (~6 hours) — becomes a dealer/validator, can propose and vote once synced.

In most cases, your validator will be fully active within 6 hours.

## How long does it take for my validator to exit?

After deactivation, your validator is phased out over two epochs:

1. **Epoch E** — deactivation transaction submitted. Validator remains fully active.
2. **Epoch E+1** (~3 hours) — still a dealer but no longer a player. In the process of being removed.
3. **Epoch E+2** (~6 hours) — fully out of the committee (assuming no DKG failures).

Keep your node running until `in_committee: false` — check with [validator lookup](/docs/guide/node/validator-status#look-up-your-validator).

## Can I register my validator without the Tempo team?

No — the active validator set is currently permissioned. Only the contract owner can add validators on-chain. To get started, [contact the Tempo team](https://tempo.xyz/contact).

The onboarding process:

1. **You** generate your signing key and registration signature ([Steps 1–2](/docs/guide/node/validator-setup#initial-registration)).
2. **You** provide the required values to the Tempo team ([Step 3](/docs/guide/node/validator-setup#step-3-submit-registration-details)).
3. **The Tempo team** adds your validator on-chain.
4. **You** download a snapshot and start your node ([Running the validator](/docs/guide/node/validator-setup#running-the-validator)).

## What can I do without the Tempo team?

Once your validator is registered, most operations are self-service:

* [Rotate your signing key](/docs/guide/node/validator-lifecycle#rotate-validator-identity)
* [Update IP addresses](/docs/guide/node/validator-lifecycle#update-ip-addresses)
* [Update your fee recipient](/docs/guide/node/validator-lifecycle#update-the-fee-recipient)
* [Transfer validator ownership](/docs/guide/node/validator-lifecycle#transfer-validator-ownership)
* [Deactivate your validator](/docs/guide/node/validator-lifecycle#deactivate-your-validator)

Only **initial registration** and **reactivation** require the Tempo team.

## How do I check which version I'm running?

```bash
tempo --version
```

Compare with the latest release on the [network upgrades](/docs/guide/node/network-upgrades) page to ensure you're on a supported version.
