Proactively detect and diagnose DAPR runtime issues based on error patterns, log analysis, and common misconfigurations...
This skill proactively detects DAPR issues and provides immediate solutions based on error patterns and common problems.
Claude automatically uses this skill when:
Pattern: connection refused, dial tcp, sidecar not ready
Error: connection refused to localhost:3500
Diagnosis:
Solutions:
dapr listcurl http://localhost:3500/v1.0/healthzdapr run --app-id myapp -- python main.pykubectl get pod -o yaml | grep daprPattern: 404 Not Found, app-id not found, method not found
Error: ERR_DIRECT_INVOKE: app id order-service not found
Diagnosis:
Solutions:
dapr listPattern: state store not found, failed to save state, ERR_STATE
Error: state store statestore is not found
Diagnosis:
Solutions:
ls ./components/Pattern: pubsub not found, failed to publish, subscription error
Error: pubsub pubsub is not configured
Diagnosis:
Solutions:
{"status": "SUCCESS"}Pattern: failed to init component, component error, invalid configuration
Error: error initializing component statestore: connection refused
Diagnosis:
Solutions:
docker run -d -p 6379:6379 redisPattern: workflow not found, activity failed, workflow timeout
Error: workflow order_workflow not found
Diagnosis:
Solutions:
wf_runtime.start() is called@wf_runtime.workflowdapr --version
dapr status
dapr list
# Local
dapr logs --app-id myapp
# Kubernetes
kubectl logs deployment/myapp -c daprd
curl http://localhost:3500/v1.0/healthz
curl http://localhost:3500/v1.0/metadata
curl http://localhost:3500/v1.0/invoke/target-app/method/health
# Save state
curl -X POST http://localhost:3500/v1.0/state/statestore \
-H "Content-Type: application/json" \
-d '[{"key":"test","value":"hello"}]'
# Get state
curl http://localhost:3500/v1.0/state/statestore/test
curl -X POST http://localhost:3500/v1.0/publish/pubsub/test-topic \
-H "Content-Type: application/json" \
-d '{"message":"test"}'
| Error | Quick Fix |
|---|---|
| Sidecar not running | dapr run --app-id myapp -- python main.py |
| Redis not running | docker run -d -p 6379:6379 redis |
| Component not found | Check component file in ./components/ |
| App-id not found | Verify target app is running with dapr list |
| 404 on invoke | Check method path and HTTP verb |
| Pub/sub not delivering | Return {"status": "SUCCESS"} from handler |
| Secret not found | Configure secret store component |
| State save failed | Check state store backend is running |
| Workflow not starting | Call wf_runtime.start() |
Run this checklist when troubleshooting:
[ ] DAPR CLI installed (dapr --version)
[ ] DAPR runtime initialized (dapr init)
[ ] Docker running (for local mode)
[ ] Application started with dapr run
[ ] Components in ./components/ directory
[ ] Component names match code references
[ ] Backend services running (Redis, etc.)
[ ] Correct ports configured
[ ] No firewall blocking localhost
[ ] Secrets configured if needed
# Successful startup
"dapr initialized. Status: Running"
# Component loaded
"component [statestore] loaded"
# Sidecar ready
"dapr sidecar is ready"
# Connection established
"connected to placement service"
# Errors to watch for
"error initializing component"
"failed to connect"
"connection refused"
"unauthorized"
"not found"
# Local development
dapr run --log-level debug --app-id myapp -- python main.py
# Kubernetes
kubectl set env deployment/myapp DAPR_LOG_LEVEL=debug
This troubleshooter integrates with:
config-validator - Validates component YAML syntaxdapr-debugger agent - Deep debugging assistanceazure-deployer agent - Azure-specific troubleshooting