Futify Remix: a native Spotify client for Ubuntu Touch
-
@brenno.almeida tried logging in. The app crashes after completing oauth flow and crashes on open every time afterwards. Oddly, there's no exception in the logs?
-
@projectmoon something similar happened to me when I forgot to disable app suspension on UT tweak tool. Could that be your case? If so, can you clear cache, data, disable suspension and try again?
-
@brenno.almeida same result. Browser shows error empty response. And then connection refused on refresh (because app crashed).
-
@brenno.almeida same here
-
@AmauryDBZ any logs?
-
@brenno.almeida sure.
I've registered in web browser where I got an error. I cannot explain why I was redirected to a 127.0.0.1 page.
I don't know if it granted access but when I try to launch futify app it crashes instantly with theses logs.
(app unconfined of course)[07/05/2026 09:58] Env $XDG_CACHE_HOME set use it = /home/phablet/.cache/futify.brennoflavio [07/05/2026 09:58] Env $XDG_CONFIG_HOME no set use default = /home/phablet/.config/futify.brennoflavio/ [07/05/2026 09:58] library "eglSubDriverAndroid.so" not found [07/05/2026 09:58] 2026/05/07 09:58:19 .:0: Creating a QMirClientScreen now [07/05/2026 09:58] before create context [07/05/2026 09:58] before set spotSession [07/05/2026 09:58] before create window [07/05/2026 09:58] 2026/05/07 09:58:19 .:0: error calling result "An AppArmor policy prevents this sender from sending this message to this recipient; type=\"method_call\", sender=\":1.857\" (uid=32011 pid=631010 comm=\"futify\" label=\"futify.brennoflavio_futify_1.6.3 (enforce)\") interface=\"com.lomiri.libertine.Service.Operations\" member=\"list\" error name=\"(unset)\" requested_reply=\"0\" destination=\"com.lomiri.libertine.Service\" (uid=32011 pid=4872 comm=\"/usr/bin/python3 /usr/bin/libertined\" label=\"unconfined\")" [07/05/2026 09:58] 2026/05/07 09:58:19 .:0: error calling result "An AppArmor policy prevents this sender from sending this message to this recipient; type=\"method_call\", sender=\":1.857\" (uid=32011 pid=631010 comm=\"futify\" label=\"futify.brennoflavio_futify_1.6.3 (enforce)\") interface=\"com.lomiri.libertine.Service.OperationsMonitor\" member=\"running\" error name=\"(unset)\" requested_reply=\"0\" destination=\"com.lomiri.libertine.Service\" (uid=32011 pid=4872 comm=\"/usr/bin/python3 /usr/bin/libertined\" label=\"unconfined\")" [07/05/2026 09:58] 2026/05/07 09:58:19 .:0: lastError - no arguments? [07/05/2026 09:58] 2026/05/07 09:58:19 .:0: error calling result "An AppArmor policy prevents this sender from sending this message to this recipient; type=\"method_call\", sender=\":1.857\" (uid=32011 pid=631010 comm=\"futify\" label=\"futify.brennoflavio_futify_1.6.3 (enforce)\") interface=\"com.lomiri.libertine.Service.OperationsMonitor\" member=\"last_error\" error name=\"(unset)\" requested_reply=\"0\" destination=\"com.lomiri.libertine.Service\" (uid=32011 pid=4872 comm=\"/usr/bin/python3 /usr/bin/libertined\" label=\"unconfined\")" [07/05/2026 09:58] 2026/05/07 09:58:19 .:0: lastError - no arguments? [07/05/2026 09:58] 2026/05/07 09:58:19 .:0: error calling result "An AppArmor policy prevents this sender from sending this message to this recipient; type=\"method_call\", sender=\":1.857\" (uid=32011 pid=631010 comm=\"futify\" label=\"futify.brennoflavio_futify_1.6.3 (enforce)\") interface=\"com.lomiri.libertine.Service.OperationsMonitor\" member=\"result\" error name=\"(unset)\" requested_reply=\"0\" destination=\"com.lomiri.libertine.Service\" (uid=32011 pid=4872 comm=\"/usr/bin/python3 /usr/bin/libertined\" label=\"unconfined\")" [07/05/2026 09:58] 2026/05/07 09:58:19 .:0: lastError - no arguments? [07/05/2026 09:58] 2026/05/07 09:58:19 .:0: virtual QMediaService* AalServicePlugin::create(const QString&) "org.qt-project.qt.mediaplayer" [07/05/2026 09:58] 2026/05/07 09:58:20 .:0: Using Hybris video sink [07/05/2026 09:58] 2026/05/07 09:58:20 .:0: virtual QMediaPlayer::State AalMediaPlayerControl::state() const [07/05/2026 09:58] 2026/05/07 09:58:20 .:0: virtual QMediaPlayer::MediaStatus AalMediaPlayerControl::mediaStatus() const [07/05/2026 09:58] 2026/05/07 09:58:20 .:0: propsReply "An AppArmor policy prevents this sender from sending this message to this recipient; type=\"method_call\", sender=\":1.727\" (uid=32011 pid=631010 comm=\"futify\" label=\"futify.brennoflavio_futify_1.6.3 (enforce)\") interface=\"org.freedesktop.DBus.Properties\" member=\"GetAll\" error name=\"(unset)\" requested_reply=\"0\" destination=\"org.freedesktop.NetworkManager\" (uid=0 pid=2004 comm=\"/usr/sbin/NetworkManager --no-daemon\" label=\"unconfined\")" [07/05/2026 09:58] 2026/05/07 09:58:20 .:0: nmReply "An AppArmor policy prevents this sender from sending this message to this recipient; type=\"method_call\", sender=\":1.727\" (uid=32011 pid=631010 comm=\"futify\" label=\"futify.brennoflavio_futify_1.6.3 (enforce)\") interface=\"org.freedesktop.NetworkManager\" member=\"GetDevices\" error name=\"(unset)\" requested_reply=\"0\" destination=\"org.freedesktop.NetworkManager\" (uid=0 pid=2004 comm=\"/usr/sbin/NetworkManager --no-daemon\" label=\"unconfined\")" [07/05/2026 09:58] 2026/05/07 09:58:20 .:0: "Object path cannot be empty" [07/05/2026 09:58] 2026/05/07 09:58:20 .:0: virtual void AalMediaPlayerControl::stop() [07/05/2026 09:58] 2026/05/07 09:58:20 .:0: void AalMediaPlaylistProvider::disconnect_signals() [07/05/2026 09:58] 2026/05/07 09:58:20 .:0: void AalMediaPlaylistProvider::connect_signals() [07/05/2026 09:58] 2026/05/07 09:58:20 .:0: Track list doesn't exist so can't clear it! [07/05/2026 09:58] 2026/05/07 09:58:20 .:0: virtual void AalMediaPlaylistControl::setPlaybackMode(QMediaPlaylist::PlaybackMode) [07/05/2026 09:58] 2026/05/07 09:58:20 .:0: PlaybackMode: Sequential [07/05/2026 09:58] 2026/05/07 09:58:20 .:0: virtual void AalMediaPlaylistControl::setCurrentIndex(int) [07/05/2026 09:58] 2026/05/07 09:58:20 .:0: position: -1 , mediaCount: 0 [07/05/2026 09:58] 2026/05/07 09:58:20 .:0: virtual void AalMediaPlayerControl::setMedia(const QMediaContent&, QIODevice*) [07/05/2026 09:58] 2026/05/07 09:58:20 .:0: setMedia() media: QUrl("") [07/05/2026 09:58] 2026/05/07 09:58:20 .:0: setMedia() headers empty: true [07/05/2026 09:58] 2026/05/07 09:58:20 .:0: Same media as current [07/05/2026 09:58] 2026/05/07 09:58:20 .:0: virtual void AalMediaPlayerControl::play() [07/05/2026 09:58] 2026/05/07 09:58:20 .:0: void AalMediaPlayerService::play() [07/05/2026 09:58] 2026/05/07 09:58:20 Player.qml:30: player state changed 1 [07/05/2026 09:58] 2026/05/07 09:58:20 PlayerView.qml:18: file:////opt/click.ubuntu.com/futify.brennoflavio/1.6.3/qml/components/PlayerView.qml:18:5: QML QQuickItem: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead. [07/05/2026 09:58] 2026/05/07 09:58:20 Settings.qml:15: OnComplete 945 [07/05/2026 09:58] 2026/05/07 09:58:20 Main.qml.:365: OnComplete [07/05/2026 09:58] Playlists don't exsit UserPlaylists [07/05/2026 09:58] 2026/05/07 09:58:21 couldn't get UserTracks: spotify: couldn't decode error: (119) [The user is not registered for this application. Please check your settings on https://developer.spotify.com/dashboard.]Then I got to this web page developer.spotify.com and I was well connected
-
@AmauryDBZ the redirect to 127.0.0.1 is to redirect back to the application for oauth finalization. The app runs its own server to capture the callback from Spotify. But it shouldn't crash :).
-
@projectmoon @amaurydbz found it. Spotify is not allowing using my keys to login into your account, which means that you'll need to login into Spotify Developers, generate a pair of keys and bring those to the app.
That's why it works for me, but not for you. It uses my keys.
As the app does not have a way to do that yet, I unpublished it. When I add a way to do it, I'll let you know and publish it back.
Thanks for the feedback!
Link for reference: https://developer.spotify.com/blog/2026-02-06-update-on-developer-access-and-platform-security
-
@projectmoon @amaurydbz found it. Spotify is not allowing using my keys to login into your account, which means that you'll need to login into Spotify Developers, generate a pair of keys and bring those to the app.
That's why it works for me, but not for you. It uses my keys.
As the app does not have a way to do that yet, I unpublished it. When I add a way to do it, I'll let you know and publish it back.
Thanks for the feedback!
Link for reference: https://developer.spotify.com/blog/2026-02-06-update-on-developer-access-and-platform-security
Hmm, so enshittifcation. Reading this, it seems one will need their pwn spotify dev account and keys?
-
@projectmoon basically yes. A 5min process, but annoying to require
-
@brenno.almeida welcome

Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login