Back to list
Sahib-Sawhney-WH

dapr-troubleshooter

by Sahib-Sawhney-WH

Claude Plugin Marketplace for enterprise development using specific services.

2🍴 1📅 Jan 20, 2026

SKILL.md


name: dapr-troubleshooter description: 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. allowed-tools: Read, Grep, Glob, Bash

DAPR Troubleshooter

This skill proactively detects DAPR issues and provides immediate solutions based on error patterns and common problems.

When to Use

Claude automatically uses this skill when:

  • Error messages contain DAPR-related keywords
  • Application fails to connect to DAPR sidecar
  • Service invocation returns errors
  • State or pub/sub operations fail
  • Deployment or startup issues occur

Error Pattern Detection

Connection Errors

Pattern: connection refused, dial tcp, sidecar not ready

Error: connection refused to localhost:3500

Diagnosis:

  • DAPR sidecar is not running
  • Wrong DAPR port configured
  • Application started before sidecar

Solutions:

  1. Verify DAPR is running: dapr list
  2. Check sidecar health: curl http://localhost:3500/v1.0/healthz
  3. Start with DAPR: dapr run --app-id myapp -- python main.py
  4. In Kubernetes, check sidecar injection: kubectl get pod -o yaml | grep dapr

Service Invocation Errors

Pattern: 404 Not Found, app-id not found, method not found

Error: ERR_DIRECT_INVOKE: app id order-service not found

Diagnosis:

  • Target service not running
  • App-id mismatch (case-sensitive)
  • Service not registered with DAPR

Solutions:

  1. Verify target is running: dapr list
  2. Check exact app-id (case-sensitive)
  3. Ensure target has DAPR sidecar enabled
  4. Check network connectivity between services

State Store Errors

Pattern: state store not found, failed to save state, ERR_STATE

Error: state store statestore is not found

Diagnosis:

  • State store component not configured
  • Component name mismatch
  • Backend service unavailable
  • Authentication failure

Solutions:

  1. Check component exists: ls ./components/
  2. Verify component name matches code
  3. Test backend connection (Redis, Cosmos, etc.)
  4. Check secrets are accessible

Pub/Sub Errors

Pattern: pubsub not found, failed to publish, subscription error

Error: pubsub pubsub is not configured

Diagnosis:

  • Pub/sub component not configured
  • Topic name mismatch
  • Subscriber endpoint not registered
  • Message handler error

Solutions:

  1. Verify pubsub component exists
  2. Check topic names match exactly
  3. Ensure subscription route is registered
  4. Return proper response from handler: {"status": "SUCCESS"}

Component Configuration Errors

Pattern: failed to init component, component error, invalid configuration

Error: error initializing component statestore: connection refused

Diagnosis:

  • Invalid component YAML
  • Backend service not running
  • Wrong credentials/connection string
  • Missing required metadata

Solutions:

  1. Validate YAML syntax
  2. Start backend (Redis, etc.): docker run -d -p 6379:6379 redis
  3. Check connection string/credentials
  4. Verify all required metadata fields

Workflow Errors

Pattern: workflow not found, activity failed, workflow timeout

Error: workflow order_workflow not found

Diagnosis:

  • Workflow runtime not started
  • Workflow not registered
  • Activity not registered
  • State store not configured

Solutions:

  1. Ensure wf_runtime.start() is called
  2. Check workflow is decorated with @wf_runtime.workflow
  3. Verify activities are registered
  4. Configure state store for workflow persistence

Diagnostic Commands

Check DAPR Installation

dapr --version
dapr status

List Running Applications

dapr list

View DAPR Logs

# Local
dapr logs --app-id myapp

# Kubernetes
kubectl logs deployment/myapp -c daprd

Test Sidecar Health

curl http://localhost:3500/v1.0/healthz

Check Loaded Components

curl http://localhost:3500/v1.0/metadata

Test Service Invocation

curl http://localhost:3500/v1.0/invoke/target-app/method/health

Test State Store

# 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

Test Pub/Sub

curl -X POST http://localhost:3500/v1.0/publish/pubsub/test-topic \
  -H "Content-Type: application/json" \
  -d '{"message":"test"}'

Common Fixes Quick Reference

ErrorQuick Fix
Sidecar not runningdapr run --app-id myapp -- python main.py
Redis not runningdocker run -d -p 6379:6379 redis
Component not foundCheck component file in ./components/
App-id not foundVerify target app is running with dapr list
404 on invokeCheck method path and HTTP verb
Pub/sub not deliveringReturn {"status": "SUCCESS"} from handler
Secret not foundConfigure secret store component
State save failedCheck state store backend is running
Workflow not startingCall wf_runtime.start()

Environment Checklist

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

Log Analysis

Key Log Patterns

# 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"

Enable Debug Logging

# Local development
dapr run --log-level debug --app-id myapp -- python main.py

# Kubernetes
kubectl set env deployment/myapp DAPR_LOG_LEVEL=debug

Integration with Other Skills

This troubleshooter integrates with:

  • config-validator - Validates component YAML syntax
  • dapr-debugger agent - Deep debugging assistance
  • azure-deployer agent - Azure-specific troubleshooting

Score

Total Score

60/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

Reviews

💬

Reviews coming soon