No web clients after many attempts

Hey, folks.

I’ve installed mopidy and a number of web clients but none of them are showing up under the “Web clients” section of the web server. This is on a pi3 running Ubuntu 22.04 LTS but using the apt repo to get the latest available versions. I’ve tried installing just from apt packages, just via pip, and blended and it just never works.

The logs indicate that the extensions are being detected and loaded. I’ve cranked up logging/verbosity to ‘3’ and the only indication I see of any problem is this:

root@pi30:/etc/mopidy# mopidyctl deps 2>&1 | head
Running "/usr/bin/mopidy --config /usr/share/mopidy/conf.d:/etc/mopidy/mopidy.conf deps" as user mopidy
INFO     [MainThread] mopidy.__main__ Starting Mopidy 3.3.0
DEBUG    [MainThread] mopidy.ext Loading entry point: simple-webclient = mopidy_simple_webclient:Extension
ERROR    [MainThread] mopidy.ext Setup of extension from entry point simple-webclient failed, ignoring extension.
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/mopidy/ext.py", line 242, in load_extensions
    _ = extension.dist_name
AttributeError: 'Extension' object has no attribute 'dist_name'
DEBUG    [MainThread] mopidy.ext Loading entry point: podcast = mopidy_podcast:Extension
DEBUG    [MainThread] mopidy.ext Loaded extension: Mopidy-Podcast 3.0.1

Here’s my current setup:

root@pi30:/etc/mopidy# dpkg -l | grep mopidy
ii  mopidy                               3.3.0-1                          all          extensible music server

root@pi30:/usr/share/mopidy/conf.d# pip freeze | grep -i mopidy
Mopidy-InternetArchive==3.0.1
Mopidy-Podcast==3.0.1
Mopidy-Simple-Webclient==0.1.1

In the above the mopidy package is from apt and the rest is via pip.

Config looks like this:

root@pi30:/etc/mopidy# mopidyctl config
[core]
cache_dir = /var/cache/mopidy
config_dir = /etc/mopidy
data_dir = /var/lib/mopidy
max_tracklist_length = 10000
restore_state = false

[logging]
verbosity = 3
format = %(levelname)-8s [%(threadName)s] %(name)s %(message)s
color = false
config_file = 

[audio]
mixer = software
mixer_volume = 
output = autoaudiosink
buffer_time = 

[proxy]
scheme = 
hostname = 
port = 
username = 
password = 

[podcast]
enabled = true
browse_root = Podcasts.opml
browse_order = desc
lookup_order = asc
cache_size = 64
cache_ttl = 86400
timeout = 10

[internetarchive]
enabled = true
base_url = http://archive.org
collections = 
  audio
  etree
  librivoxaudio
  audio_bookspoetry
  audio_tech
  audio_music
  audio_news
  audio_foreign
  audio_podcast
  audio_religion
audio_formats = 
  VBR MP3
  64Kbps MP3
image_formats = 
  JPEG
  JPEG Thumb
browse_limit = 100
browse_views = 
  downloads desc|Views
  titleSorter asc|Title
  publicdate desc|Date Archived
  date desc|Date Published
  creatorSorter asc|Creator
search_limit = 20
search_order = 
cache_size = 128
cache_ttl = 86400
retries = 3
timeout = 10

[file]
enabled = true
media_dirs = 
  $XDG_MUSIC_DIR|Music
  ~/|Home
excluded_file_extensions = 
  .directory
  .html
  .jpeg
  .jpg
  .log
  .nfo
  .pdf
  .png
  .txt
  .zip
show_dotfiles = false
follow_symlinks = false
metadata_timeout = 1000

[http]
enabled = true
hostname = 0.0.0.0
port = 6680
zeroconf = Mopidy HTTP server on $hostname
allowed_origins = 
csrf_protection = true
default_app = mopidy

[m3u]
enabled = true
base_dir = 
default_encoding = latin-1
default_extension = .m3u8
playlists_dir = 

[softwaremixer]
enabled = true

[stream]
enabled = true
protocols = 
  http
  https
  mms
  rtmp
  rtmps
  rtsp
metadata_blacklist = 
timeout = 5000

Just for kicks I upped verbosity to ‘4’, installed Simple-Webclient via pip, and then did a journalctl -u mopidy. I don’t see anything which jumps out as especially odd. There is one thing that is a little surprising in that when I hit the web server I get this amongst the journalctl output:

Jan 20 19:28:04 pi30 mopidy[11398]: INFO     [HttpServer] tornado.access 304 GET /mopidy/ (172.16.2.82) 18.77ms

Now, this is with a clear cache on the browser I normally use and with another browser which has never hit that web server before… notice the HTTP 304 (has not changed since last request)? Maybe there’s something I don’t know about HTTP 304 but that doesn’t seem right.

Thoughts?

After a second look, this is perhaps a bit odd:

Jan 15 18:22:21 pi30 systemd[1]: Started Mopidy music server.
Jan 15 18:22:22 pi30 mopidy[3113]: INFO [MainThread] mopidy.main Starting Mopidy 3.3.0
Jan 15 18:22:22 pi30 mopidy[3113]: DEBUG [MainThread] mopidy.ext Loading entry point: simple-webclient = mopidy_simple_webclient:Extension
Jan 15 18:22:22 pi30 mopidy[3113]: ERROR [MainThread] mopidy.ext Setup of extension from entry point simple-webclient failed, ignoring extension.
Jan 15 18:22:22 pi30 mopidy[3113]: Traceback (most recent call last):
Jan 15 18:22:22 pi30 mopidy[3113]: File “/usr/lib/python3/dist-packages/mopidy/ext.py”, line 242, in load_extensions
Jan 15 18:22:22 pi30 mopidy[3113]: _ = extension.dist_name
Jan 15 18:22:22 pi30 mopidy[3113]: AttributeError: ‘Extension’ object has no attribute ‘dist_name’
Jan 15 18:22:22 pi30 mopidy[3113]: DEBUG [MainThread] mopidy.ext Loading entry point: podcast = mopidy_podcast:Extension
Jan 15 18:22:22 pi30 mopidy[3113]: DEBUG [MainThread] mopidy.ext Loaded extension: Mopidy-Podcast 3.0.1
Jan 15 18:22:22 pi30 mopidy[3113]: DEBUG [MainThread] mopidy.ext Loading entry point: internetarchive = mopidy_internetarchive:Extension

Note that Simple-Webclient installed via pip is throwing the error abot reg. While the InternetArchive extension, installed via apt, gets a clean registration (but still doesn’t show up in the web UI client list).

Tried connecting to the process with madbg to see if I could inspect the extension registration information but madbg “dlopen failed”. :\

Simple-webclient is not compatible with Mopidy 3. You should remove it. Ideally the author would state this in their project readme but we can’t control that.

Webclients we know to be compatible with Mopidy 3 are listed at Extensions