Copilot CLI loops infinitely and fails apply_patch due to JSON-wrapping error
Nobody has claimed this yet.
- Dominant language
- Shell
- Stars
- 11.2k
- Forks
- 1.9k
- Avg merge
- 14h 16m
- Merged PRs (30d)
- 6
Description
Describe the bug
While executing regular coding tasks that require file modifications, the Copilot CLI frequently fails to apply patches. The CLI enters a loop where it attempts to edit a file, fails with a JSON-wrapping error, and retries the exact same payload repeatedly.
This causes a task that should take 2 steps to take 30+ steps, resulting in massive latency, tool frustration, and high token consumption before it either randomly recovers or fails entirely. Many models are failing to adapt to apply_patch. I havent seen issue with sonnet 4.6 and gpt-sol but other models like sonnet 5, luna, terra are failing most of the times.
Error Message / Trace
When the CLI attempts to apply an edit, it outputs the following error:
✗ Edit
└ Failed to parse patch: The first line of the patch must be '*** Begin Patch'
The input begins with '{' and appears to be JSON-wrapped. apply_patch is a
freeform tool; pass raw patch text directly. Do not retry this payload.
Behavior Details
Infinite Loop: Once this error is triggered, the model consistently retries the same payload 10 to 30+ times in a row despite the warning "Do not retry this payload".
Temporary Recovery: Eventually, the model might format the tool call correctly by accident, but the error quickly resurfaces on subsequent edits.
CLI vs. VS Code: This behavior is highly localized to the CLI. Using the same prompts and models in the VS Code Copilot Chat interface works perfectly without any patch-parsing issues.
Affected version
GitHub Copilot CLI 1.0.80
Steps to reproduce the behavior
This is intermittent but seen in most of medium complexity prompts.
- Open Terminal ( I did on iterm)
- start interactive session (copilot) - i did not append any flag options ( i opened a session on TMUX)
- Trigger a medium complexity prompt which would need to change your sourcecode files.
- It should trigger the error - It generally happens mid sessions not in the first prompt itself. but yea this is intermittent behaviour
Expected behavior
No response
Additional context
- OS: Ubuntu server
Tool: Github Copilot CLI (Latest Version)
Comparison: Not observed in VS Code Copilot Chat (works successfully there)
LLM Models tried : Both GPT-5.6-Luna and Claude-sonnet-5
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No source files or tests are named. Start by reproducing the issue in Copilot CLI 1.0.80 on Ubuntu, using an interactive session and a medium coding prompt that edits files, then compare the CLI behavior with VS Code Copilot Chat. Done means apply_patch accepts the tool payload and the CLI stops retrying the same failed request.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- shell
- Domain
- cli, tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100