microsoft / microsoft/copilot-for-eclipse

Failed to parse JSON for tool call 'replace_string_in_file': SyntaxError

Open
#104 7 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Java
Stars
126
Forks
60
Avg merge
2d 6h
Merged PRs (30d)
5

Description

Asked "Claude Sonnet 4.6" to refactor the code:

(there is no C:\snapshot\copilot-intellij\lib\src\openai\ folder, or even C:\snapshot\, folder

eclipse.buildId=4.39.0.20260305-0817
java.version=21.0.10
java.vendor=Eclipse Adoptium
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_CA
Framework arguments:  -product org.eclipse.epp.package.rcp.product
Command-line arguments:  -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.rcp.product -data file:/E:/workspaces/JiraConnector/

Copilot: 0.15.0

!ENTRY org.eclipse.lsp4e 4 0 2026-03-17 00:29:03.334
!MESSAGE [LS:GitHub Copilot Language Server][Error]	[toolCallingLoop] Fetch failed: {
  type: 'failed',
  reason: "Error on conversation request: Failed to parse JSON for tool call 'replace_string_in_file': SyntaxError: Expected ',' or '}' after property value in JSON at position 235 (line 1 column 236)\n" +
    '    at JSON.parse (<anonymous>)\n' +
    '    at parseCallArguments (C:\\snapshot\\copilot-intellij\\lib\\src\\openai\\stream.ts:805:21)\n' +
    '    at extractToolCalls (C:\\snapshot\\copilot-intellij\\lib\\src\\openai\\stream.ts:8... Read more from logs.',
  requestId: '4c2a9f24-1263-4f82-8100-e18f50ba34ae'
}

!ENTRY org.eclipse.lsp4e 4 0 2026-03-17 00:29:03.334
!MESSAGE [LS:GitHub Copilot Language Server][Error]	[chat] Error on conversation request: Error: Failed to parse JSON for tool call 'replace_string_in_file': SyntaxError: Expected ',' or '}' after property value in JSON at position 235 (line 1 column 236)
    at JSON.parse (<anonymous>)
    at parseCallArguments (C:\snapshot\copilot-intellij\lib\src\openai\stream.ts:805:21)
    at extractToolCalls (C:\snapshot\copilot-intellij\lib\src\openai\stream.ts:821:26)
    at convertToAPIJsonData (C:\snapshot\copilot-intellij\lib\src\openai\stream.ts:751:23)
    at prepareChatCompletionForReturn (C:\snapshot\copilot-intellij\lib\src\conversation\openai\stream.ts:28:35)
    at selector (C:\snapshot\copilot-intellij\lib\src\conversation\endpoint\ChatCompletionsEndpointStrategy.ts:202:13)
    at asyncIterableMap (C:\snapshot\copilot-intellij\lib\src\common\iterableHelpers.ts:6:15)
    at process.item (node:internal/process/task_queues:105:5)
    at chatCompletion (C:\snapshot\copilot-intellij\lib\src\common\iterableHelpers.ts:25:22)
    at ea.processSuccessfulResponse (C:\snapshot\copilot-intellij\lib\src\conversation\chatMLFetcher.ts:392:26). Input: '{"explanation": "Update JsonWeakParser to throw JsonProcessingException instead of JSONException", "filePath": "E:\\git\\JiraConnector\\jrjc-core\\src\\main\\java\\me\\glindholm\\jira\\rest\\client\\internal\\json\\JsonWeakParser.java"'
    at parseCallArguments (C:\snapshot\copilot-intellij\lib\src\openai\stream.ts:810:15)
    at extractToolCalls (C:\snapshot\copilot-intellij\lib\src\openai\stream.ts:821:26)
    at convertToAPIJsonData (C:\snapshot\copilot-intellij\lib\src\openai\stream.ts:751:23)
    at prepareChatCompletionForReturn (C:\snapshot\copilot-intellij\lib\src\conversation\openai\stream.ts:28:35)
    at selector (C:\snapshot\copilot-intellij\lib\src\conversation\endpoint\ChatCompletionsEndpointStrategy.ts:202:13)
    at asyncIterableMap (C:\snapshot\copilot-intellij\lib\src\common\iterableHelpers.ts:6:15)
    at process.item (node:internal/process/task_queues:105:5)
    at chatCompletion (C:\snapshot\copilot-intellij\lib\src\common\iterableHelpers.ts:25:22)
    at ea.processSuccessfulResponse (C:\snapshot\copilot-intellij\lib\src\conversation\chatMLFetcher.ts:392:26)
    at ea.fetch (C:\snapshot\copilot-intellij\lib\src\conversation\chatMLFetcher.ts:349:28)

!ENTRY com.microsoft.copilot.eclipse 4 0 2026-03-17 00:29:04.041
!MESSAGE [Error] Failed to persist conversation progress: 4d1ae4b7-3b64-47a2-8e2b-5da1845cf3c5
!STACK 0
java.io.IOException: Failed to load conversation index document
	at com.microsoft.copilot.eclipse.core.persistence.ConversationPersistenceService.updateConversationIndex(ConversationPersistenceService.java:146)
	at com.microsoft.copilot.eclipse.core.persistence.ConversationPersistenceService.saveConversation(ConversationPersistenceService.java:95)
	at com.microsoft.copilot.eclipse.core.persistence.ConversationPersistenceManager.persistAndCacheConversation(ConversationPersistenceManager.java:398)
	at com.microsoft.copilot.eclipse.core.persistence.ConversationPersistenceManager.lambda$4(ConversationPersistenceManager.java:224)
	at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1804)
	at java.base/java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1796)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312)
	at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)
Caused by: org.xml.sax.SAXParseException; lineNumber: 11; columnNumber: 201; XML document structures must start and end within the same entity.
	at java.xml/com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:262)
	at java.xml/com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:342)
	at java.xml/javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:122)
	at com.microsoft.copilot.eclipse.core.persistence.ConversationPersistenceService.loadIndexDocument(ConversationPersistenceService.java:242)
	at com.microsoft.copilot.eclipse.core.persistence.ConversationPersistenceService.loadOrCreateIndexDocument(ConversationPersistenceService.java:230)
	at com.microsoft.copilot.eclipse.core.persistence.ConversationPersistenceService.updateConversationIndex(ConversationPersistenceService.java:142)
	... 10 more

!ENTRY com.microsoft.copilot.eclipse 4 0 2026-03-17 00:29:04.077
!MESSAGE [Error] Failed to update todo list for conversation: 4d1ae4b7-3b64-47a2-8e2b-5da1845cf3c5
!STACK 0
java.io.IOException: Failed to load conversation index document
	at com.microsoft.copilot.eclipse.core.persistence.ConversationPersistenceService.updateConversationIndex(ConversationPersistenceService.java:146)
	at com.microsoft.copilot.eclipse.core.persistence.ConversationPersistenceService.saveConversation(ConversationPersistenceService.java:95)
	at com.microsoft.copilot.eclipse.core.persistence.ConversationPersistenceManager.persistAndCacheConversation(ConversationPersistenceManager.java:398)
	at com.microsoft.copilot.eclipse.core.persistence.ConversationPersistenceManager.lambda$10(ConversationPersistenceManager.java:457)
	at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1804)
	at java.base/java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1796)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312)
	at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)
Caused by: org.xml.sax.SAXParseException; lineNumber: 11; columnNumber: 201; XML document structures must start and end within the same entity.
	at java.xml/com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:262)
	at java.xml/com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:342)
	at java.xml/javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:122)
	at com.microsoft.copilot.eclipse.core.persistence.ConversationPersistenceService.loadIndexDocument(ConversationPersistenceService.java:242)
	at com.microsoft.copilot.eclipse.core.persistence.ConversationPersistenceService.loadOrCreateIndexDocument(ConversationPersistenceService.java:230)
	at com.microsoft.copilot.eclipse.core.persistence.ConversationPersistenceService.updateConversationIndex(ConversationPersistenceService.java:142)
	... 10 more

!ENTRY com.microsoft.copilot.eclipse 4 0 2026-03-17 00:29:04.079
!MESSAGE [Error] Failed to persist model info for conversation: 4d1ae4b7-3b64-47a2-8e2b-5da1845cf3c5
!STACK 0
java.io.IOException: Failed to load conversation index document
	at com.microsoft.copilot.eclipse.core.persistence.ConversationPersistenceService.updateConversationIndex(ConversationPersistenceService.java:146)
	at com.microsoft.copilot.eclipse.core.persistence.ConversationPersistenceService.saveConversation(ConversationPersistenceService.java:95)
	at com.microsoft.copilot.eclipse.core.persistence.ConversationPersistenceManager.persistAndCacheConversation(ConversationPersistenceManager.java:398)
	at com.microsoft.copilot.eclipse.core.persistence.ConversationPersistenceManager.lambda$12(ConversationPersistenceManager.java:526)
	at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1804)
	at java.base/java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1796)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312)
	at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)
Caused by: org.xml.sax.SAXParseException; lineNumber: 11; columnNumber: 201; XML document structures must start and end within the same entity.
	at java.xml/com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:262)
	at java.xml/com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:342)
	at java.xml/javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:122)
	at com.microsoft.copilot.eclipse.core.persistence.ConversationPersistenceService.loadIndexDocument(ConversationPersistenceService.java:242)
	at com.microsoft.copilot.eclipse.core.persistence.ConversationPersistenceService.loadOrCreateIndexDocument(ConversationPersistenceService.java:230)
	at com.microsoft.copilot.eclipse.core.persistence.ConversationPersistenceService.updateConversationIndex(ConversationPersistenceService.java:142)
	... 10 more

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the logged parseCallArguments and extractToolCalls locations in stream.ts, then inspect ConversationPersistenceService.java around updateConversationIndex and loadIndexDocument. Reproduce the failed replace_string_in_file request in the reported Eclipse environment and verify that tool-call handling completes without the JSON error and conversation persistence no longer reports malformed XML.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
devtools
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.