# Copilot++ not working: Error in streaming cpp \[internal\] Protocol error

**URL:** <https://forum.cursor.com/t/copilot-not-working-error-in-streaming-cpp-internal-protocol-error/3194>\
**Category:** Bug Reports\
**Created:** [March 4, 2024, 9:56am UTC](https://forum.cursor.com/t/copilot-not-working-error-in-streaming-cpp-internal-protocol-error/3194 "2024-03-04T09:56:12Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![jkettmann](https://avatars.discourse-cdn.com/v4/letter/j/958977/32.png) [@jkettmann](https://forum.cursor.com/u/jkettmann)\
**Post date:** [March 4, 2024, 9:56am UTC](https://forum.cursor.com/t/copilot-not-working-error-in-streaming-cpp-internal-protocol-error/3194/1 "2024-03-04T09:56:12Z")

</div>

I’m testing Cursor on my work computer. Everything works except Copilot++. When I edit a line I can see the following logs

 ![CleanShot 2024-03-04 at 10.19.11](https://us1.discourse-cdn.com/cursor1/original/2X/4/4a3e465257ea6a4847b49424dfca00ecf87253dc.png)

I’m on a MacBook Pro which uses a security software called Zscaler. I didn’t find any rejected requests in the Zscaler logs so I’m not sure if this is the problem or not.

Does anyone have experience with this or any idea on how to get more information about the failing requests?

---

<div class="post-metadata">

**Author:** ![Jakob](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/jakob/32/93_2.png) [@Jakob](https://forum.cursor.com/u/Jakob)\
**Post date:** [March 6, 2024, 1:44pm UTC](https://forum.cursor.com/t/copilot-not-working-error-in-streaming-cpp-internal-protocol-error/3194/2 "2024-03-06T13:44:06Z")

</div>

Hmm, this might have been a temporary error on Cursor’s side. Does Copilot++ still not work for you?

---

<div class="post-metadata">

**Author:** ![jkettmann](https://avatars.discourse-cdn.com/v4/letter/j/958977/32.png) [@jkettmann](https://forum.cursor.com/u/jkettmann)\
**Post date:** [March 6, 2024, 2:59pm UTC](https://forum.cursor.com/t/copilot-not-working-error-in-streaming-cpp-internal-protocol-error/3194/3 "2024-03-06T14:59:30Z")

</div>

Unfortunately it still doesn’t work. I tested it on my private machine and there are no problems. Both are similar MacBooks but on the company machine I have Zscaler. So I’m assuming that’s the problem. Could be anything else though. So it would be great to understand how to further debug this problem

---

<div class="post-metadata">

**Author:** ![almirm](https://avatars.discourse-cdn.com/v4/letter/a/d07c76/32.png) [@almirm](https://forum.cursor.com/u/almirm)\
**Post date:** [March 7, 2024, 3:36pm UTC](https://forum.cursor.com/t/copilot-not-working-error-in-streaming-cpp-internal-protocol-error/3194/4 "2024-03-07T15:36:23Z")

</div>

Have the same issue - Copilot++ does not work behind Zscaler (proxy/firewall).

Often such issue pops up re: Zscaler root CA certificate needs to be added / accounted for in application specific trust stores.

---

<div class="post-metadata">

**Author:** ![jkettmann](https://avatars.discourse-cdn.com/v4/letter/j/958977/32.png) [@jkettmann](https://forum.cursor.com/u/jkettmann)\
**Post date:** [March 11, 2024, 10:27am UTC](https://forum.cursor.com/t/copilot-not-working-error-in-streaming-cpp-internal-protocol-error/3194/5 "2024-03-11T10:27:11Z")

</div>

@almirm thanks for confirming the issue. I remember having a problem with GitHub Copilot a while ago. That was also related to certificates. Installing an extension (win-ca or mac-ca) worked back then. Will try and see if they help here as well. Here are some additional infos:

[GitHub Copilot behind a Proxy with a self-signed certificate chain does still not work · community · Discussion #35544](https://github.com/orgs/community/discussions/35544)  
[self signed certificate in certificate chain on github copilot](https://stackoverflow.com/questions/71367058/self-signed-certificate-in-certificate-chain-on-github-copilot)

---

<div class="post-metadata">

**Author:** ![almirm](https://avatars.discourse-cdn.com/v4/letter/a/d07c76/32.png) [@almirm](https://forum.cursor.com/u/almirm)\
**Post date:** [March 11, 2024, 11:24pm UTC](https://forum.cursor.com/t/copilot-not-working-error-in-streaming-cpp-internal-protocol-error/3194/6 "2024-03-11T23:24:18Z")

</div>

@jkettmann yes - had to do the same fix with GitHub Copilot that you explained - installing mac-ca into node environment used by vscode. This fix also works for using GitHub Copilot in Cursor (due to being a fork of vscode).

Unfortunately this fix does not work for Copilot++ which seems to be using C++ (cpp) implementation of some communication protocol (assume streaming data back and forth) - based on your posted screenshot above.

---

<div class="post-metadata">

**Author:** ![tnypxl](https://avatars.discourse-cdn.com/v4/letter/t/46a35a/32.png) [@tnypxl](https://forum.cursor.com/u/tnypxl)\
**Post date:** [March 20, 2024, 4:30pm UTC](https://forum.cursor.com/t/copilot-not-working-error-in-streaming-cpp-internal-protocol-error/3194/7 "2024-03-20T16:30:36Z")

</div>

Codebase indexing which is suppose to be “local”, doesn’t work because I am also behind a zscaler proxy. Been able to fix it various places, but can’t figure it out for Cursor.

---

<div class="post-metadata">

**Author:** ![babs](https://avatars.discourse-cdn.com/v4/letter/b/cdc98d/32.png) [@babs](https://forum.cursor.com/u/babs)\
**Post date:** [March 25, 2024, 1:47pm UTC](https://forum.cursor.com/t/copilot-not-working-error-in-streaming-cpp-internal-protocol-error/3194/8 "2024-03-25T13:47:21Z")

</div>

yeah i am getting the same error as well. But Github Copilot works for me not Copilot++

 ![image](https://us1.discourse-cdn.com/cursor1/original/2X/4/46df59e7e15d2597de19a2240e6976632751542e.png)

---

<div class="post-metadata">

**Author:** ![almirm](https://avatars.discourse-cdn.com/v4/letter/a/d07c76/32.png) [@almirm](https://forum.cursor.com/u/almirm)\
**Post date:** [March 27, 2024, 10:10pm UTC](https://forum.cursor.com/t/copilot-not-working-error-in-streaming-cpp-internal-protocol-error/3194/9 "2024-03-27T22:10:07Z")

</div>

Anything we can do to bring it to the Cursor dev team attention?

---

<div class="post-metadata">

**Author:** ![sualeh](https://avatars.discourse-cdn.com/v4/letter/s/e0b2c6/32.png) [@sualeh](https://forum.cursor.com/u/sualeh)\
**Post date:** [March 27, 2024, 10:14pm UTC](https://forum.cursor.com/t/copilot-not-working-error-in-streaming-cpp-internal-protocol-error/3194/10 "2024-03-27T22:14:31Z")

</div>

We are aware of a small amount of downtime. Working to bring this to near 0.

---

<div class="post-metadata">

**Author:** ![tnypxl](https://avatars.discourse-cdn.com/v4/letter/t/46a35a/32.png) [@tnypxl](https://forum.cursor.com/u/tnypxl)\
**Post date:** [March 29, 2024, 2:20pm UTC](https://forum.cursor.com/t/copilot-not-working-error-in-streaming-cpp-internal-protocol-error/3194/11 "2024-03-29T14:20:36Z")

</div>

This has nothing to do with downtime. The indexer doesn’t work because it doesn’t use the system certificate chains, which in my case is managed by Zscaler.

---

<div class="post-metadata">

**Author:** ![almirm](https://avatars.discourse-cdn.com/v4/letter/a/d07c76/32.png) [@almirm](https://forum.cursor.com/u/almirm)\
**Post date:** [March 29, 2024, 11:32pm UTC](https://forum.cursor.com/t/copilot-not-working-error-in-streaming-cpp-internal-protocol-error/3194/12 "2024-03-29T23:32:16Z")

</div>

Same with me - not related to downtime. Copilot++ and index stop working and get error messages posted in this thread when turn on Zscaler. Issue as described by @tnypxl.

---

<div class="post-metadata">

**Author:** ![tnypxl](https://avatars.discourse-cdn.com/v4/letter/t/46a35a/32.png) [@tnypxl](https://forum.cursor.com/u/tnypxl)\
**Post date:** [April 11, 2024, 5:22pm UTC](https://forum.cursor.com/t/copilot-not-working-error-in-streaming-cpp-internal-protocol-error/3194/13 "2024-04-11T17:22:41Z")

</div>

@sualeh How are these custom C++ streaming processes referencing system certs? Can this be overridden with a cursor-specific environment variable? Something like, “CURSOR\_CA\_BUNDLE=/path/to/cert.pem”?

---

<div class="post-metadata">

**Author:** ![almirm](https://avatars.discourse-cdn.com/v4/letter/a/d07c76/32.png) [@almirm](https://forum.cursor.com/u/almirm)\
**Post date:** [April 24, 2024, 8:31am UTC](https://forum.cursor.com/t/copilot-not-working-error-in-streaming-cpp-internal-protocol-error/3194/14 "2024-04-24T08:31:53Z")

</div>

@sualeh @Jakob any chance to look into this issue / give us an update if on the backlog to do?

---

<div class="post-metadata">

**Author:** ![tnypxl](https://avatars.discourse-cdn.com/v4/letter/t/46a35a/32.png) [@tnypxl](https://forum.cursor.com/u/tnypxl)\
**Post date:** [May 2, 2024, 4:49pm UTC](https://forum.cursor.com/t/copilot-not-working-error-in-streaming-cpp-internal-protocol-error/3194/15 "2024-05-02T16:49:41Z")

</div>

I was finally able to fix this without needing to turn off Zscaler internet security. I follow the instructions here:

[https://community.zscaler.com/zenith/s/question/0D54u00009jZpG7CAK/installing-tls-ssl-root-certificates-to-nonstandard-environments](https://community.zscaler.com/zenith/s/question/0D54u00009jZpG7CAK/installing-tls-ssl-root-certificates-to-nonstandard-environments)

---

<div class="post-metadata">

**Author:** ![almirm](https://avatars.discourse-cdn.com/v4/letter/a/d07c76/32.png) [@almirm](https://forum.cursor.com/u/almirm)\
**Post date:** [May 5, 2024, 11:43pm UTC](https://forum.cursor.com/t/copilot-not-working-error-in-streaming-cpp-internal-protocol-error/3194/16 "2024-05-05T23:43:55Z")

</div>

@tnypxl could you please describe in more detail what is your system (Windows/Mac/Linux) and what you at the end did to get Copilot++ working with Zscaler on?

I am on MacOS Sonoma 14.4.1 and tried following the instructions but could not get Copilot++ to work yet. Tried:

```shell
$ sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ZscalerRootCertificate-2048-SHA256.crt 
$ sudo cat ZscalerRootCertificate-2048-SHA256.crt >> /opt/homebrew/etc/ca-certificates/cert.pem 

```

After this Copilot++ still outputs in its logs:

```auto
2024-05-06 01:34:45.005 [info] CURSOR LOG: Finished creating provider!
2024-05-06 01:34:51.924 [info] CURSOR LOG: restFunc initiated 3a4ccdb3-3151-46eb-83f2-324ae29b93db
2024-05-06 01:34:52.209 [info] CURSOR LOG: Error in streaming cpp [canceled] This operation was aborted
2024-05-06 01:34:52.209 [info] CURSOR LOG: restFunc done 3a4ccdb3-3151-46eb-83f2-324ae29b93db
2024-05-06 01:34:52.211 [info] CURSOR LOG: restFunc initiated 41059f1d-14af-4503-aa51-e489ed32c264
2024-05-06 01:34:52.784 [info] CURSOR LOG: Error in streaming cpp [internal] Protocol error
2024-05-06 01:34:52.784 [info] CURSOR LOG: restFunc done 41059f1d-14af-4503-aa51-e489ed32c264
2024-05-06 01:34:53.663 [info] CURSOR LOG: restFunc initiated 12630ca6-82e7-42f2-baa6-d868ff308afc
2024-05-06 01:34:54.200 [info] CURSOR LOG: Error in streaming cpp [internal] Protocol error
2024-05-06 01:34:54.200 [info] CURSOR LOG: restFunc done 12630ca6-82e7-42f2-baa6-d868ff308afc
2024-05-06 01:34:54.742 [info] CURSOR LOG: restFunc initiated 0124085f-3f12-4c90-8a35-b93ffa6af866
2024-05-06 01:34:55.193 [info] CURSOR LOG: Error in streaming cpp [canceled] This operation was aborted

```

---

<div class="post-metadata">

**Author:** ![tnypxl](https://avatars.discourse-cdn.com/v4/letter/t/46a35a/32.png) [@tnypxl](https://forum.cursor.com/u/tnypxl)\
**Post date:** [May 6, 2024, 3:17pm UTC](https://forum.cursor.com/t/copilot-not-working-error-in-streaming-cpp-internal-protocol-error/3194/17 "2024-05-06T15:17:59Z")

</div>

I am on macOS (similar version)

```auto
security find-certificate -a -p /System/Library/Keychains/SystemRootCertificates.keychain >/Users/<USER>/tmp/certs-system.crt
security find-certificate -a -c zscaler -p /Library/Keychains/System.keychain >> /Users/<USER>/tmp/certs-system.crt

```

Those are the two commands I ran. Then you have to export some environment vars as defined in the discussions on that link I posted.

Edit: What this does is bake all your normal certs and the zscaler root cert into one. I think some of the issue is that the cert chain is not complete in the eyes of some applications since zscaler is essentially a custom cert. Below are the ENV vars I used:

`SSL_CERT_FILE=/path/to/foo.cert`  
`REQUESTS_CA_BUNDLE=/path/to/foo.cert`

---

<div class="post-metadata">

**Author:** ![samarthm44](https://avatars.discourse-cdn.com/v4/letter/s/977dab/32.png) [@samarthm44](https://forum.cursor.com/u/samarthm44)\
**Post date:** [May 8, 2024, 1:02pm UTC](https://forum.cursor.com/t/copilot-not-working-error-in-streaming-cpp-internal-protocol-error/3194/18 "2024-05-08T13:02:43Z")

</div>

I see the same problem as OP on an ssh server behind a proxy. It doesn’t use Zscaler and I am not sure how to translate the Zscaler instructions to my situation. Would be really helpful if someone could flesh out the steps here. Thanks!

EDIT : I just tried using the last nightly build (v 0.28.3-nightly) and copilot++ works on the same server.

---

<div class="post-metadata">

**Author:** ![up.wader\_0v](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/up.wader_0v/32/1199_2.png) [@up.wader\_0v](https://forum.cursor.com/u/up.wader_0v)\
**Post date:** [May 14, 2024, 6:04pm UTC](https://forum.cursor.com/t/copilot-not-working-error-in-streaming-cpp-internal-protocol-error/3194/19 "2024-05-14T18:04:52Z")

</div>

I have a similar situation on the corporate MacBook with Zscaler.

I tried some tips and environment variables with the custom Zscaler certificate, but I still have the same issue with Copilot++ and Codebase Indexing.

Indexing logs:

```auto
2024-05-14 10:48:47.527 [info] Handshake start
2024-05-14 10:49:51.566 [error] Handshake failed:
2024-05-14 10:49:51.580 [error] Error: timeout in handshake with retry
 at e.RepoClientMultiplexer.handshakeWithRetry (/Applications/Cursor.app/Contents/Resources/app/extensions/cursor-retrieval/dist/main.js:2:995054)
 at async m.getServerStatus (/Applications/Cursor.app/Contents/Resources/app/extensions/cursor-retrieval/dist/main.js:2:1009958)
 at async m.startIndexingRepository (/Applications/Cursor.app/Contents/Resources/app/extensions/cursor-retrieval/dist/main.js:2:1012203)
2024-05-14 10:49:51.581 [error] Handshake failed.
2024-05-14 10:49:51.581 [info] Indexing job successfully done or aborted.

```

Environment variables I added to `bash_profile`:

```auto
# Zscaler
export CERT_PATH=/Users/username/ZscalerRootCerts/ZscalerRootCertificate-2048-SHA256.pem
export CERT_DIR=/Users/username/ZscalerRootCerts/

export CURL_CA_BUNDLE=${CERT_PATH}
export SSL_CERT_FILE=${CERT_PATH}
export SSL_CERT_DIR=${CERT_DIR}
export REQUESTS_CA_BUNDLE=${CERT_PATH}
export NODE_EXTRA_CA_CERTS=${CERT_PATH}

```

 ![photo_2024-05-14 20.02.24](https://us1.discourse-cdn.com/cursor1/original/2X/b/bdaf9f0c8cfc4bd06af30e9259e40e6036b65f29.jpeg)

---

<div class="post-metadata">

**Author:** ![tnypxl](https://avatars.discourse-cdn.com/v4/letter/t/46a35a/32.png) [@tnypxl](https://forum.cursor.com/u/tnypxl)\
**Post date:** [May 14, 2024, 7:09pm UTC](https://forum.cursor.com/t/copilot-not-working-error-in-streaming-cpp-internal-protocol-error/3194/20 "2024-05-14T19:09:23Z")

</div>

The solution I was using only works intermittently and doesn’t work at all outside of the trusted network.

[Next page](https://forum.cursor.com/t/copilot-not-working-error-in-streaming-cpp-internal-protocol-error/3194.md?page=2)
