Proactively detect and diagnose DAPR runtime issues based on error patterns, log analysis, and common misconfigurations. Provides immediate solutions for service invocation failures, state management issues, pub/sub problems, and deployment errors. Use when encountering DAPR errors or unexpected behavior.
This skill is limited to using the following tools:
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