Problem: Terraform is not installed or not in PATH
Solution:
# Verify Terraform installation
terraform version
# If not installed, install Terraform
# macOS
brew install terraform
# Ubuntu/Debian
wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install terraform
Problem: Graphviz is not installed
Solution:
# macOS
brew install graphviz
# Ubuntu/Debian
sudo apt-get update
sudo apt-get install graphviz
# Windows
# Download from https://graphviz.org/download/
# Verify installation
dot -V
Problem: Terraform version is too old
Solution:
# Check current version
terraform version
# TerraVision requires Terraform v1.0.0 or higher
# Upgrade Terraform
brew upgrade terraform # macOS
# Or download latest from https://developer.hashicorp.com/terraform/downloads
Problem: Python 3.10+ not available
Solution:
# Check Python version
python --version
# Install Python 3.10+
# macOS
brew install python@3.10
# Ubuntu
sudo apt-get install python3.10
# Use specific Python version
python3.10 -m pip install -r requirements.txt
Problem: TerraVision conflicts with Terraform Enterprise remote backend
Explanation: TerraVision automatically forces local backend execution to generate complete infrastructure diagrams (not just state deltas). This is intentional and required for accurate visualization.
How it works:
override.tf to your source directorybackend "local" configurationSolution: This is expected behavior - no action needed. TerraVision will:
Note: If you see override.tf in your directory after running TerraVision, you can safely delete it or add to .gitignore.
Problem: Private Terraform Enterprise module registry requires authentication
Solution:
# Set TFE token for private module access
export TFE_TOKEN="your-tfe-token"
# Generate token from TFE UI:
# Settings > Tokens > Create an API token
# Or use .terraformrc credentials
cat ~/.terraformrc
# credentials "app.terraform.io" {
# token = "your-token"
# }
Note: TFE_TOKEN is only needed for accessing private module registries, not for basic diagram generation.
Problem: TerraVision can’t find Terraform resources
Checklist:
cd /path/to/terraform
terraform init
terraform validate
terraform plan
.tf files:
ls -la /path/to/terraform/*.tf
terraform init
terravision draw --source /path/to/terraform --debug
Problem: Terraform modules can’t be downloaded
Solution:
# Clear Terraform cache
rm -rf .terraform/
# Clear TerraVision cache
rm -rf ~/.terravision/
# Re-initialize
terraform init
# Try again
terravision draw --source /path/to/terraform
Problem: Insufficient permissions
Solution:
# Make terravision.py executable
chmod +x terravision.py
# If pip install fails, use --user flag
pip install --user -r requirements.txt
# Or use virtual environment
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
Problem: You passed a binary .tfplan file instead of JSON
Solution: Convert the binary plan to JSON first:
terraform show -json tfplan.bin > plan.json
terravision draw --planfile plan.json --graphfile graph.dot --source ./terraform
Problem: The JSON file is not a valid Terraform plan output
Solution: Ensure you use terraform show -json to export the plan:
terraform plan -out=tfplan.bin
terraform show -json tfplan.bin > plan.json
Do not use terraform plan -json (streaming output) — use terraform show -json on a saved plan file.
Problem: The Terraform plan has no resources to create, update, or destroy
Solution: Verify that terraform plan shows resources:
terraform plan
# Should show resources to create/update/destroy
If no resources appear, check your Terraform code and variable files.
Problem: You must provide all three options together
Solution: Always provide --planfile, --graphfile, and --source:
terravision draw \
--planfile plan.json \
--graphfile graph.dot \
--source ./terraform
Problem: These options are irrelevant when using pre-generated plan files
Explanation: When you provide a --planfile, TerraVision skips Terraform execution entirely. The workspace and variable file were already applied when the plan was originally generated. This warning is informational — your diagram will still be generated correctly.
Problem: Diagram is generated but shows no resources or is incomplete
Checklist:
terraform plan
# Use appropriate variable files
terravision draw --source . --varfile prod.tfvars
# Use correct workspace
terravision draw --source . --workspace production
terravision draw --source . --debug
# Check tfdata.json for parsed resources
Problem: Resources are overlapping or poorly positioned
Solutions:
terravision draw --source . --simplified
terravision draw --source . --format svg
remove:
Problem: Expected connections between resources are not shown
Solutions:
terraform show
# terravision.yml
connect:
aws_lambda_function.api:
- aws_rds_cluster.db: "Database queries"
terravision draw --source . --debug
Problem: Ollama server is not running or not accessible
Solution:
# Check if Ollama is running
curl http://localhost:11434/api/tags
# If not running, start Ollama
ollama serve
# If port is in use, kill existing process
lsof -ti:11434 | xargs kill -9
ollama serve
# Verify llama3 model is installed
ollama list
ollama pull llama3
Problem: Model unloads too quickly
Solution:
# Extend keep-alive time (default is 5 minutes)
export OLLAMA_KEEP_ALIVE=1h
# Restart Ollama
ollama serve
Problem: AWS Bedrock API is not configured or accessible
Solution:
modules/cloud_config.py:
BEDROCK_API_ENDPOINT = "https://your-api-id.execute-api.us-east-1.amazonaws.com/prod/chat"
cd ai-backend-terraform
terraform output api_endpoint
curl -X POST https://your-api-endpoint/chat \
-H "Content-Type: application/json" \
-d '{"message": "test"}'
Problem: TerraVision takes too long to generate diagrams
Solutions:
terravision graphdata --source . --outfile graph.json
terravision draw --source graph.json --format svg
terravision draw --source graph.json --format png
terravision draw --source . --simplified
terravision draw --source . --workspace production
rm -rf ~/.terravision/
Problem: Generated diagrams are too large
Solutions:
terravision draw --source . --format svg
terravision draw --source . --simplified
Problem: Annotations in terravision.yml are ignored
Checklist:
terravision.yml# Use online YAML validator or
python -c "import yaml; yaml.safe_load(open('terravision.yml'))"
terravision graphdata --source . --show_services
terravision draw --source . --debug
Problem: Wildcard patterns don’t match expected resources
Solution:
# List all resources to verify patterns
terravision graphdata --source . --outfile resources.json
cat resources.json | jq 'keys'
# Test specific patterns
grep "aws_lambda" resources.json
Problem: Can’t access Git repository
Solutions:
git clone https://github.com/user/repo.git
# For private repos, use SSH or token
git clone git@github.com:user/repo.git
terravision draw --source https://github.com/user/repo.git//terraform/aws
Problem: Terraform modules in Git can’t be accessed
Solution:
# Ensure Git credentials are configured
git config --global credential.helper store
# Or use SSH keys
ssh-add ~/.ssh/id_rsa
Enable debug mode for detailed troubleshooting:
terravision draw --source /path/to/terraform --debug
Debug mode provides:
Analyze debug output:
# Check parsed resources
cat tfdata.json | jq '.graphdict | keys'
# Check metadata
cat tfdata.json | jq '.meta_data'
# Check connections
cat tfdata.json | jq '.graphdict["aws_lambda_function.api"]'
terravision --help
terravision draw --help
terravision graphdata --help
terravision --versionpython --versionterraform versionterravision draw --debug# Clear all caches
rm -rf ~/.terravision/
rm -rf .terraform/
rm -f tfdata.json
# Reinstall dependencies
pip install --force-reinstall -r requirements.txt
# Reinitialize Terraform
terraform init
# Try again
terravision draw --source . --debug
# Check all dependencies
terraform version # Should be v1.0.0+
python --version # Should be 3.10+
dot -V # Should show Graphviz version
git --version # Should show Git version
# Test TerraVision
terravision --version
terravision --help
If you’ve tried everything and still have problems:
terravision draw --source . --debug > debug.log 2>&1
Create minimal example that reproduces the issue
We’re here to help! 🚀