Skip to content

adr_approve parallel MCP calls cause silent rejections in Claude Code #24

@le-dawg

Description

@le-dawg

Bug

When calling adr_approve on multiple ADRs in a single parallel batch (e.g. approving 9 ADRs at once), Claude Code fires simultaneous permission prompts for each MCP tool call. The user can only interact with one prompt at a time — the remaining prompts are auto-rejected before the user can click them. This causes most approvals to silently fail.

Steps to Reproduce

  1. Create multiple ADRs via adr_create
  2. Call adr_approve on all of them in a single parallel batch (Claude Code dispatches MCP calls concurrently)
  3. Only the first 1–2 permission prompts are visible; the rest are auto-dismissed

Observed Behaviour

  • First 1–2 approvals succeed
  • Remaining approvals return: The user doesn't want to proceed with this tool use (auto-rejected, no prompt shown)
  • ADRs remain in proposed status with no error message to the user

Expected Behaviour

Either:

  1. The tool documentation / README should explicitly warn that adr_approve must be called sequentially (one at a time), not in parallel
  2. Or the MCP server could serialize approvals internally so batch approval is safe

Workaround

Call adr_approve one ADR at a time, waiting for each result before proceeding to the next:

# Safe
adr_approve("ADR-0001")  # wait
adr_approve("ADR-0002")  # wait
# ...

# Unsafe — causes silent rejections
[adr_approve(f"ADR-{i:04d}") for i in range(1, 10)]  # parallel

Environment

  • adr-kit version: 0.2.7
  • Claude Code: current
  • Reproducible: yes, consistently — only sequential calls succeed

Notes

This is the second packaging/integration bug found in v0.2.7. See also issue #23 (wrong config filename for setup-claude).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions