MusicBrainz Picard SSL connection failure

Hello,

I’m on MacOS, intel, Sonoma. Musicbrainz Picard fails to connect to internet, so nothing works:

D: 21:31:01,433 config.event:261: Config file update requested on thread 140704485552384
D: 21:31:03,771 util/checkupdate._query_available_updates:90: Getting Picard release information from https://picard.musicbrainz.org/api/v2/releases
D: 21:31:03,771 webservice/ratecontrol.get_delay_to_next_request:127: ('picard.musicbrainz.org', 443): Last request was 192449 ms ago, starting another one
D: 21:31:03,771 webservice/ratecontrol.increment_requests:147: ('picard.musicbrainz.org', 443): Incrementing requests to: 1
E: 21:31:03,973 webservice.ssl_errors:363: SSL error: The root CA certificate is not trusted for this purpose
D: 21:31:03,973 webservice/ratecontrol.decrement_requests:155: ('picard.musicbrainz.org', 443): Decrementing requests to: 0
E: 21:31:03,973 webservice._handle_reply:534: Network request error for https://picard.musicbrainz.org/api/v2/releases -> SSL handshake failed (QT code 6, HTTP code 0)
E: 21:31:03,973 util/checkupdate._releases_json_loaded:101: Error loading Picard releases list: SSL handshake failed
D: 21:31:06,877 ui/mainwindow.update_last_check_date:2025: The update check was unsuccessful. The last update date will not be changed.
D: 21:31:06,877 webservice/ratecontrol._out_of_backoff:231: ('picard.musicbrainz.org', 443): oobackoff; delay: 1000ms -> 1000ms; slow start; window size 3.000 -> 4.000

Would you have any clues how to make it work? Browser connections to MB SSL servers work fine.

Which version of Picard are you using?

Right. Current, 2.11.

I generally can’t reproduce this with Picard 2.11 on macOS. But I also don’t have hardware that runs macOS 14.4, so there might be something special there.

Make sure the computer clock is running with the correct time. A wrong clock time is a typical cause for SSL errors.

1 Like

Clock is fine, so are more general obvious things. It’s only Picard failing, so I guess there is something quite specific in its architecture/libraries?

From a browser on the same machine, if you head to https://picard.musicbrainz.org/api/v2/releases/, do you receive a JSON dump, or does it time-out/fail?

2 Likes

JSON dump, unfortunately.

That’s good - it at least rules out a firewall block at the MB level, and isolates the problem to the application.

Do you perhaps have the macOS firewall (or similar, such as Little Snitch) turned on? If so, you may need to add Picard to the list of applications that are allowed to accept incoming connections.

The firewall is off.

Is Picard self-contained as far as SSL handshake is concerned? I use brew and various packages—could it interfere?

Thank you for your support!

AFAIK on macOS the system’s TLS implementation (Apple’s “Secure Transport”) is being used. Can you check what it shows in the “About Picard” dialog for you? Under the Picard version it shows a list of used components and their versions, including the SSL library being used. If there is no SSL available (e.g. because there was some problem loading the relevant libraries) the dialog will also say so.

Please also share a full debug log of Picard starting. It might be that some loading issue is being logged.

1 Like

@rhetticent Are you (or anyone else) able to test on macOS Sonoma?

At this point I would suspect that something changed on Sonoma, making the SSL implementation incompatible. But so far this is the only report we have and I cannot try myself. But it could also be something specific to @Eroeosv’s system and not related to the macOS version at all.

You got it - I just gave both 2.11 packages (macOS 10.12+ and 10.14+) a shot. Both were able to pull up releases without issue.

3 Likes

Thanks a lot for the support.

Just to avoid misunderstandings, this was on Sonoma?

For sure - I tested on Sonoma (14.4, build 23E214), as well as Ventura.

2 Likes

Thanks again, @rhetticent . I’m a bit out of ideas then.

@Eroeosv The info from the about screen and the log still would be helpful.

Apart from that you could also try both macOS packages provided on Downloads - MusicBrainz Picard , the one marked for 10.14+ and 10.12+*. The difference are the used Python and Qt5 versions, and this could make a difference in the SSL issue.


*) on a side note there is an issue with the 10.12+ build not actually being compatible with macOS 10.12 :frowning: That’s known and there is a ticket for this. But it is unrelated to the issue here or to what I said about the general difference.

2 Likes

Full debug. Qt mismatch?

D: 21:25:03,085 tagger.__init__:315: Starting Picard from '/Applications/MusicBrainz Picard.app/Contents/MacOS/picard/tagger.pyc'
D: 21:25:03,085 tagger.__init__:316: Platform: macOS-14.4-x86_64-i386-64bit CPython 3.11.5
D: 21:25:03,085 tagger.__init__:318: Versions: Picard 2.11, Python 3.11.5, PyQt 5.15.10, Qt 5.15.12, Mutagen 1.47.0, Discid discid 1.2.0, libdiscid 0.6.4, astrcmp C, SSL Secure Transport, macOS 14.4
D: 21:25:03,085 tagger.__init__:319: Configuration file path: '/Users/user/.config/MusicBrainz/Picard.ini'
D: 21:25:03,085 tagger.__init__:321: User directory: '/Users/user/Library/Preferences/MusicBrainz/Picard'
D: 21:25:03,085 tagger.__init__:322: System long path support: True
D: 21:25:03,085 tagger.__init__:325: Qt Env.: QT_PLUGIN_PATH='/Applications/MusicBrainz Picard.app/Contents/MacOS/PyQt5/Qt5/plugins'
D: 21:25:03,085 i18n.setup_gettext:146: UI language: system
D: 21:25:03,086 i18n._log_lang_env_vars:131: Env vars: 
D: 21:25:03,086 i18n.setup_gettext:154: Trying locales: ['en_US']
D: 21:25:03,088 i18n.setup_gettext:160: Set locale to: 'en_US'
D: 21:25:03,088 i18n.setup_gettext:171: Using locale: 'en_US'
D: 21:25:03,089 i18n._load_translation:118: Loading gettext translation for picard, localedir='/Applications/MusicBrainz Picard.app/Contents/MacOS/locale', language='en_US'
D: 21:25:03,089 i18n._load_translation:121: [Errno 2] No translation file found for domain: 'picard'
D: 21:25:03,089 i18n._load_translation:118: Loading gettext translation for picard-attributes, localedir='/Applications/MusicBrainz Picard.app/Contents/MacOS/locale', language='en_US'
D: 21:25:03,089 i18n._load_translation:121: [Errno 2] No translation file found for domain: 'picard-attributes'
D: 21:25:03,089 i18n._load_translation:118: Loading gettext translation for picard-constants, localedir='/Applications/MusicBrainz Picard.app/Contents/MacOS/locale', language='en_US'
D: 21:25:03,089 i18n._load_translation:121: [Errno 2] No translation file found for domain: 'picard-constants'
D: 21:25:03,089 i18n._load_translation:118: Loading gettext translation for picard-countries, localedir='/Applications/MusicBrainz Picard.app/Contents/MacOS/locale', language='en_US'
D: 21:25:03,089 i18n._load_translation:121: [Errno 2] No translation file found for domain: 'picard-countries'
D: 21:25:03,089 i18n.setup_gettext:191: _ = <bound method NullTranslations.gettext of <gettext.NullTranslations object at 0x1077ce810>>
D: 21:25:03,089 i18n.setup_gettext:192: N_ = <function <lambda> at 0x10400cc20>
D: 21:25:03,089 i18n.setup_gettext:193: ngettext = <bound method NullTranslations.ngettext of <gettext.NullTranslations object at 0x1077ce810>>
D: 21:25:03,090 i18n.setup_gettext:194: gettext_countries = <bound method NullTranslations.gettext of <gettext.NullTranslations object at 0x10a89b090>>
D: 21:25:03,090 i18n.setup_gettext:195: gettext_attributes = <bound method NullTranslations.gettext of <gettext.NullTranslations object at 0x10a89b050>>
D: 21:25:03,090 i18n.setup_gettext:196: pgettext_attributes = <bound method NullTranslations.pgettext of <gettext.NullTranslations object at 0x10a89b050>>
D: 21:25:03,093 webservice._network_accessible_changed:387: Network accessible requested: 1, actual: 1
D: 21:25:03,105 webservice.set_cache:409: NetworkDiskCache dir: '/Users/user/Library/Caches/MusicBrainz/Picard/network/' current size: 34.2 MB max size: 100 MB
D: 21:25:03,106 pluginmanager.load_plugins_from_directory:264: Looking for plugins in directory '/Users/user/Library/Preferences/MusicBrainz/Picard/plugins', 0 names found
I: 21:25:03,106 pluginmanager.load_plugins_from_directory:252: Plugin directory '/Applications/MusicBrainz Picard.app/Contents/MacOS/plugins' doesn't exist
D: 21:25:03,115 ui/playertoolbar.__init__:91: Internal player: QtMultimedia available, initializing QMediaPlayer
D: 21:25:03,125 ui/playertoolbar.__init__:98: Internal player: available, QMediaPlayer set up
D: 21:25:03,317 util/periodictouch.enable_timer:47: Setup timer for touching files every 14400 seconds
D: 21:25:03,318 tagger.main:1576: Looking for Qt locale en_US in /Applications/MusicBrainz Picard.app/Contents/MacOS/PyQt5/Qt5/translations
I: 21:25:03,326 browser/browser.start:121: Starting the browser integration (0.0.0.0:8000)
D: 21:25:03,344 ui/mainwindow.auto_update_check:1786: Initiating startup check for program updates.  Today: 2024-03-18, Last check: never (Check interval: 7 days), Update level: 0 (stable)
D: 21:25:03,344 util/checkupdate._query_available_updates:90: Getting Picard release information from https://picard.musicbrainz.org/api/v2/releases
D: 21:25:03,360 config.event:261: Config file update requested on thread 140704485552384
D: 21:25:03,481 webservice/ratecontrol.get_delay_to_next_request:122: ('picard.musicbrainz.org', 443): First request
D: 21:25:03,481 webservice/ratecontrol.increment_requests:147: ('picard.musicbrainz.org', 443): Incrementing requests to: 1
E: 21:25:08,762 webservice.ssl_errors:363: SSL error: The root CA certificate is not trusted for this purpose
D: 21:25:08,762 webservice/ratecontrol.decrement_requests:155: ('picard.musicbrainz.org', 443): Decrementing requests to: 0
E: 21:25:08,762 webservice._handle_reply:534: Network request error for https://picard.musicbrainz.org/api/v2/releases -> SSL handshake failed (QT code 6, HTTP code 0)
E: 21:25:08,762 util/checkupdate._releases_json_loaded:101: Error loading Picard releases list: SSL handshake failed
D: 21:25:08,762 ui/mainwindow.update_last_check_date:2025: The update check was unsuccessful. The last update date will not be changed.
D: 21:25:08,762 webservice/ratecontrol._out_of_backoff:231: ('picard.musicbrainz.org', 443): oobackoff; delay: 1000ms -> 1000ms; slow start; window size 1.000 -> 2.000

Same problems with all three MacOS versions available to download.

Qt and PyQt versions look fine (to me at least) - they match the working machines on my end.

The SSL error is pointing to a certificate issue, though. You mentioned using brew - do you recall making any changes or updates to libsecurity_ssl and/or SecureTransport?

2 Likes

No changes via brew as far as I can remember.

Thank you for all the help. I loved Picard, so it’s a pity.