microsoft / microsoft/copilot-for-eclipse

Better handling of network errors

Open
#89 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

Feedback source

None

GitHub Copilot plugin version

0.14.0

Eclipse IDE and version

4.38

Platform

Linux RHEL 9.6

Steps to reproduce

To reproduce, firewall rules need to be changed to disable external network access to endpoints business.githubcopilot.com,443, github.githubassets.com, 443, but allow access to github.com, or just disable external access to anything except github.com.

With such setup (which is often seen in restrictive corporate networks where everything except few "white listed" addresses is prohibited), Copilot runs into multiple errors which are reported in the log. Chat view is not working (but it shows no indication of any problems).

The main issue here is not that there are errors, which is unavoidable, but that Copilot UI (Chat view, Copilot status menu) doesn't indicate that there is a problem with the network layer access, so users are "lost" and assume the plugin has some bugs.

Ideally some warning/error status should be set in the Chat view & Copilot status menu in the status line if Copilot can't communicate with the account servers, pointing to some instructions like https://docs.github.com/en/enterprise-cloud@latest/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-access/manage-network-access.

Logs (optional)

There is a variety of different errors in different places logged, like below. Note, Copilot was configured to use one local MCP server.

!ENTRY org.eclipse.lsp4e 4 0 2026-01-22 11:08:52.625
!MESSAGE [Error]        [lsp] Request copilot/models: FetchError: C0826A111C7F0000:error:0A0000C6:SSL routines:tls_get_more_records:packet length too long:../deps/openssl/openssl/ssl/record/methods/tls_common.c:662:

    at fetch (/snapshot/copilot-client/node_modules/@adobe/helix-fetch/src/fetch/index.js:99:11)
    at processTicksAndRejections (node:internal/process/task_queues:105:5)
    at cachingFetch (/snapshot/copilot-client/node_modules/@adobe/helix-fetch/src/fetch/index.js:288:16)
    at pte.fetch (/snapshot/copilot-client/lib/src/network/helix.ts:160:22)
    at fetchCapiUrl (/snapshot/copilot-client/lib/src/conversation/capiFetchUtilities.ts:140:12)
    at obe.fetchMetadata (/snapshot/copilot-client/lib/src/conversation/modelMetadata.ts:213:26)
    at obe.getMetadata (/snapshot/copilot-client/lib/src/conversation/modelMetadata.ts:195:13)
    at sbe.getMetadata (/snapshot/copilot-client/lib/src/conversation/modelMetadata.ts:316:42)
    at handleCopilotModelsChecked (/snapshot/copilot-client/agent/src/methods/copilotModels.ts:53:38)
    at fr.messageHandler (/snapshot/copilot-client/agent/src/service.ts:349:45) {
  type: 'system',
  _name: 'FetchError',
  code: 'ERR_SSL_PACKET_LENGTH_TOO_LONG',
  errno: undefined,
  erroredSysCall: undefined
}

!ENTRY com.microsoft.copilot.eclipse 4 0 2026-01-22 11:08:52.627
!MESSAGE [Error] Failed to initialize models
!STACK 0
java.util.concurrent.ExecutionException: org.eclipse.lsp4j.jsonrpc.ResponseErrorException: Request copilot/models failed with message: C0826A111C7F0000:error:0A0000C6:SSL routines:tls_get_more_records:packet length too long:../deps/openssl/openssl/ssl/record/methods/tls_common.c:662:

        at java.base/java.util.concurrent.CompletableFuture.wrapInExecutionException(CompletableFuture.java:345)
        at java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:440)
        at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2094)
        at com.microsoft.copilot.eclipse.ui.chat.services.ModelService.fetchCopilotModels(ModelService.java:196)
        at com.microsoft.copilot.eclipse.ui.chat.services.ModelService$1.run(ModelService.java:178)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Caused by: org.eclipse.lsp4j.jsonrpc.ResponseErrorException: Request copilot/models failed with message: C0826A111C7F0000:error:0A0000C6:SSL routines:tls_get_more_records:packet length too long:../deps/openssl/openssl/ssl/record/methods/tls_common.c:662:

        at org.eclipse.lsp4j.jsonrpc.RemoteEndpoint.handleResponse(RemoteEndpoint.java:220)
        at org.eclipse.lsp4j.jsonrpc.RemoteEndpoint.consume(RemoteEndpoint.java:204)
        at org.eclipse.lsp4e.LanguageServerWrapper.lambda$3(LanguageServerWrapper.java:449)
        at org.eclipse.lsp4j.jsonrpc.json.StreamMessageProducer.handleMessage(StreamMessageProducer.java:185)
        at org.eclipse.lsp4j.jsonrpc.json.StreamMessageProducer.listen(StreamMessageProducer.java:97)
        at org.eclipse.lsp4j.jsonrpc.json.ConcurrentMessageProcessor.run(ConcurrentMessageProcessor.java:114)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:545)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:328)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)
        at java.base/java.lang.Thread.run(Thread.java:1474)

!ENTRY org.eclipse.lsp4e 4 0 2026-01-22 11:08:52.653
!MESSAGE [Error]        [lsp] Request copilot/models: FetchError: C0826A111C7F0000:error:0A0000C6:SSL routines:tls_get_more_records:packet length too long:../deps/openssl/openssl/ssl/record/methods/tls_common.c:662:

    at fetch (/snapshot/copilot-client/node_modules/@adobe/helix-fetch/src/fetch/index.js:99:11)
    at processTicksAndRejections (node:internal/process/task_queues:105:5)
    at cachingFetch (/snapshot/copilot-client/node_modules/@adobe/helix-fetch/src/fetch/index.js:288:16)
    at pte.fetch (/snapshot/copilot-client/lib/src/network/helix.ts:160:22)
    at fetchCapiUrl (/snapshot/copilot-client/lib/src/conversation/capiFetchUtilities.ts:140:12)
    at obe.fetchMetadata (/snapshot/copilot-client/lib/src/conversation/modelMetadata.ts:213:26)
    at obe.getMetadata (/snapshot/copilot-client/lib/src/conversation/modelMetadata.ts:195:13)
    at sbe.getMetadata (/snapshot/copilot-client/lib/src/conversation/modelMetadata.ts:316:42)
    at handleCopilotModelsChecked (/snapshot/copilot-client/agent/src/methods/copilotModels.ts:53:38)
    at fr.messageHandler (/snapshot/copilot-client/agent/src/service.ts:349:45) {
  type: 'system',
  _name: 'FetchError',
  code: 'ERR_SSL_PACKET_LENGTH_TOO_LONG',
  errno: undefined,
  erroredSysCall: undefined
}

!ENTRY com.microsoft.copilot.eclipse 4 0 2026-01-22 11:08:52.655
!MESSAGE [Error] Failed to initialize models
!STACK 0
java.util.concurrent.ExecutionException: org.eclipse.lsp4j.jsonrpc.ResponseErrorException: Request copilot/models failed with message: C0826A111C7F0000:error:0A0000C6:SSL routines:tls_get_more_records:packet length too long:../deps/openssl/openssl/ssl/record/methods/tls_common.c:662:

        at java.base/java.util.concurrent.CompletableFuture.wrapInExecutionException(CompletableFuture.java:345)
        at java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:440)
        at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2094)
        at com.microsoft.copilot.eclipse.ui.chat.services.ModelService.fetchCopilotModels(ModelService.java:196)
        at com.microsoft.copilot.eclipse.ui.chat.services.ModelService$1.run(ModelService.java:178)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Caused by: org.eclipse.lsp4j.jsonrpc.ResponseErrorException: Request copilot/models failed with message: C0826A111C7F0000:error:0A0000C6:SSL routines:tls_get_more_records:packet length too long:../deps/openssl/openssl/ssl/record/methods/tls_common.c:662:

        at org.eclipse.lsp4j.jsonrpc.RemoteEndpoint.handleResponse(RemoteEndpoint.java:220)
        at org.eclipse.lsp4j.jsonrpc.RemoteEndpoint.consume(RemoteEndpoint.java:204)
        at org.eclipse.lsp4e.LanguageServerWrapper.lambda$3(LanguageServerWrapper.java:449)
        at org.eclipse.lsp4j.jsonrpc.json.StreamMessageProducer.handleMessage(StreamMessageProducer.java:185)
        at org.eclipse.lsp4j.jsonrpc.json.StreamMessageProducer.listen(StreamMessageProducer.java:97)
        at org.eclipse.lsp4j.jsonrpc.json.ConcurrentMessageProcessor.run(ConcurrentMessageProcessor.java:114)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:545)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:328)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)
        at java.base/java.lang.Thread.run(Thread.java:1474)

!ENTRY org.eclipse.lsp4e 1 0 2026-01-22 11:08:52.688
!MESSAGE [Info] [CopilotMCP] MCP server v93000-mcp-hub is already running

!ENTRY org.eclipse.lsp4e 1 0 2026-01-22 11:08:52.699
!MESSAGE [Info] [CopilotMCP] MCP server v93000-mcp-hub connection closed.

!ENTRY org.eclipse.lsp4e 4 0 2026-01-22 11:08:52.700
!MESSAGE [Error]        [CopilotMCP] Connection failed: McpError: MCP error -32000: Connection closed
    at sHe._onclose (/snapshot/copilot-client/node_modules/@modelcontextprotocol/sdk/src/shared/protocol.ts:336:19)
    at AHe.onclose (/snapshot/copilot-client/node_modules/@modelcontextprotocol/sdk/src/shared/protocol.ts:300:12)
    at ChildProcess.<anonymous> (/snapshot/copilot-client/node_modules/@modelcontextprotocol/sdk/src/client/stdio.ts:155:21)
    at ChildProcess.emit (node:events:519:28)
    at maybeClose (node:internal/child_process:1101:16)
    at Socket.<anonymous> (node:internal/child_process:456:11)
    at Socket.emit (node:events:519:28)
    at Pipe.<anonymous> (node:net:346:12) {
  code: -32000,
  data: undefined
}

!ENTRY org.eclipse.lsp4e 4 0 2026-01-22 11:08:52.702
!MESSAGE [Error]        [CopilotMCP] Error initializing MCP server v93000-mcp-hub: McpError: MCP error -32000: Connection closed
    at sHe._onclose (/snapshot/copilot-client/node_modules/@modelcontextprotocol/sdk/src/shared/protocol.ts:336:19)
    at AHe.onclose (/snapshot/copilot-client/node_modules/@modelcontextprotocol/sdk/src/shared/protocol.ts:300:12)
    at ChildProcess.<anonymous> (/snapshot/copilot-client/node_modules/@modelcontextprotocol/sdk/src/client/stdio.ts:155:21)
    at ChildProcess.emit (node:events:519:28)
    at maybeClose (node:internal/child_process:1101:16)
    at Socket.<anonymous> (node:internal/child_process:456:11)
    at Socket.emit (node:events:519:28)
    at Pipe.<anonymous> (node:net:346:12) {
  code: -32000,
  data: undefined
}

!ENTRY org.eclipse.lsp4e 2 0 2026-01-22 11:08:52.703
!MESSAGE [Warning]      [CopilotMCP] Failed to auto-start MCP server v93000-mcp-hub during first boot: McpError: MCP error -32000: Connection closed
    at sHe._onclose (/snapshot/copilot-client/node_modules/@modelcontextprotocol/sdk/src/shared/protocol.ts:336:19)
    at AHe.onclose (/snapshot/copilot-client/node_modules/@modelcontextprotocol/sdk/src/shared/protocol.ts:300:12)
    at ChildProcess.<anonymous> (/snapshot/copilot-client/node_modules/@modelcontextprotocol/sdk/src/client/stdio.ts:155:21)
    at ChildProcess.emit (node:events:519:28)
    at maybeClose (node:internal/child_process:1101:16)
    at Socket.<anonymous> (node:internal/child_process:456:11)
    at Socket.emit (node:events:519:28)
    at Pipe.<anonymous> (node:net:346:12) {
  code: -32000,
  data: undefined
}

!ENTRY org.eclipse.ui 4 0 2026-01-22 11:09:19.213
!MESSAGE Unhandled event loop exception
!STACK 0
java.lang.NullPointerException: Cannot invoke "com.microsoft.copilot.eclipse.core.lsp.protocol.CopilotModel.getCapabilities()" because "activeModel" is null
        at com.microsoft.copilot.eclipse.core.lsp.CopilotLanguageServerConnection.createConversation(CopilotLanguageServerConnection.java:259)
        at com.microsoft.copilot.eclipse.core.lsp.CopilotLanguageServerConnection.createConversation(CopilotLanguageServerConnection.java:249)
        at com.microsoft.copilot.eclipse.ui.chat.ChatView.onSendInternal(ChatView.java:820)
        at com.microsoft.copilot.eclipse.ui.chat.ChatView.lambda$1(ChatView.java:172)
        at org.eclipse.e4.ui.services.internal.events.UIEventHandler.lambda$0(UIEventHandler.java:38)
        at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)
        at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:132)
        at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:5084)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4549)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1147)
        at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1038)
        at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153)
        at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:677)
        at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
        at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:583)
        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:173)
        at com.verigy.itee.ui.SmarTestIdeApplication.start(SmarTestIdeApplication.java:174)
        at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:219)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:149)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:115)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:467)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:298)
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
        at java.base/java.lang.reflect.Method.invoke(Method.java:565)
        at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:615)
        at org.eclipse.equinox.launcher.Main.basicRun(Main.java:563)
        at org.eclipse.equinox.launcher.Main.run(Main.java:1415)
        at org.eclipse.equinox.launcher.Main.main(Main.java:1387)
Expected behavior

Clear UI indication giving users feedback about current (not working) Copilot state & ideally giving hints / links how to fix the problems.

Actual behavior

No hints, everything looks "as usual", just nothing works.

Additional information

No response

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

Trace model initialization from ModelService.fetchCopilotModels through CopilotLanguageServerConnection.createConversation and ChatView.onSendInternal, using the logged network failures as the starting case. Done means the Chat view and Copilot status menu visibly indicate unavailable network access and point users to the network-access instructions.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
desktop-dev, networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.