# Oracle Troubleshooting Guide

## Common Issues

### Oracle Not Updating

**Symptoms:**
- Oracle price is stale
- No recent updates

**Diagnosis:**
1. Check transmitter status
2. Check oracle publisher service
3. Check heartbeat configuration
4. Review logs

**Resolution:**
1. Verify transmitter is active
2. Restart oracle publisher if needed
3. Check heartbeat settings
4. Review error logs

### Price Deviation Alerts

**Symptoms:**
- Price deviation alerts
- Unexpected price changes

**Diagnosis:**
1. Check data sources
2. Verify aggregation logic
3. Review recent updates
4. Check for anomalies

**Resolution:**
1. Verify data source health
2. Review aggregation logic
3. Check for data source issues
4. Adjust deviation threshold if needed

### Transmitter Failures

**Symptoms:**
- Transmitter unavailable
- Update failures

**Diagnosis:**
1. Check transmitter status
2. Review network connectivity
3. Check authentication
4. Review logs

**Resolution:**
1. Restart transmitter service
2. Verify network connectivity
3. Check authentication credentials
4. Review error logs

## Diagnostic Commands

### Check Oracle State

```bash
cast call $AGGREGATOR_ADDRESS "latestRoundData()" --rpc-url $RPC_URL
```

### Check Transmitter Status

```bash
cast call $AGGREGATOR_ADDRESS "isTransmitter(address)" $TRANSMITTER --rpc-url $RPC_URL
```

### Check Heartbeat

```bash
cast call $AGGREGATOR_ADDRESS "heartbeat()" --rpc-url $RPC_URL
```

### Check Deviation Threshold

```bash
cast call $AGGREGATOR_ADDRESS "deviationThreshold()" --rpc-url $RPC_URL
```

## Log Analysis

### Oracle Publisher Logs

```bash
kubectl logs -n besu-network -l app=oracle-publisher --tail=100
```

### CCIP Monitor Logs

```bash
kubectl logs -n besu-network -l app=ccip-monitor --tail=100
```

## Escalation

If issues persist:
1. Review incident response procedures
2. Contact on-call engineer
3. Document issue and resolution
4. Update runbooks if needed

