resonatehq/resonate-skills/resonate-basic-debugging-typescript
Claude Code and agent skill by resonatehq/resonate-skills
Trust tier 3
- community
Source check pending
Checking that the SKILL.md file is still in the repository.
Debug and troubleshoot Resonate applications and deployments, especially TypeScript SDK and Resonate Server issues. Use when investigating failures, stuck workflows, error codes, or unexpected replays.
Install
npx vskill@latest install resonatehq/resonate-skills/resonate-basic-debugging-typescriptSKILL.md
Resonate Debug and Troubleshoot
Overview
Use this skill to diagnose Resonate runtime issues in the TypeScript SDK or Resonate Server. Focus on reproducible symptoms, promise state, registration, determinism, and routing.
Triage Flow
- Classify the failure: build/type error, runtime SDK error, server error code, or workflow stuck/hanging.
- Confirm worker is running and connected to the correct server URL and group.
- Inspect the promise state and call graph for the execution ID.
- Validate registration names and serialization rules.
- Check determinism and
yield*usage inside durable functions.
CLI and Observability Tools
- Start a clean local server:
resonate dev. - Invoke a workflow:
resonate invoke <promise-id> --func <name> --arg .... - Inspect call graph:
resonate tree <promise-id>. - Inspect promise state:
resonate promises get <id>. - Search promises by state or tags:
resonate promises search <id>. - Resolve/reject external promises:
resonate promises resolve|reject <id>.
Common Symptoms and Fixes
- Function not registered (1103): ensure
registername matches invocation name. - Function already registered (1102): avoid duplicate names or versions in one process.
- Args unencodeable (1106): pass only serializable args to RPC or top-level invocations.
- Promise already exists (40900): expected for idempotency; change the ID when you want a fresh run.
- Promise not found (40400): wrong ID or wrong server URL.
- Promise already resolved/rejected/timed out (40300-40303): treat as idempotency; pick a new ID or handle as cached result.
- Workflow hangs: target group mismatch, no active workers, or missing
yield*before awaiting a future. - Unexpected replays: expected after each checkpoint; avoid side effects outside
ctx.run.
Code Examples
Minimal repro (worker)
Minimal repro (client)
Inspect promise state
ID reuse (expected cache)
Group mismatch (fix target)
Missing yield* (avoid)
Serialization error (avoid non-serializable args for rpc)
Determinism Checklist
- Replace
Date.now()andMath.random()withctx.date.now()andctx.math.random(). - Wrap side effects inside
ctx.run. - Ensure return values are serializable.
Routing and Group Checks
- Verify the worker group matches the target used in
rpc/beginRpc. - Use
poll://any@<group>for load balancing across that group. - Ensure the Resonate Client is configured with the correct
urlandgroup.
Data to Capture for a Bug Report
- Resonate Server version and SDK version.
- The promise ID and function name.
- Error code and full message.
- The target/group used for RPC calls.
- Minimal reproduction with a single durable function.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingresonate-basic-debugging-typescript/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/resonatehq/resonate-skills/resonate-basic-debugging-typescript)