[BUG] Claude iOS app silently drops MCP approval prompts raised

Status Open
Maintainer reply None cached
Activity 0 comments · opened Jul 22, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

On the Claude consumer app for iOS, with a custom remote MCP connector (HTTP transport, OAuth) and per-tool approval enabled: when the model requests approval for a tool call while the app is backgrounded — typically after a long-running earlier call (e.g. a slow IMAP search) completes and the model then calls a second tool needing approval (e.g. fetching an email attachment) — an iOS push notification fires saying input is needed, but tapping it returns to a chat with no approval dialog. The pending tool call is orphaned: it never re-prompts and never resolves. Because approval is client-side and keyed by tool name at the account level (independent of the server), this reproduces across different MCP servers, confirming it is not a server-side issue

What Should Happen?

On returning to the foreground (or tapping the notification), any pending approval should be presented and actionable. Approvals should survive backgrounding/app suspension; the push notification should deep-link to the pending approval; and a lapsed/timed-out approval should be distinguishable in the tool result from an explicit user denial.

Error Messages/Logs

Steps to Reproduce

  1. Add a remote/custom MCP connector (HTTP, any FastMCP server) in the Claude iOS app with per-tool approval on.
  2. Prompt an agentic task that first calls a long-running tool (IMAP search, tens of seconds), then a second tool requiring approval (fetch attachment).
  3. Background the app / lock the phone while the long call is in flight.
  4. Receive the iOS push notification that approval is needed.
  5. Tap it (or reopen the app) → no approval dialog appears; the call never resolves.

Claude Model

Not sure / Multiple models

Is this a regression?

No, this never worked

Last Working Version

_No response_

Claude Code Version

2.0.0

Platform

Other

Operating System

Other

Terminal/Shell

Other

Additional Information

Surface is the Claude iOS consumer app (App Store build), not Claude Code — so Terminal/Shell and Claude Code Version are N/A.

  • App version 1.260716.0 (29525055992)
  • iOS 26.5.2 (23F84)
  • Plan: Pro
  • MCP transport: remote HTTP custom connector (FastMCP), OAuth
  • Model: all.

Related but distinct: #29144 (Claude Code on iOS, no approve path) and #38955 (Dispatch pins approvals to the originating device). Note there is no in-app bug-report path (cf. #60780), which is why this is filed here.

View original on GitHub ↗