Troubleshooting
Quick Diagnosis
# Check container status
docker ps | grep encrypt-data
# Check recent logs
docker logs encrypt-data --tail 50 2>&1 | grep -i error
# Test encryption endpoint
curl -X POST http://localhost:8080/transactions \
-H "Content-Type: application/json" \
-d '{"card_number": "4532123456789010", "email": "[email protected]"}'
Common Issues
Encryption key errors
Cause: Key not set or wrong format
# Check if key environment variable is set
echo ${ENCRYPTION_KEY:0:10}...
Fix: Ensure key is proper length and format:
# Generate a valid 256-bit key
export ENCRYPTION_KEY=$(openssl rand -base64 32)
Fields not being encrypted
Cause: Field names don't match config or fields are nested
# Check logs for field names
docker logs encrypt-data --tail 20 2>&1 | grep -E "(card|email|ssn)"
Fix: Handle nested fields explicitly:
- mapping: |
root.payment.card_number = this.payment.card_number.encrypt_aes("${ENCRYPTION_KEY}")
Decryption fails
Cause: Wrong key version or corrupted ciphertext
Fix: Always store key version with encrypted data:
root.card_encrypted = {
"ciphertext": this.card_number.encrypt_aes("${KEY}"),
"key_version": env("KEY_VERSION")
}
Performance degradation
Cause: Encrypting too many fields or large payloads
docker stats encrypt-data --no-stream
Fix: Only encrypt truly sensitive fields, batch small messages:
batching:
count: 100
period: 1s
Still stuck?
- Add debug logging:
logger: {level: DEBUG} - Check the Complete Pipeline for reference config
- Review Encryption Patterns for advanced patterns