Skip to content

avatar/anonymous username not being shown along with the editing cursor #502

@hhuuggoo

Description

@hhuuggoo

Description

We are running jupyter lab (in single user mode, not with jupyter hub) with jupyter collaboration. When we attempt to collaboratively edit, we can see colored cursors marking each editor, however there is no avatar or anonymous username displayed along with the cursor. (I'm not sure if this is a bug or not but it seems like it based on the videos we have seen)

Reproduce

  1. create a Python environment with jupyterlab and jupyter_collaboration
  2. Open a notebook in one browser(let's say chrome).
  3. Edit that notebook in another browser (let's say firefox)
  4. You will see a colored cursor for the editor, but you will not see an anonymous username badge.

Expected behavior

I would expect to see an anonymous username badge follow the cursor.

Context

I could attach my conda environment if it would be helpful, but all I did was

conda create -n rtc jupyterlab
conda activate rtc
pip install jupyter_collaboration
Troubleshoot Output
$PATH:
	/home/hugo/.nvm/versions/node/v24.3.0/bin
	/home/hugo/.nebius/bin
	/home/hugo/bin
	/home/hugo/miniconda3/envs/rtc/bin
	/home/hugo/miniconda3/condabin
	/home/hugo/.cargo/bin
	/usr/local/sbin
	/usr/local/bin
	/usr/sbin
	/usr/bin
	/sbin
	/bin
	/usr/games
	/usr/local/games
	/snap/bin
	/snap/bin
	/usr/local/go/bin
	/usr/local/aws-cli/v2/current/bin
	/opt/google-cloud-sdk/bin

sys.path:
/home/hugo/miniconda3/envs/rtc/bin
/home/hugo/miniconda3/envs/rtc/lib/python313.zip
/home/hugo/miniconda3/envs/rtc/lib/python3.13
/home/hugo/miniconda3/envs/rtc/lib/python3.13/lib-dynload
/home/hugo/miniconda3/envs/rtc/lib/python3.13/site-packages

sys.executable:
/home/hugo/miniconda3/envs/rtc/bin/python

sys.version:
3.13.7 | packaged by Anaconda, Inc. | (main, Sep 9 2025, 19:59:03) [GCC 11.2.0]

platform.platform():
Linux-6.9.3-76060903-generic-x86_64-with-glibc2.35

which -a jupyter:
/home/hugo/miniconda3/envs/rtc/bin/jupyter

pip list:
Package Version
------------------------- --------------
anyio 4.7.0
argon2-cffi 21.3.0
argon2-cffi-bindings 25.1.0
arrow 1.3.0
asttokens 3.0.0
async-lru 2.0.4
attrs 24.3.0
babel 2.16.0
beautifulsoup4 4.13.5
bleach 6.2.0
brotlicffi 1.0.9.2
certifi 2025.8.3
cffi 1.17.1
charset-normalizer 3.3.2
comm 0.2.1
debugpy 1.8.16
decorator 5.2.1
defusedxml 0.7.1
executing 2.2.1
fastjsonschema 2.20.0
fqdn 1.5.1
h11 0.16.0
httpcore 1.0.9
httpx 0.28.1
idna 3.7
ipykernel 6.30.1
ipython 9.1.0
ipython_pygments_lexers 1.1.1
isoduration 20.11.0
jedi 0.19.2
Jinja2 3.1.6
json5 0.9.25
jsonpointer 3.0.0
jsonschema 4.25.0
jsonschema-specifications 2023.7.1
jupyter_client 8.6.3
jupyter-collaboration 4.1.1
jupyter-collaboration-ui 2.1.1
jupyter_core 5.8.1
jupyter-docprovider 2.1.1
jupyter-events 0.12.0
jupyter-lsp 2.2.5
jupyter_server 2.16.0
jupyter_server_fileid 0.9.3
jupyter_server_terminals 0.5.3
jupyter-server-ydoc 2.1.1
jupyter-ydoc 3.1.0
jupyterlab 4.4.7
jupyterlab_pygments 0.3.0
jupyterlab_server 2.27.3
lark 1.2.2
MarkupSafe 3.0.2
matplotlib-inline 0.1.6
mistune 3.1.2
nbclient 0.10.2
nbconvert 7.16.6
nbformat 5.10.4
nest_asyncio 1.6.0
notebook_shim 0.2.4
overrides 7.4.0
packaging 25.0
pandocfilters 1.5.1
parso 0.8.4
pexpect 4.9.0
pip 25.2
platformdirs 4.3.7
prometheus_client 0.21.1
prompt_toolkit 3.0.43
psutil 7.0.0
ptyprocess 0.7.0
pure_eval 0.2.3
pycparser 2.23
pycrdt 0.12.32
pycrdt-store 0.1.2
pycrdt-websocket 0.16.0
Pygments 2.19.1
PySocks 1.7.1
python-dateutil 2.9.0.post0
python-json-logger 3.2.1
PyYAML 6.0.2
pyzmq 27.1.0
referencing 0.30.2
requests 2.32.5
rfc3339_validator 0.1.4
rfc3986_validator 0.1.1
rfc3987-syntax 1.1.0
rpds-py 0.22.3
Send2Trash 1.8.2
setuptools 78.1.1
six 1.17.0
sniffio 1.3.0
soupsieve 2.5
sqlite-anyio 0.2.3
stack_data 0.6.3
terminado 0.18.1
tinycss2 1.4.0
tornado 6.5.1
traitlets 5.14.3
types-python-dateutil 2.9.0.20250822
typing_extensions 4.15.0
uri-template 1.3.0
urllib3 2.5.0
wcwidth 0.2.13
webcolors 24.11.1
webencodings 0.5.1
websocket-client 1.8.0
wheel 0.45.1

conda list:
# packages in environment at /home/hugo/miniconda3/envs/rtc:
#
# Name Version Build Channel
_libgcc_mutex 0.1 main
_openmp_mutex 5.1 1_gnu
anyio 4.7.0 py313h06a4308_0
argon2-cffi 21.3.0 pyhd3eb1b0_0
argon2-cffi-bindings 25.1.0 py313hee96239_0
arrow 1.3.0 pypi_0 pypi
asttokens 3.0.0 py313h06a4308_0
async-lru 2.0.4 py313h06a4308_0
attrs 24.3.0 py313h06a4308_0
babel 2.16.0 py313h06a4308_0
beautifulsoup4 4.13.5 py313h06a4308_0
bleach 6.2.0 py313h06a4308_0
brotlicffi 1.0.9.2 py313h6a678d5_1
bzip2 1.0.8 h5eee18b_6
ca-certificates 2025.9.9 h06a4308_0
certifi 2025.8.3 py313h06a4308_0
cffi 1.17.1 py313h1fdaa30_1
charset-normalizer 3.3.2 pyhd3eb1b0_0
comm 0.2.1 py313h06a4308_0
debugpy 1.8.16 py313hbdd6827_0
decorator 5.2.1 py313h06a4308_0
defusedxml 0.7.1 pyhd3eb1b0_0
executing 2.2.1 py313h06a4308_0
expat 2.7.1 h6a678d5_0
fqdn 1.5.1 pypi_0 pypi
h11 0.16.0 py313h06a4308_0
httpcore 1.0.9 py313h06a4308_0
httpx 0.28.1 py313h06a4308_0
idna 3.7 py313h06a4308_0
ipykernel 6.30.1 py313h06a4308_0
ipython 9.1.0 py313h06a4308_0
ipython_pygments_lexers 1.1.1 py313h06a4308_0
isoduration 20.11.0 pypi_0 pypi
jedi 0.19.2 py313h06a4308_0
jinja2 3.1.6 py313h06a4308_0
json5 0.9.25 py313h06a4308_0
jsonpointer 3.0.0 pypi_0 pypi
jsonschema 4.25.0 py313h06a4308_0
jsonschema-specifications 2023.7.1 py313h06a4308_0
jupyter-collaboration 4.1.1 pypi_0 pypi
jupyter-collaboration-ui 2.1.1 pypi_0 pypi
jupyter-docprovider 2.1.1 pypi_0 pypi
jupyter-lsp 2.2.5 py313h06a4308_0
jupyter-server-fileid 0.9.3 pypi_0 pypi
jupyter-server-ydoc 2.1.1 pypi_0 pypi
jupyter-ydoc 3.1.0 pypi_0 pypi
jupyter_client 8.6.3 py313h06a4308_0
jupyter_core 5.8.1 py313h06a4308_0
jupyter_events 0.12.0 py313h06a4308_0
jupyter_server 2.16.0 py313h06a4308_0
jupyter_server_terminals 0.5.3 py313h06a4308_0
jupyterlab 4.4.7 py313h06a4308_0
jupyterlab_pygments 0.3.0 py313h06a4308_0
jupyterlab_server 2.27.3 py313h06a4308_0
lark 1.2.2 pypi_0 pypi
ld_impl_linux-64 2.40 h12ee557_0
libffi 3.4.4 h6a678d5_1
libgcc-ng 11.2.0 h1234567_1
libgomp 11.2.0 h1234567_1
libmpdec 4.0.0 h5eee18b_0
libsodium 1.0.20 heac8642_0
libstdcxx-ng 11.2.0 h1234567_1
libuuid 1.41.5 h5eee18b_0
libxcb 1.17.0 h9b100fa_0
libzlib 1.3.1 hb25bd0a_0
markupsafe 3.0.2 py313h5eee18b_0
matplotlib-inline 0.1.6 py313h06a4308_0
mistune 3.1.2 py313h06a4308_0
nbclient 0.10.2 py313h06a4308_0
nbconvert-core 7.16.6 py313h06a4308_0
nbformat 5.10.4 py313h06a4308_0
ncurses 6.5 h7934f7d_0
nest-asyncio 1.6.0 py313h06a4308_0
notebook-shim 0.2.4 py313h06a4308_0
openssl 3.0.17 h5eee18b_0
overrides 7.4.0 py313h06a4308_0
packaging 25.0 py313h06a4308_0
pandocfilters 1.5.1 py313h06a4308_0
parso 0.8.4 py313h06a4308_0
pexpect 4.9.0 py313h06a4308_0
pip 25.2 pyhc872135_0
platformdirs 4.3.7 py313h06a4308_0
prometheus_client 0.21.1 py313h06a4308_0
prompt-toolkit 3.0.43 py313h06a4308_0
prompt_toolkit 3.0.43 hd3eb1b0_0
psutil 7.0.0 py313hee96239_0
pthread-stubs 0.3 h0ce48e5_1
ptyprocess 0.7.0 pyhd3eb1b0_2
pure_eval 0.2.3 py313h06a4308_0
pycparser 2.23 py313h06a4308_0
pycrdt 0.12.32 pypi_0 pypi
pycrdt-store 0.1.2 pypi_0 pypi
pycrdt-websocket 0.16.0 pypi_0 pypi
pygments 2.19.1 py313h06a4308_0
pysocks 1.7.1 py313h06a4308_0
python 3.13.7 h7e8bc2b_100_cp313
python-dateutil 2.9.0post0 py313h06a4308_2
python-fastjsonschema 2.20.0 py313h06a4308_0
python-json-logger 3.2.1 py313h06a4308_0
python_abi 3.13 1_cp313
pyyaml 6.0.2 py313h5eee18b_0
pyzmq 27.1.0 py313hcf8288c_0
readline 8.3 hc2a1206_0
referencing 0.30.2 py313h06a4308_0
requests 2.32.5 py313h06a4308_0
rfc3339-validator 0.1.4 py313h06a4308_0
rfc3986-validator 0.1.1 py313h06a4308_0
rfc3987-syntax 1.1.0 pypi_0 pypi
rpds-py 0.22.3 py313h4aa5aa6_0
send2trash 1.8.2 py313h06a4308_1
setuptools 78.1.1 py313h06a4308_0
six 1.17.0 py313h06a4308_0
sniffio 1.3.0 py313h06a4308_0
soupsieve 2.5 py313h06a4308_0
sqlite 3.50.2 hb25bd0a_1
sqlite-anyio 0.2.3 pypi_0 pypi
stack_data 0.6.3 py313h06a4308_0
terminado 0.18.1 py313h06a4308_0
tinycss2 1.4.0 py313h06a4308_0
tk 8.6.15 h54e0aa7_0
tornado 6.5.1 py313h5eee18b_0
traitlets 5.14.3 py313h06a4308_0
types-python-dateutil 2.9.0.20250822 pypi_0 pypi
typing-extensions 4.15.0 py313h06a4308_0
typing_extensions 4.15.0 py313h06a4308_0
tzdata 2025b h04d1e81_0
uri-template 1.3.0 pypi_0 pypi
urllib3 2.5.0 py313h06a4308_0
wcwidth 0.2.13 py313h06a4308_0
webcolors 24.11.1 pypi_0 pypi
webencodings 0.5.1 py313h06a4308_2
websocket-client 1.8.0 py313h06a4308_0
wheel 0.45.1 py313h06a4308_0
xorg-libx11 1.8.12 h9b100fa_1
xorg-libxau 1.0.12 h9b100fa_0
xorg-libxdmcp 1.1.5 h9b100fa_0
xorg-xorgproto 2024.1 h5eee18b_1
xz 5.6.4 h5eee18b_1
yaml 0.2.5 h7b6447c_0
zeromq 4.3.5 hb0a5e54_1
zlib 1.3.1 hb25bd0a_0

conda env:
name: rtc
channels:
- defaults
- https://repo.anaconda.com/pkgs/main
- https://repo.anaconda.com/pkgs/r
dependencies:
- _libgcc_mutex=0.1=main
- _openmp_mutex=5.1=1_gnu
- anyio=4.7.0=py313h06a4308_0
- argon2-cffi=21.3.0=pyhd3eb1b0_0
- argon2-cffi-bindings=25.1.0=py313hee96239_0
- asttokens=3.0.0=py313h06a4308_0
- async-lru=2.0.4=py313h06a4308_0
- attrs=24.3.0=py313h06a4308_0
- babel=2.16.0=py313h06a4308_0
- beautifulsoup4=4.13.5=py313h06a4308_0
- bleach=6.2.0=py313h06a4308_0
- brotlicffi=1.0.9.2=py313h6a678d5_1
- bzip2=1.0.8=h5eee18b_6
- ca-certificates=2025.9.9=h06a4308_0
- certifi=2025.8.3=py313h06a4308_0
- cffi=1.17.1=py313h1fdaa30_1
- charset-normalizer=3.3.2=pyhd3eb1b0_0
- comm=0.2.1=py313h06a4308_0
- debugpy=1.8.16=py313hbdd6827_0
- decorator=5.2.1=py313h06a4308_0
- defusedxml=0.7.1=pyhd3eb1b0_0
- executing=2.2.1=py313h06a4308_0
- expat=2.7.1=h6a678d5_0
- h11=0.16.0=py313h06a4308_0
- httpcore=1.0.9=py313h06a4308_0
- httpx=0.28.1=py313h06a4308_0
- idna=3.7=py313h06a4308_0
- ipykernel=6.30.1=py313h06a4308_0
- ipython=9.1.0=py313h06a4308_0
- ipython_pygments_lexers=1.1.1=py313h06a4308_0
- jedi=0.19.2=py313h06a4308_0
- jinja2=3.1.6=py313h06a4308_0
- json5=0.9.25=py313h06a4308_0
- jsonschema=4.25.0=py313h06a4308_0
- jsonschema-specifications=2023.7.1=py313h06a4308_0
- jupyter-lsp=2.2.5=py313h06a4308_0
- jupyter_client=8.6.3=py313h06a4308_0
- jupyter_core=5.8.1=py313h06a4308_0
- jupyter_events=0.12.0=py313h06a4308_0
- jupyter_server=2.16.0=py313h06a4308_0
- jupyter_server_terminals=0.5.3=py313h06a4308_0
- jupyterlab=4.4.7=py313h06a4308_0
- jupyterlab_pygments=0.3.0=py313h06a4308_0
- jupyterlab_server=2.27.3=py313h06a4308_0
- ld_impl_linux-64=2.40=h12ee557_0
- libffi=3.4.4=h6a678d5_1
- libgcc-ng=11.2.0=h1234567_1
- libgomp=11.2.0=h1234567_1
- libmpdec=4.0.0=h5eee18b_0
- libsodium=1.0.20=heac8642_0
- libstdcxx-ng=11.2.0=h1234567_1
- libuuid=1.41.5=h5eee18b_0
- libxcb=1.17.0=h9b100fa_0
- libzlib=1.3.1=hb25bd0a_0
- markupsafe=3.0.2=py313h5eee18b_0
- matplotlib-inline=0.1.6=py313h06a4308_0
- mistune=3.1.2=py313h06a4308_0
- nbclient=0.10.2=py313h06a4308_0
- nbconvert-core=7.16.6=py313h06a4308_0
- nbformat=5.10.4=py313h06a4308_0
- ncurses=6.5=h7934f7d_0
- nest-asyncio=1.6.0=py313h06a4308_0
- notebook-shim=0.2.4=py313h06a4308_0
- openssl=3.0.17=h5eee18b_0
- overrides=7.4.0=py313h06a4308_0
- packaging=25.0=py313h06a4308_0
- pandocfilters=1.5.1=py313h06a4308_0
- parso=0.8.4=py313h06a4308_0
- pexpect=4.9.0=py313h06a4308_0
- pip=25.2=pyhc872135_0
- platformdirs=4.3.7=py313h06a4308_0
- prometheus_client=0.21.1=py313h06a4308_0
- prompt-toolkit=3.0.43=py313h06a4308_0
- prompt_toolkit=3.0.43=hd3eb1b0_0
- psutil=7.0.0=py313hee96239_0
- pthread-stubs=0.3=h0ce48e5_1
- ptyprocess=0.7.0=pyhd3eb1b0_2
- pure_eval=0.2.3=py313h06a4308_0
- pycparser=2.23=py313h06a4308_0
- pygments=2.19.1=py313h06a4308_0
- pysocks=1.7.1=py313h06a4308_0
- python=3.13.7=h7e8bc2b_100_cp313
- python-dateutil=2.9.0post0=py313h06a4308_2
- python-fastjsonschema=2.20.0=py313h06a4308_0
- python-json-logger=3.2.1=py313h06a4308_0
- python_abi=3.13=1_cp313
- pyyaml=6.0.2=py313h5eee18b_0
- pyzmq=27.1.0=py313hcf8288c_0
- readline=8.3=hc2a1206_0
- referencing=0.30.2=py313h06a4308_0
- requests=2.32.5=py313h06a4308_0
- rfc3339-validator=0.1.4=py313h06a4308_0
- rfc3986-validator=0.1.1=py313h06a4308_0
- rpds-py=0.22.3=py313h4aa5aa6_0
- send2trash=1.8.2=py313h06a4308_1
- setuptools=78.1.1=py313h06a4308_0
- six=1.17.0=py313h06a4308_0
- sniffio=1.3.0=py313h06a4308_0
- soupsieve=2.5=py313h06a4308_0
- sqlite=3.50.2=hb25bd0a_1
- stack_data=0.6.3=py313h06a4308_0
- terminado=0.18.1=py313h06a4308_0
- tinycss2=1.4.0=py313h06a4308_0
- tk=8.6.15=h54e0aa7_0
- tornado=6.5.1=py313h5eee18b_0
- traitlets=5.14.3=py313h06a4308_0
- typing-extensions=4.15.0=py313h06a4308_0
- typing_extensions=4.15.0=py313h06a4308_0
- tzdata=2025b=h04d1e81_0
- urllib3=2.5.0=py313h06a4308_0
- wcwidth=0.2.13=py313h06a4308_0
- webencodings=0.5.1=py313h06a4308_2
- websocket-client=1.8.0=py313h06a4308_0
- wheel=0.45.1=py313h06a4308_0
- xorg-libx11=1.8.12=h9b100fa_1
- xorg-libxau=1.0.12=h9b100fa_0
- xorg-libxdmcp=1.1.5=h9b100fa_0
- xorg-xorgproto=2024.1=h5eee18b_1
- xz=5.6.4=h5eee18b_1
- yaml=0.2.5=h7b6447c_0
- zeromq=4.3.5=hb0a5e54_1
- zlib=1.3.1=hb25bd0a_0
- pip:
- arrow==1.3.0
- fqdn==1.5.1
- isoduration==20.11.0
- jsonpointer==3.0.0
- jupyter-collaboration==4.1.1
- jupyter-collaboration-ui==2.1.1
- jupyter-docprovider==2.1.1
- jupyter-server-fileid==0.9.3
- jupyter-server-ydoc==2.1.1
- jupyter-ydoc==3.1.0
- lark==1.2.2
- pycrdt==0.12.32
- pycrdt-store==0.1.2
- pycrdt-websocket==0.16.0
- rfc3987-syntax==1.1.0
- sqlite-anyio==0.2.3
- types-python-dateutil==2.9.0.20250822
- uri-template==1.3.0
- webcolors==24.11.1
prefix: /home/hugo/miniconda3/envs/rtc

Command Line Output (included as a gist because otherwise the issue exceeds github's maxchars). I'm also not sure if this is relevant.
https://gist.github.com/hhuuggoo/2e777038af929f9a98f683919741abcd
Browser Output I don't think this is relevant - but here it is.
Starting application in workspace: "auto-x"
2jlab_core.8aca991c1d97720da49a.js?v=8aca991c1d97720da49a:1 Starting WebSocket: ws://localhost:8888/api/kernels/a522c505-af42-4fd6-b70e-c467b51282ce

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions