Repository: spyder-ide/spyder

Issue:
Spyder showing Kite: unsupported on status bar
<!--- **PLEASE READ:** When submitting here, please ensure you've completed the following checklist and checked the boxes to confirm. Issue reports without it may be closed. Thanks! --->

### Issue Report Checklist

* [x] Searched the [issues page](https://github.com/spyder-ide/spyder/issues?q=is%3Aissue) for similar reports
* [x] Read the relevant sections of the [Spyder Troubleshooting Guide](https://github.com/spyder-ide/spyder/wiki/Troubleshooting-Guide-and-FAQ) and followed its advice
* [x] Reproduced the issue after updating with ``conda update spyder`` (or ``pip``, if not using Anaconda)
* [x] Could not reproduce inside ``jupyter qtconsole`` (if console-related)
* [x] Tried basic troubleshooting (if a bug/error)
    * [x] Restarted Spyder
    * [x] Reset preferences with ``spyder --reset``
    * [x] Reinstalled the latest version of [Anaconda](https://www.anaconda.com/download/)
    * [x] Tried the other applicable steps from the Troubleshooting Guide
* [x] Completed the **Problem Description**, **Steps to Reproduce** and **Version** sections below


## Problem Description
Kit does not seem to be fully working on latest 4.0.1 iteration. On the status bar of the IDE, it shows Kite: unsupported. Despite reinstalling Kite and installing plugins for Spyder it still shows unsupported. The result is that some of the features seem to be working but some auto completions won;t show in the editor pane.


### What steps reproduce the problem?

1. Download and install Kite engine (for Linux).
2. Launch Spyder and wait for some time (write code in the meantime)
3. Write code in the editor. After some time the status for Kite changes from 'supported' to 'unsupported'.


### What is the expected output? What do you see instead?
Auto completions should work fully and the status should show 'Ready' for Kite. Instead it seems to be not indexing too.


### Paste Traceback/Error Below (if applicable)
<!--- Copy from error dialog or View > Panes > Internal Console --->

```python-traceback

PASTE TRACEBACK HERE

```

## Versions
<!--- You can get this information from Help > About Spyder...
or (if Spyder won't launch) the "conda list" command
from the Anaconda Prompt/Terminal/command line. --->

* Spyder version: 4.0.1
* Python version: 3.7.5
* Qt version: 4.6.0
* PyQt version: 1.9.0
* Operating System name/version: Ubuntu

### Dependencies
<!--- Please go to the menu entry Help > Dependencies,
press the Copy to clipboard button and paste below --->

```
atomicwrites >=1.2.0         :  1.3.0 (OK)
chardet >=2.0.0              :  3.0.4 (OK)
cloudpickle >=0.5.0          :  1.2.2 (OK)
diff_match_patch >=20181111  :  20181111 (OK)
intervaltree                 :  None (OK)
IPython >=4.0                :  7.11.1 (OK)
jedi =0.14.1                 :  0.14.1 (OK)
keyring                      :  None (OK)
nbconvert >=4.0              :  5.6.1 (OK)
numpydoc >=0.6.0             :  0.9.2 (OK)
pexpect >=4.4.0              :  4.7.0 (OK)
pickleshare >=0.4            :  0.7.5 (OK)
psutil >=0.3                 :  5.6.7 (OK)
pygments >=2.0               :  2.5.2 (OK)
pylint >=0.25                :  2.4.3 (OK)
pyls >=0.31.2;<0.32.0        :  0.31.2 (OK)
xdg >=0.26                   :  0.26 (OK)
zmq >=17                     :  18.1.0 (OK)
qdarkstyle >=2.7             :  2.7 (OK)
qtawesome >=0.5.7            :  0.6.0 (OK)
qtconsole >=4.6.0            :  4.6.0 (OK)
qtpy >=1.5.0                 :  1.9.0 (OK)
rtree >=0.8.3                :  0.8.3 (OK)
sphinx >=0.6.6               :  2.3.1 (OK)
spyder_kernels >=1.8.1;<2.0.0:  1.8.1 (OK)
watchdog                     :  None (OK)
cython >=0.21                :  None (NOK)
matplotlib >=2.0.0           :  3.1.1 (OK)
numpy >=1.7                  :  1.18.1 (OK)
pandas >=0.13.1              :  0.25.3 (OK)
scipy >=0.17.0               :  1.3.2 (OK)
sympy >=0.7.3                :  None (NOK)
```



Discussion:
Thanks for reporting. Could you be more specific about this?

> The result is that some of the features seem to be working but some auto completions won;t show in the editor pane.

I mean, what auto completions are not working?
@metalogical, when could it occur that Kite becomes unsupported?
> Thanks for reporting. Could you be more specific about this?
> 
> > The result is that some of the features seem to be working but some auto completions won;t show in the editor pane.
> 
> I mean, what auto completions are not working?

Here's a screenshot I took:
![kite_error](https://user-images.githubusercontent.com/9760865/72735367-b33bf780-3bc1-11ea-8cff-8fd50dcdaea9.png)

First Kite shows 'Ready' for maybe 5 seconds and then transforming into the one shown above. As for the auto completions, it seems the worst affected are for the plotting classes. For example:
```python
figure, axes = plt.subplots()
axes.set_  # Does not display completions when tab pressed
```
The above snippet should display some options but I think that's where it's not working fully. For other instances though there are completions still showing up although I will have to look in detail for this.

Also this is what is showing for the Kite copilot:
![Kite_problem](https://user-images.githubusercontent.com/9760865/72735708-5db41a80-3bc2-11ea-8131-528715d93373.png)
As you can see, there is a 'try again' button. I don't know how it is supposed to be fixing the problem but trying again does not fix it.
I also have this issue. I first noticed it after a failed attempt to upgrade my anaconda to Python 3.8, could this have contributed to the issue?
@dalthviz, when does the "unsupported" message appear?
The `unsupported` status is showed when the current file type isn't supported for Kite. For example, if I open and `.html` having Kite enabled it would say in the status bar `unsupported`:

![image](https://user-images.githubusercontent.com/16781833/73311865-7ee5be00-41f5-11ea-861a-0410fa6c8b9e.png)

Also, if you hover the status bar, a tooltip should appear with a little description of the current status:

![image](https://user-images.githubusercontent.com/16781833/73312244-4397bf00-41f6-11ea-8a34-37c7854267e2.png)

@shivendra90 could you check if the tooltip of the status bar has some meaningful info different from the one I mention to understand what is happening here?

> The unsupported status is showed when the current file type isn't supported for Kite

@dalthviz, perhaps we should change this message to "unsupported file type" for clarity?
That is too long, I disagree with that!
What do you propose?
Not changing it
I think that we get that status from Kite itself (when Kite is running, we request the status and the response has the status and a description which we put in the tooltip). Checking the issue, I'm unsure if there are other cases where such status is being retrieved (maybe if Kite is running, but not working as expected, Kite returns such status?)
> Not changing it

The problem is that that message is not clear enough, as this issue shows. 
Still, from what @dalthviz described, that comes from kite and it should be a single word (like the rest) not a full sentence. We could update the kite onboarding or the kite install screen to explain how you can get more information with hover tooltip, but then again that is “common” knowledge.
Ok this is strange. I have a couple of .py files open in the editor pane. While for some Kite shows 'Ready' on the status bar, for others, it shows 'unsupported'. When hovering over the status bar for the unsupported file (which happens to be a .py file), it shows 'Kite only supports Python'. I took some screenshots.

For examplee, for the `lt_analysis.py` file, Kit shows 'unsupported' while for the file `sangam_analysis.py`, it shows 'Ready'. Both happen to be written in Python.

![spyder_scr_1](https://user-images.githubusercontent.com/9760865/73334251-3af4c680-4292-11ea-988d-666a63afb974.png)
![spyder_scr_2](https://user-images.githubusercontent.com/9760865/73334247-38926c80-4292-11ea-811e-ac303fb24345.png)

I'm unable to show the tool tip when hovering over the status bar since the screenshot app is somewhat limited in Linux. Also I think Kite is actually running in the back end and it shows 
tool tips for some instances when hovering inside the editor even when editing the unsupported file.
@shivendra90 thanks for the screenshots and new info! I'm not totally sure but maybe the name of the file is causing some issues?

Seems like the file with the unsupported status has a `t` with an underline (`t͟ `) as part of its name, could you try to change the name of the file and see if you still get the `unsupported` status?

Also, could try running Spyder with the `--debug-info verbose` flag from a terminal (something like `spyder --debug-info verbose`) to check the status requests Spyder is making (they should look something like `GET /clientapi/status?filename=...`)?

Thanks!
You can also try to directly `curl localhost:46624/clientapi/status?filename=...` to view Kite's status response for the given filetype. In theory, all Python files should be supported.

As @shivendra90 noted, Spyder already shows the "long" status in the hover tooltip, which seems like the right design to me.
> @shivendra90 thanks for the screenshots and new info! I'm not totally sure but maybe the name of the file is causing some issues?
> 
> Seems like the file with the unsupported status has a `t` with an underline (`t͟ `) as part of its name, could you try to change the name of the file and see if you still get the `unsupported` status?
> 
> Also, could try running Spyder with the `--debug-info verbose` flag from a terminal (something like `spyder --debug-info verbose`) to check the status requests Spyder is making (they should look something like `GET /clientapi/status?filename=...`)?
> 
> Thanks!

I renamed the file in question but Kite is still showing `unsupported`. These are the messages I get when running spyder in debug mode. They are very long and many but I think these messages are for the unsupported file:

<details>
```
2020-01-30 13:05:21,264 [DEBUG] [urllib3.connectionpool] -> http://127.0.0.1:46624 "GET /api/buffer/spyder/:home:shivendra:Desktop:AnalyticsVidhya:L&T:ltfs_analysis.py/8eb4587f669ee9bde34a3f03a66c40d0/hover?cursor_runes=3188 HTTP/1.1" 503 50
2020-01-30 13:05:21,265 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 23 Got response from kite
2020-01-30 13:05:21,459 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 23 timed out
2020-01-30 13:05:21,480 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 23 Got response from lsp
2020-01-30 13:05:21,480 [DEBUG] [spyder.plugins.completion.plugin] -> Gather responses for textDocument/hover
2020-01-30 13:05:24,426 [DEBUG] [urllib3.connectionpool] -> http://127.0.0.1:46624 "GET /clientapi/status?filename=/home/shivendra/Desktop/AnalyticsVidhya/L&T/ltfs_analysis.py HTTP/1.1" 200 91
2020-01-30 13:05:24,436 [DEBUG] [urllib3.connectionpool] -> http://127.0.0.1:46624 "GET /clientapi/status?filename=/home/shivendra/Desktop/AnalyticsVidhya/L&T/ltfs_analysis.py HTTP/1.1" 200 91
2020-01-30 13:05:24,496 [DEBUG] [spyder.plugins.editor.plugin] -> python completion server request: 'textDocument/cursorEvent'
2020-01-30 13:05:24,497 [DEBUG] [spyder.plugins.completion.kite.client] -> Perform textDocument/cursorEvent request with id 24
2020-01-30 13:05:24,497 [DEBUG] [spyder.plugins.completion.fallback.actor] -> Got request id 24: textDocument/cursorEvent for file /home/shivendra/Desktop/AnalyticsVidhya/L&T/ltfs_analysis.py
2020-01-30 13:05:24,505 [DEBUG] [urllib3.connectionpool] -> http://127.0.0.1:46624 "POST /clientapi/editor/event HTTP/1.1" 200 0
2020-01-30 13:05:24,522 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 24 Got response from kite
2020-01-30 13:05:24,698 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 24 timed out
2020-01-30 13:05:25,391 [DEBUG] [spyder.plugins.editor.widgets.editor] -> Added thread <spyder.plugins.editor.widgets.editor.AnalysisThread object at 0x7f321c0fb9b0> to queue
2020-01-30 13:05:25,442 [DEBUG] [spyder.plugins.editor.widgets.editor] -> Updating queue:
2020-01-30 13:05:25,442 [DEBUG] [spyder.plugins.editor.widgets.editor] ->     started: 0
2020-01-30 13:05:25,442 [DEBUG] [spyder.plugins.editor.widgets.editor] ->     pending: 1
2020-01-30 13:05:25,443 [DEBUG] [spyder.plugins.editor.widgets.editor] -> ===>starting: <spyder.plugins.editor.widgets.editor.AnalysisThread object at 0x7f321c0fb9b0>
2020-01-30 13:05:25,458 [DEBUG] [spyder.plugins.editor.widgets.editor] -> Updating queue:
2020-01-30 13:05:25,458 [DEBUG] [spyder.plugins.editor.widgets.editor] ->     started: 0
2020-01-30 13:05:25,458 [DEBUG] [spyder.plugins.editor.widgets.editor] ->     pending: 0
2020-01-30 13:05:26,159 [DEBUG] [spyder.plugins.editor.plugin] -> python completion server request: 'textDocument/hover'
2020-01-30 13:05:26,160 [DEBUG] [spyder.plugins.completion.languageserver.client] -> python request: textDocument/hover
2020-01-30 13:05:26,160 [DEBUG] [spyder.plugins.completion.fallback.actor] -> Got request id 25: textDocument/hover for file /home/shivendra/Desktop/AnalyticsVidhya/L&T/ltfs_analysis.py
2020-01-30 13:05:26,160 [DEBUG] [spyder.plugins.completion.kite.client] -> Perform textDocument/hover request with id 25
2020-01-30 13:05:26,161 [DEBUG] [spyder.plugins.completion.kite.providers.document] -> :home:shivendra:Desktop:AnalyticsVidhya:L&T:ltfs_analysis.py
2020-01-30 13:05:26,166 [DEBUG] [urllib3.connectionpool] -> http://127.0.0.1:46624 "GET /api/buffer/spyder/:home:shivendra:Desktop:AnalyticsVidhya:L&T:ltfs_analysis.py/8eb4587f669ee9bde34a3f03a66c40d0/hover?cursor_runes=3187 HTTP/1.1" 503 50
2020-01-30 13:05:26,167 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 25 Got response from kite
2020-01-30 13:05:26,321 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 25 Got response from lsp
2020-01-30 13:05:26,321 [DEBUG] [spyder.plugins.completion.plugin] -> Gather responses for textDocument/hover
2020-01-30 13:05:27,959 [DEBUG] [spyder.plugins.editor.plugin] -> python completion server request: 'textDocument/hover'
2020-01-30 13:05:27,960 [DEBUG] [spyder.plugins.completion.languageserver.client] -> python request: textDocument/hover
2020-01-30 13:05:27,960 [DEBUG] [spyder.plugins.completion.kite.client] -> Perform textDocument/hover request with id 26
2020-01-30 13:05:27,960 [DEBUG] [spyder.plugins.completion.fallback.actor] -> Got request id 26: textDocument/hover for file /home/shivendra/Desktop/AnalyticsVidhya/L&T/ltfs_analysis.py
2020-01-30 13:05:27,960 [DEBUG] [spyder.plugins.completion.kite.providers.document] -> :home:shivendra:Desktop:AnalyticsVidhya:L&T:ltfs_analysis.py
2020-01-30 13:05:27,966 [DEBUG] [urllib3.connectionpool] -> http://127.0.0.1:46624 "GET /api/buffer/spyder/:home:shivendra:Desktop:AnalyticsVidhya:L&T:ltfs_analysis.py/8eb4587f669ee9bde34a3f03a66c40d0/hover?cursor_runes=3175 HTTP/1.1" 503 50
2020-01-30 13:05:27,966 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 26 Got response from kite
2020-01-30 13:05:28,160 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 26 timed out
2020-01-30 13:05:28,551 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 26 Got response from lsp
2020-01-30 13:05:28,551 [DEBUG] [spyder.plugins.completion.plugin] -> Gather responses for textDocument/hover
2020-01-30 13:05:29,007 [DEBUG] [spyder.plugins.editor.plugin] -> python completion server request: 'textDocument/hover'
2020-01-30 13:05:29,007 [DEBUG] [spyder.plugins.completion.languageserver.client] -> python request: textDocument/hover
2020-01-30 13:05:29,008 [DEBUG] [spyder.plugins.completion.fallback.actor] -> Got request id 27: textDocument/hover for file /home/shivendra/Desktop/AnalyticsVidhya/L&T/ltfs_analysis.py
2020-01-30 13:05:29,008 [DEBUG] [spyder.plugins.completion.kite.client] -> Perform textDocument/hover request with id 27
2020-01-30 13:05:29,008 [DEBUG] [spyder.plugins.completion.kite.providers.document] -> :home:shivendra:Desktop:AnalyticsVidhya:L&T:ltfs_analysis.py
2020-01-30 13:05:29,013 [DEBUG] [urllib3.connectionpool] -> http://127.0.0.1:46624 "GET /api/buffer/spyder/:home:shivendra:Desktop:AnalyticsVidhya:L&T:ltfs_analysis.py/8eb4587f669ee9bde34a3f03a66c40d0/hover?cursor_runes=2854 HTTP/1.1" 503 50
2020-01-30 13:05:29,013 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 27 Got response from kite
2020-01-30 13:05:29,158 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 27 Got response from lsp
2020-01-30 13:05:29,158 [DEBUG] [spyder.plugins.completion.plugin] -> Gather responses for textDocument/hover
2020-01-30 13:05:30,512 [DEBUG] [spyder.plugins.editor.plugin] -> python completion server request: 'textDocument/cursorEvent'
2020-01-30 13:05:30,513 [DEBUG] [spyder.plugins.completion.fallback.actor] -> Got request id 28: textDocument/cursorEvent for file /home/shivendra/Desktop/AnalyticsVidhya/L&T/ltfs_analysis.py
2020-01-30 13:05:30,513 [DEBUG] [spyder.plugins.completion.kite.client] -> Perform textDocument/cursorEvent request with id 28
2020-01-30 13:05:30,521 [DEBUG] [urllib3.connectionpool] -> http://127.0.0.1:46624 "POST /clientapi/editor/event HTTP/1.1" 200 0
2020-01-30 13:05:30,531 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 28 Got response from kite
2020-01-30 13:05:30,719 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 28 timed out
2020-01-30 13:05:31,557 [DEBUG] [spyder.plugins.editor.plugin] -> python completion server request: 'textDocument/hover'
2020-01-30 13:05:31,557 [DEBUG] [spyder.plugins.completion.languageserver.client] -> python request: textDocument/hover
2020-01-30 13:05:31,558 [DEBUG] [spyder.plugins.completion.kite.client] -> Perform textDocument/hover request with id 29
2020-01-30 13:05:31,558 [DEBUG] [spyder.plugins.completion.fallback.actor] -> Got request id 29: textDocument/hover for file /home/shivendra/Desktop/AnalyticsVidhya/L&T/ltfs_analysis.py
2020-01-30 13:05:31,558 [DEBUG] [spyder.plugins.completion.kite.providers.document] -> :home:shivendra:Desktop:AnalyticsVidhya:L&T:ltfs_analysis.py
2020-01-30 13:05:31,563 [DEBUG] [urllib3.connectionpool] -> http://127.0.0.1:46624 "GET /api/buffer/spyder/:home:shivendra:Desktop:AnalyticsVidhya:L&T:ltfs_analysis.py/8eb4587f669ee9bde34a3f03a66c40d0/hover?cursor_runes=2855 HTTP/1.1" 503 50
2020-01-30 13:05:31,564 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 29 Got response from kite
2020-01-30 13:05:31,732 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 29 Got response from lsp
2020-01-30 13:05:31,732 [DEBUG] [spyder.plugins.completion.plugin] -> Gather responses for textDocument/hover
2020-01-30 13:05:39,007 [DEBUG] [spyder.plugins.editor.plugin] -> python completion server request: 'textDocument/hover'
2020-01-30 13:05:39,008 [DEBUG] [spyder.plugins.completion.languageserver.client] -> python request: textDocument/hover
2020-01-30 13:05:39,008 [DEBUG] [spyder.plugins.completion.kite.client] -> Perform textDocument/hover request with id 30
2020-01-30 13:05:39,008 [DEBUG] [spyder.plugins.completion.fallback.actor] -> Got request id 30: textDocument/hover for file /home/shivendra/Desktop/AnalyticsVidhya/L&T/ltfs_analysis.py
2020-01-30 13:05:39,009 [DEBUG] [spyder.plugins.completion.kite.providers.document] -> :home:shivendra:Desktop:AnalyticsVidhya:L&T:ltfs_analysis.py
2020-01-30 13:05:39,013 [DEBUG] [urllib3.connectionpool] -> http://127.0.0.1:46624 "GET /api/buffer/spyder/:home:shivendra:Desktop:AnalyticsVidhya:L&T:ltfs_analysis.py/8eb4587f669ee9bde34a3f03a66c40d0/hover?cursor_runes=2594 HTTP/1.1" 503 50
2020-01-30 13:05:39,014 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 30 Got response from kite
2020-01-30 13:05:39,216 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 30 timed out
2020-01-30 13:05:43,557 [DEBUG] [spyder.plugins.editor.plugin] -> python completion server request: 'textDocument/hover'
2020-01-30 13:05:43,557 [DEBUG] [spyder.plugins.completion.languageserver.client] -> python request: textDocument/hover
2020-01-30 13:05:43,558 [DEBUG] [spyder.plugins.completion.fallback.actor] -> Got request id 31: textDocument/hover for file /home/shivendra/Desktop/AnalyticsVidhya/L&T/ltfs_analysis.py
2020-01-30 13:05:43,558 [DEBUG] [spyder.plugins.completion.kite.client] -> Perform textDocument/hover request with id 31
2020-01-30 13:05:43,559 [DEBUG] [spyder.plugins.completion.kite.providers.document] -> :home:shivendra:Desktop:AnalyticsVidhya:L&T:ltfs_analysis.py
2020-01-30 13:05:43,562 [DEBUG] [urllib3.connectionpool] -> http://127.0.0.1:46624 "GET /api/buffer/spyder/:home:shivendra:Desktop:AnalyticsVidhya:L&T:ltfs_analysis.py/8eb4587f669ee9bde34a3f03a66c40d0/hover?cursor_runes=858 HTTP/1.1" 503 50
2020-01-30 13:05:43,562 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 31 Got response from kite
2020-01-30 13:05:43,758 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 31 timed out
2020-01-30 13:05:46,087 [DEBUG] [spyder.plugins.editor.plugin] -> python completion server request: 'textDocument/cursorEvent'
2020-01-30 13:05:46,088 [DEBUG] [spyder.plugins.completion.kite.client] -> Perform textDocument/cursorEvent request with id 32
2020-01-30 13:05:46,088 [DEBUG] [spyder.plugins.completion.fallback.actor] -> Got request id 32: textDocument/cursorEvent for file /home/shivendra/Desktop/AnalyticsVidhya/L&T/ltfs_analysis.py
2020-01-30 13:05:46,096 [DEBUG] [urllib3.connectionpool] -> http://127.0.0.1:46624 "POST /clientapi/editor/event HTTP/1.1" 200 0
2020-01-30 13:05:46,109 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 32 Got response from kite
2020-01-30 13:05:46,288 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 32 timed out
2020-01-30 13:05:46,612 [DEBUG] [spyder.plugins.editor.plugin] -> python completion server request: 'textDocument/hover'
2020-01-30 13:05:46,613 [DEBUG] [spyder.plugins.completion.languageserver.client] -> python request: textDocument/hover
2020-01-30 13:05:46,613 [DEBUG] [spyder.plugins.completion.kite.client] -> Perform textDocument/hover request with id 33
2020-01-30 13:05:46,613 [DEBUG] [spyder.plugins.completion.fallback.actor] -> Got request id 33: textDocument/hover for file /home/shivendra/Desktop/AnalyticsVidhya/L&T/ltfs_analysis.py
```
</details>

Finally these are the message for the supported file:

<details>
```
2020-01-30 13:08:27,085 [DEBUG] [urllib3.connectionpool] -> http://127.0.0.1:46624 "GET /clientapi/status?filename=/home/shivendra/Desktop/Hacker_earth/traffic_time_series/Sangam_analysis.py HTTP/1.1" 200 58
2020-01-30 13:08:27,087 [DEBUG] [spyder.plugins.editor.widgets.editor] -> Set focus to: /home/shivendra/Desktop/Hacker_earth/traffic_time_series/Sangam_analysis.py
2020-01-30 13:08:27,088 [DEBUG] [spyder.plugins.editor.widgets.editor] -> Current changed: 1 - /home/shivendra/Desktop/Hacker_earth/traffic_time_series/Sangam_analysis.py
2020-01-30 13:08:27,091 [DEBUG] [urllib3.connectionpool] -> http://127.0.0.1:46624 "GET /clientapi/status?filename=/home/shivendra/Desktop/Hacker_earth/traffic_time_series/Sangam_analysis.py HTTP/1.1" 200 58
2020-01-30 13:08:27,767 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 15 Got response from lsp
2020-01-30 13:08:27,767 [DEBUG] [spyder.plugins.completion.plugin] -> Gather responses for textDocument/documentSymbol
2020-01-30 13:08:28,595 [DEBUG] [spyder.plugins.completion.languageserver.client] -> python response: textDocument/publishDiagnostics
2020-01-30 13:08:28,595 [DEBUG] [spyder.plugins.editor.plugin] -> python completion server request: 'textDocument/foldingRange'
2020-01-30 13:08:28,596 [DEBUG] [spyder.plugins.completion.languageserver.client] -> python request: textDocument/foldingRange
2020-01-30 13:08:28,596 [DEBUG] [spyder.plugins.editor.plugin] -> python completion server request: 'textDocument/documentSymbol'
2020-01-30 13:08:28,597 [DEBUG] [spyder.plugins.completion.fallback.actor] -> Got request id 17: textDocument/foldingRange for file /home/shivendra/Desktop/IPy notebooks/Stock Price Analysis/stock_analysis.py
2020-01-30 13:08:28,597 [DEBUG] [spyder.plugins.completion.languageserver.client] -> python request: textDocument/documentSymbol
2020-01-30 13:08:28,600 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 17 Got response from kite
2020-01-30 13:08:28,600 [DEBUG] [spyder.plugins.completion.fallback.actor] -> Got request id 18: textDocument/documentSymbol for file /home/shivendra/Desktop/IPy notebooks/Stock Price Analysis/stock_analysis.py
2020-01-30 13:08:28,600 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 18 Got response from kite
2020-01-30 13:08:28,742 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 17 Got response from lsp
2020-01-30 13:08:28,742 [DEBUG] [spyder.plugins.completion.plugin] -> Gather responses for textDocument/foldingRange
2020-01-30 13:08:28,797 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 18 timed out
2020-01-30 13:08:28,821 [DEBUG] [spyder.plugins.completion.languageserver.client] -> python response: textDocument/publishDiagnostics
2020-01-30 13:08:28,821 [DEBUG] [spyder.plugins.editor.plugin] -> python completion server request: 'textDocument/foldingRange'
2020-01-30 13:08:28,822 [DEBUG] [spyder.plugins.completion.languageserver.client] -> python request: textDocument/foldingRange
2020-01-30 13:08:28,822 [DEBUG] [spyder.plugins.editor.plugin] -> python completion server request: 'textDocument/documentSymbol'
2020-01-30 13:08:28,822 [DEBUG] [spyder.plugins.completion.languageserver.client] -> python request: textDocument/documentSymbol
2020-01-30 13:08:28,825 [DEBUG] [spyder.plugins.completion.fallback.actor] -> Got request id 19: textDocument/foldingRange for file /home/shivendra/Desktop/Hacker_earth/traffic_time_series/Sangam_analysis.py
2020-01-30 13:08:28,826 [DEBUG] [spyder.plugins.completion.fallback.actor] -> Got request id 20: textDocument/documentSymbol for file /home/shivendra/Desktop/Hacker_earth/traffic_time_series/Sangam_analysis.py
2020-01-30 13:08:28,857 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 19 Got response from kite
2020-01-30 13:08:28,857 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 20 Got response from kite
2020-01-30 13:08:29,022 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 19 timed out
2020-01-30 13:08:29,022 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 20 timed out
2020-01-30 13:08:29,078 [DEBUG] [spyder.plugins.completion.languageserver.client] -> python response: textDocument/publishDiagnostics
2020-01-30 13:08:29,078 [DEBUG] [spyder.plugins.editor.plugin] -> python completion server request: 'textDocument/foldingRange'
2020-01-30 13:08:29,079 [DEBUG] [spyder.plugins.completion.languageserver.client] -> python request: textDocument/foldingRange
2020-01-30 13:08:29,079 [DEBUG] [spyder.plugins.completion.fallback.actor] -> Got request id 21: textDocument/foldingRange for file /home/shivendra/Desktop/AnalyticsVidhya/L&T/ltfs_analysis.py
2020-01-30 13:08:29,080 [DEBUG] [spyder.plugins.editor.plugin] -> python completion server request: 'textDocument/documentSymbol'
2020-01-30 13:08:29,080 [DEBUG] [spyder.plugins.completion.languageserver.client] -> python request: textDocument/documentSymbol
2020-01-30 13:08:29,082 [DEBUG] [spyder.plugins.completion.fallback.actor] -> Got request id 22: textDocument/documentSymbol for file /home/shivendra/Desktop/AnalyticsVidhya/L&T/ltfs_analysis.py
2020-01-30 13:08:29,085 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 21 Got response from kite
2020-01-30 13:08:29,085 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 22 Got response from kite
2020-01-30 13:08:29,196 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 18 Got response from lsp
2020-01-30 13:08:29,197 [DEBUG] [spyder.plugins.completion.plugin] -> Gather responses for textDocument/documentSymbol
2020-01-30 13:08:29,279 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 21 timed out
2020-01-30 13:08:29,281 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 22 timed out
2020-01-30 13:08:29,370 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 19 Got response from lsp
2020-01-30 13:08:29,370 [DEBUG] [spyder.plugins.completion.plugin] -> Gather responses for textDocument/foldingRange
2020-01-30 13:08:29,527 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 20 Got response from lsp
2020-01-30 13:08:29,527 [DEBUG] [spyder.plugins.completion.plugin] -> Gather responses for textDocument/documentSymbol
2020-01-30 13:08:29,932 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 21 Got response from lsp
2020-01-30 13:08:29,932 [DEBUG] [spyder.plugins.completion.plugin] -> Gather responses for textDocument/foldingRange
2020-01-30 13:08:30,070 [DEBUG] [spyder.plugins.completion.plugin] -> Completion plugin: Request 22 Got response from lsp
2020-01-30 13:08:30,070 [DEBUG] [spyder.plugins.completion.plugin] -> Gather responses for textDocument/documentSymbol
```
</details>
Thanks for the logs @shivendra90 (indeed it can be quite difficult to navigate them) but I was able to replicate this. Basically the error is being caused for the `&` in the path of the file (in your case `/home/shivendra/Desktop/AnalyticsVidhya/L&T/ltfs_analysis.py`). As an example:

![image](https://user-images.githubusercontent.com/16781833/73460215-1bb77100-4346-11ea-8b31-908cf6171f11.png)

Just to confirm could you try to check the same file with `unsupported` status but placing it in another path without the `&`? Again, thanks for all the feedback and info :+1:
> Basically the error is being caused for the & in the path of the file

@metalogical, I think this needs to be solved on the Kite side. Or maybe we need to escape the `&` when submitting the request to Kite. What do you think?
I think we need to escape it @ccordoba12 since we pass that as an uri, no?
Yes, you need to properly encode the URL with functions from https://docs.python.org/3.8/library/urllib.parse.html

Resolving patch:
diff --git a/spyder/plugins/completion/kite/__init__.py b/spyder/plugins/completion/kite/__init__.py
--- a/spyder/plugins/completion/kite/__init__.py
+++ b/spyder/plugins/completion/kite/__init__.py
@@ -26,9 +26,8 @@ class _KiteEndpoints(type):
     SIGNATURE_ENDPOINT = ('POST', '/clientapi/editor/signatures')
     ONBOARDING_ENDPOINT = ('GET',
                            '/clientapi/plugins/onboarding_file?editor=spyder')
-    FILENAME_STATUS_ENDPOINT = (
-        'GET', u'/clientapi/status?filename={filename}')
-    BUFFER_STATUS_ENDPOINT = ('GET', '/clientapi/status?filetype=python')
+    STATUS_ENDPOINT = (
+        'GET', u'/clientapi/status')  # Params: filename or filetype
 
     def __getattribute__(self, attr):
         value = object.__getattribute__(self, attr)
diff --git a/spyder/plugins/completion/kite/client.py b/spyder/plugins/completion/kite/client.py
--- a/spyder/plugins/completion/kite/client.py
+++ b/spyder/plugins/completion/kite/client.py
@@ -8,6 +8,10 @@
 
 # Standard library imports
 import logging
+try:
+    from urllib import quote  # Python 2
+except ImportError:
+    from urllib.parse import quote  # Python 3
 
 # Third party imports
 from qtpy.QtCore import QObject, QThread, Signal, QMutex
@@ -19,7 +23,8 @@
 from spyder.plugins.completion.kite.providers import KiteMethodProviderMixIn
 from spyder.plugins.completion.kite.utils.status import (
     status, check_if_kite_running)
-from spyder.py3compat import ConnectionError, ConnectionRefusedError
+from spyder.py3compat import (
+    ConnectionError, ConnectionRefusedError, TEXT_TYPES)
 
 
 logger = logging.getLogger(__name__)
@@ -90,12 +95,13 @@ def get_onboarding_file(self):
 
     def _get_status(self, filename):
         """Perform a request to get kite status for a file."""
+        verb, url = KITE_ENDPOINTS.STATUS_ENDPOINT
         if filename:
-            verb, url = KITE_ENDPOINTS.FILENAME_STATUS_ENDPOINT
-            url = url.format(filename=filename)
+            url_params = {'filename': filename}
         else:
-            verb, url = KITE_ENDPOINTS.BUFFER_STATUS_ENDPOINT
-        success, response = self.perform_http_request(verb, url)
+            url_params = {'filetype': 'python'}
+        success, response = self.perform_http_request(
+            verb, url, url_params=url_params)
         return response
 
     def get_status(self, filename):
@@ -107,11 +113,11 @@ def get_status(self, filename):
         else:
             self.sig_status_response_ready[dict].emit(kite_status)
 
-    def perform_http_request(self, verb, url, params=None):
+    def perform_http_request(self, verb, url, url_params=None, params=None):
         response = None
         http_method = getattr(self.endpoint, verb)
         try:
-            http_response = http_method(url, json=params)
+            http_response = http_method(url, params=url_params, json=params)
         except Exception as error:
             return False, None
         success = http_response.status_code == 200
@@ -127,10 +133,13 @@ def send(self, method, params, url_params):
         response = None
         if self.endpoint is not None and method in KITE_REQUEST_MAPPING:
             http_verb, path = KITE_REQUEST_MAPPING[method]
-            path = path.format(**url_params)
+            encoded_url_params = {
+                key: quote(value) if isinstance(value, TEXT_TYPES) else value
+                for (key, value) in url_params.items()}
+            path = path.format(**encoded_url_params)
             try:
                 success, response = self.perform_http_request(
-                    http_verb, path, params)
+                    http_verb, path, params=params)
             except (ConnectionRefusedError, ConnectionError):
                 return response
         return response


Test patch:
diff --git a/spyder/plugins/completion/kite/utils/tests/test_install.py b/spyder/plugins/completion/kite/utils/tests/test_install.py
--- a/spyder/plugins/completion/kite/utils/tests/test_install.py
+++ b/spyder/plugins/completion/kite/utils/tests/test_install.py
@@ -70,7 +70,10 @@ def finished():
     with qtbot.waitSignal(install_manager.finished, timeout=INSTALL_TIMEOUT):
         install_manager.install()
 
-    assert check_if_kite_installed() and check_if_kite_running()
+    # Check that kite was installed and is running
+    qtbot.waitUntil(
+        lambda: check_if_kite_installed() and check_if_kite_running(),
+        timeout=5000)
 
 
 if __name__ == "__main__":