Cursor Tab Unreliable and Slow in .ipynb over SSH (Windows Client, Linux Server)

Hello Cursor Community,

I am reporting an issue regarding the reliability and performance of the Cursor Tab feature when using Cursor via SSH.

:white_check_mark: Check the forum: I have performed a search on the forum for similar issues involving SSH, .ipynb, and Cursor Tab reliability but haven’t found an identical report detailing these specific symptoms and conditions.

:lady_beetle: Clear Description of the Bug: The Cursor Tab functionality (specifically features like code completion, suggestions, or generating code using the AI models via the tab interface) is very inconsistent and often performs poorly or fails when I am connected via SSH from my Windows machine to a Linux server and working within .ipynb (Jupyter Notebook) files. It works significantly better and more reliably when editing standard .py Python files on the same connection. The issue in .ipynb files is intermittent; sometimes it works, sometimes it doesn’t.

:counterclockwise_arrows_button: How to Reproduce the Bug (if known): It is difficult to provide exact steps as the issue is intermittent. However, the bug consistently occurs more frequently when:

  1. Connecting to a Linux server from a Windows client via SSH in Cursor.
  2. Opening and working within a .ipynb file.
  3. Attempting to use the Cursor Tab feature (e.g., waiting for completions or suggestions).

The problem does not appear as frequently, or at all, when performing the same actions in a .py file on the same SSH connection.

:camera: Attach screenshots or recordings: I have attached log snippets that capture the system’s behavior when the Cursor Tab is not working well (showing errors and slow responses) compared to when it does work successfully (showing faster completion). These logs provide detailed timing and error information.

Log Snippet: When not working well (showing errors and slowness)

2025-05-14 20:31:41.696 [info] CURSOR LOG: requestId a492d7b3-5f29-41cc-b97c-58729d8bd050 
2025-05-14 20:31:42.199 [info] CURSOR LOG: Done streaming cpp with id a492d7b3-5f29-41cc-b97c-58729d8bd050
2025-05-14 20:31:42.200 [info] CPP RT LOG: Time taken for streaming cpp 507.27734375 with request a492d7b3-5f29-41cc-b97c-58729d8bd050
2025-05-14 20:31:42.200 [info] CPP Request Log with id a492d7b3-5f29-41cc-b97c-58729d8bd050
2025-05-14 20:31:42.200 [info] =======>Model output 

2025-05-14 20:31:42.200 [info] =======>Debug stream time 270.2239419994876
2025-05-14 20:31:42.200 [info] =======>Debug ttft time 255.4125999994576
2025-05-14 20:31:42.211 [info] Average of latest 20 ttft time 220.5770221499959
2025-05-14 20:31:42.211 [info] Average of latest 20 stream time 244.72078050004785
2025-05-14 20:31:42.212 [info] Average of latest 20 total time NaN
2025-05-14 20:31:42.212 [info] Average of latest 20 client time 568.6380615234375
2025-05-14 20:31:42.212 [info] Average of latest 20 discrepencies NaN
2025-05-14 20:31:42.212 [info] CPP RT LOG: All stats {"streamingtime":507.27734375,"actualTtftFromStart":565.169189453125,"timeTillServerRequest":328.0283203125,"requestToTtft":237.140869140625,"totalTime":835.21240234375}
2025-05-14 20:31:45.528 [info] CURSOR LOG: requestId 65cfed52-8a7a-40c9-997a-886c46cddf75 
2025-05-14 20:31:45.639 [info] CURSOR LOG: Error in streaming cpp (connect error) [canceled] This operation was aborted
2025-05-14 20:31:45.697 [info] CURSOR LOG: requestId 6d536b7b-0534-4141-a7f4-b26265f02c21 
2025-05-14 20:31:45.884 [info] CURSOR LOG: Error in streaming cpp (connect error) [canceled] This operation was aborted
2025-05-14 20:31:45.938 [info] CURSOR LOG: requestId f8db464f-695a-4d04-8e18-d2b2d812ea0c 
2025-05-14 20:31:47.030 [info] CURSOR LOG: Done streaming cpp with id f8db464f-695a-4d04-8e18-d2b2d812ea0c
2025-05-14 20:31:47.031 [info] CPP RT LOG: Time taken for streaming cpp 1093.3564453125 with request f8db464f-695a-4d04-8e18-d2b2d812ea0c
2025-05-14 20:31:47.031 [info] CPP Request Log with id f8db464f-695a-4d04-8e18-d2b2d812ea0c
2025-05-14 20:31:47.031 [info] =======>Model output 

2025-05-14 20:31:47.032 [info] =======>Debug stream time 878.8339199996553
2025-05-14 20:31:47.032 [info] =======>Debug ttft time 303.4431069996208
2025-05-14 20:31:47.032 [info] Average of latest 20 ttft time 223.2653931999812
2025-05-14 20:31:47.032 [info] Average of latest 20 stream time 275.06282395003365
2025-05-14 20:31:47.032 [info] Average of latest 20 total time NaN
2025-05-14 20:31:47.032 [info] Average of latest 20 client time 598.1248168945312
2025-05-14 20:31:47.033 [info] Average of latest 20 discrepencies NaN
2025-05-14 20:31:47.033 [info] CPP RT LOG: All stats {"streamingtime":1093.3564453125,"actualTtftFromStart":258.453857421875,"timeTillServerRequest":51.58544921875,"requestToTtft":206.868408203125,"totalTime":1144.884521484375}

Log Snippet: When working well (example of a successful, faster request)

2025-05-14 20:31:08.936 [info] CURSOR LOG: requestId 73d26d7b-89ba-4f06-bacb-e1ac45ebd4bb 
2025-05-14 20:31:09.099 [info] CURSOR LOG: Error in streaming cpp (connect error) [canceled] This operation was aborted
2025-05-14 20:31:09.152 [info] CURSOR LOG: requestId dfcfab67-a43a-4db5-a2d0-7a6919fd3666 
2025-05-14 20:31:09.555 [info] CURSOR LOG: Done streaming cpp with id dfcfab67-a43a-4db5-a2d0-7a6919fd3666
2025-05-14 20:31:09.555 [info] CPP RT LOG: Time taken for streaming cpp 403.9736328125 with request dfcfab67-a43a-4db5-a2d0-7a6919fd3666
2025-05-14 20:31:09.555 [info] CPP Request Log with id dfcfab67-a43a-4db5-a2d0-7a6919fd3666
2025-05-14 20:31:09.555 [info] =======>Model output 

2025-05-14 20:31:09.555 [info] =======>Debug stream time 179.63058099988848
2025-05-14 20:31:09.555 [info] =======>Debug ttft time 85.02745799999684
2025-05-14 20:31:09.556 [info] Average of latest 20 ttft time 220.4984167000046
2025-05-14 20:31:09.556 [info] Average of latest 20 stream time 244.8713917000685
2025-05-14 20:31:09.557 [info] Average of latest 20 total time NaN
2025-05-14 20:31:09.558 [info] Average of latest 20 client time 568.338427734375
2025-05-14 20:31:09.558 [info] Average of latest 20 discrepencies NaN
2025-05-14 20:31:09.558 [info] CPP RT LOG: All stats {"streamingtime":403.9736328125,"actualTtftFromStart":269.1044921875,"timeTillServerRequest":50.375244140625,"requestToTtft":218.729248046875,"totalTime":454.3056640625}

:laptop: Operating System and Cursor Version:

  • Client OS: Windows
  • Server OS: Linux
    version: 0.49.6 (user setup)
    commit: 1.96.2
    date: 0781e811de386a0c5bcb07ceb259df8ff8246a50
    Electron: 2025-04-25T04:49:20.797Z
    ElectronBuildId: 34.3.4
    Chromium: undefined
    Node.js: 132.0.6834.210
    V8: 20.18.3
    OS: 13.2.152.41-electron.0

:prohibited: Does the issue stop you from using Cursor? No, this issue does not completely stop me from using Cursor, as other functionalities work and the Cursor Tab works better in .py files. However, it significantly hinders my productivity when working with .ipynb files, as the key AI assistance feature is unreliable.

Thank you for looking into this issue.