[Bug]: Alt-text is never saved, resulting in posts never having alt-text
Describe the bug
I use alt-text whenever possible on posts, per the ability to describe what is happening in images, and making posts more accessible. However, when writing alt-text in on Tuba, hitting the save button appears to save the text, but it's not actually attached to the post.
I've done my best to demonstrate the exact issue in the attached video https://github.com/user-attachments/assets/f0e8a7ce-7513-4313-a98a-d936e355613b
Steps To Reproduce
- Compose a post with an image
- Attempt to add alt-text, hit save, post as normal
- Observe post, alt-text missing
Logs and/or Screenshots
<paste your logs here>
Instance Backend
Pleroma
Operating System
Arch Linux
Package
Flatpak
Troubleshooting information
os: GNOME 46 (Flatpak runtime) prefix: /app flatpak: true version: 0.8.4 (production) gtk: 4.14.5 (4.14.4) libadwaita: 1.5.4 (1.5.3) libsoup: 3.4.4 (3.4.4) libgtksourceview: 5.12.1 (5.12.1)
Additional Context
Attempting to edit the post to add in alt-text afterwards does not work either. Alt-text is simply never saved.
Thanks for raising this issue!
Could you run it from the terminal and follow the steps? You don't have to publish the post, just save the alt text:
G_MESSAGES_DEBUG=Tuba flatpak run dev.geopjr.Tuba
And send me back the logs (feel free to redact anything you deem private)
I'm specifically looking for an error after this type of log: PUT: https://tech.lgbt/api/v1/media/113172043061301534?description=This%20is%20a%20test
debug log, apologies for forgetting to put it in the original report:
(dev.geopjr.Tuba:2): Tuba-DEBUG: 17:42:31.995: Application.vala:247: os: GNOME 46 (Flatpak runtime)
(dev.geopjr.Tuba:2): Tuba-DEBUG: 17:42:31.995: Application.vala:247: prefix: /app
(dev.geopjr.Tuba:2): Tuba-DEBUG: 17:42:31.995: Application.vala:247: flatpak: true
(dev.geopjr.Tuba:2): Tuba-DEBUG: 17:42:31.995: Application.vala:247: version: 0.8.4 (production)
(dev.geopjr.Tuba:2): Tuba-DEBUG: 17:42:31.995: Application.vala:247: gtk: 4.14.5 (4.14.4)
(dev.geopjr.Tuba:2): Tuba-DEBUG: 17:42:31.995: Application.vala:247: libadwaita: 1.5.4 (1.5.3)
(dev.geopjr.Tuba:2): Tuba-DEBUG: 17:42:31.995: Application.vala:247: libsoup: 3.4.4 (3.4.4)
(dev.geopjr.Tuba:2): Tuba-DEBUG: 17:42:31.995: Application.vala:247: libgtksourceview: 5.12.1 (5.12.1)
(dev.geopjr.Tuba:2): Tuba-DEBUG: 17:42:31.999: SecretAccountStore.vala:9: Using libsecret v0.21.4
(dev.geopjr.Tuba:2): Tuba-DEBUG: 17:42:32.057: Network.vala:65: GET: https://akko.eepy.zone/api/v1/accounts/Am2iamTySVvFv7F4mu
Tuba-INFO: 17:42:32.057: Streams.vala:88: TubaMastodonAccount > https://akko.eepy.zone/api/v1/streaming?stream=user:notification
(dev.geopjr.Tuba:2): Tuba-DEBUG: 17:42:32.057: Streams.vala:68: Opening stream: https://akko.eepy.zone/api/v1/streaming?stream=user:notification
(dev.geopjr.Tuba:2): Tuba-DEBUG: 17:42:32.057: Network.vala:65: GET: https://akko.eepy.zone/api/v1/markers?timeline[]=notifications
(dev.geopjr.Tuba:2): Tuba-DEBUG: 17:42:32.057: SecretAccountStore.vala:92: Loaded 1 accounts
(dev.geopjr.Tuba:2): Tuba-DEBUG: 17:42:32.057: AccountStore.vala:85: Activating @[email protected]…
(dev.geopjr.Tuba:2): Tuba-DEBUG: 17:42:32.058: Network.vala:65: GET: https://akko.eepy.zone/api/v1/accounts/verify_credentials
(dev.geopjr.Tuba:2): Tuba-DEBUG: 17:42:32.058: Network.vala:65: GET: https://akko.eepy.zone/api/v1/instance
(dev.geopjr.Tuba:2): Tuba-DEBUG: 17:42:32.058: Network.vala:65: GET: https://akko.eepy.zone/api/v1/custom_emojis
(dev.geopjr.Tuba:2): Tuba-DEBUG: 17:42:32.058: Network.vala:65: GET: https://akko.eepy.zone/api/v1/announcements
(dev.geopjr.Tuba:2): Tuba-DEBUG: 17:42:32.058: Application.vala:434: Presenting MainWindow
Tuba-INFO: 17:42:32.091: Streams.vala:88: TubaViewsHome > https://akko.eepy.zone/api/v1/streaming?stream=user
(dev.geopjr.Tuba:2): Tuba-DEBUG: 17:42:32.091: Streams.vala:68: Opening stream: https://akko.eepy.zone/api/v1/streaming?stream=user
Tuba-INFO: 17:42:32.091: Streams.vala:94: TubaViewsHome X https://akko.eepy.zone/api/v1/streaming?stream=user
(dev.geopjr.Tuba:2): Tuba-DEBUG: 17:42:32.091: Streams.vala:99: Closing: https://akko.eepy.zone/api/v1/streaming?stream=user
Tuba-INFO: 17:42:32.091: Streams.vala:88: TubaViewsHome > https://akko.eepy.zone/api/v1/streaming?stream=user
(dev.geopjr.Tuba:2): Tuba-DEBUG: 17:42:32.091: Streams.vala:68: Opening stream: https://akko.eepy.zone/api/v1/streaming?stream=user
Tuba-INFO: 17:42:32.094: Streams.vala:88: TubaViewsNotifications > https://akko.eepy.zone/api/v1/streaming?stream=user:notification
Tuba-INFO: 17:42:32.094: Streams.vala:94: TubaViewsNotifications X https://akko.eepy.zone/api/v1/streaming?stream=user:notification
Tuba-INFO: 17:42:32.094: Streams.vala:88: TubaViewsNotifications > https://akko.eepy.zone/api/v1/streaming?stream=user:notification
Tuba-INFO: 17:42:32.097: Streams.vala:88: TubaViewsConversations > https://akko.eepy.zone/api/v1/streaming?stream=direct
(dev.geopjr.Tuba:2): Tuba-DEBUG: 17:42:32.097: Streams.vala:68: Opening stream: https://akko.eepy.zone/api/v1/streaming?stream=direct
Tuba-INFO: 17:42:32.097: Streams.vala:94: TubaViewsConversations X https://akko.eepy.zone/api/v1/streaming?stream=direct
(dev.geopjr.Tuba:2): Tuba-DEBUG: 17:42:32.097: Streams.vala:99: Closing: https://akko.eepy.zone/api/v1/streaming?stream=direct
Tuba-INFO: 17:42:32.097: Streams.vala:88: TubaViewsConversations > https://akko.eepy.zone/api/v1/streaming?stream=direct
(dev.geopjr.Tuba:2): Tuba-DEBUG: 17:42:32.097: Streams.vala:68: Opening stream: https://akko.eepy.zone/api/v1/streaming?stream=direct
(dev.geopjr.Tuba:2): Tuba-DEBUG: 17:42:32.296: Network.vala:65: GET: https://akko.eepy.zone/api/v1/timelines/home?limit=20
(dev.geopjr.Tuba:2): Tuba-DEBUG: 17:42:32.297: Network.vala:65: GET: https://akko.eepy.zone/api/v1/notifications?limit=20
(dev.geopjr.Tuba:2): Tuba-DEBUG: 17:42:32.297: Network.vala:65: GET: https://akko.eepy.zone/api/v1/conversations?limit=20
(dev.geopjr.Tuba:2): Tuba-DEBUG: 17:42:33.017: Network.vala:65: GET: https://akko.eepy.zone/api/v1/notifications?min_id=63355
(dev.geopjr.Tuba:2): Tuba-DEBUG: 17:42:33.116: InstanceAccount.vala:200: @[email protected]: profile updated
(dev.geopjr.Tuba:2): Tuba-WARNING **: 17:42:35.024: Image.vala:69: Failed to download image at "https://lunar.place/files/cbb90dab-fe9f-4719-90b9-fa82bba84d3f": Unrecognized image file format
(dev.geopjr.Tuba:2): Tuba-DEBUG: 17:42:35.274: Status.vala:4: [OBJ] Destroyed
(dev.geopjr.Tuba:2): Tuba-DEBUG: 17:42:38.899: Attachment.vala:31: Uploading new media: file:///run/user/1000/doc/d1921bb8/cats.jpg…
(dev.geopjr.Tuba:2): Tuba-DEBUG: 17:42:38.902: Network.vala:65: POST: https://akko.eepy.zone/api/v1/media
(dev.geopjr.Tuba:2): Tuba-DEBUG: 17:42:39.971: Attachment.vala:73: OK! ID 2644702
(dev.geopjr.Tuba:2): Tuba-DEBUG: 17:42:51.351: Network.vala:65: PUT: https://akko.eepy.zone/api/v1/media/2644702?description=this%20is%20alt%20text.%20text%20text%20alt%20text.
(dev.geopjr.Tuba:2): Tuba-DEBUG: 17:42:55.328: AttachmentsPageAttachment.vala:13: Destroying AttachmentsPageAttachment
(dev.geopjr.Tuba:2): Tuba-DEBUG: 17:42:55.328: Item.vala:126: Destroying Attachment.Item widget
(dev.geopjr.Tuba:2): Tuba-DEBUG: 17:42:55.448: Dialog.vala:167: Destroying composer
(dev.geopjr.Tuba:2): Tuba-DEBUG: 17:42:55.448: Page.vala:19: Destroying Text Page
(dev.geopjr.Tuba:2): Tuba-DEBUG: 17:42:55.473: CustomEmojiChooser.vala:41: Destroying CustomEmojiChooser
(dev.geopjr.Tuba:2): Tuba-DEBUG: 17:42:55.473: Page.vala:19: Destroying Media Page
(dev.geopjr.Tuba:2): Tuba-DEBUG: 17:42:55.474: Page.vala:19: Destroying Poll Page
(dev.geopjr.Tuba:2): libsoup-WARNING **: 17:43:06.088: Cache flush finished despite 2 pending requests
(dev.geopjr.Tuba:2): Tuba-DEBUG: 17:43:07.728: Streams.vala:131: https://akko.eepy.zone/api/v1/streaming?stream=user: update for TubaViewsHome
This is from
- opening the post dialog
- attaching an image
- applying and saving alt text I then canceled the post and closed the app
Thanks!
#1120 should fix it
I managed to reproduce it on Akkoma and the above fix fixed it.
More info for future ref: *oma did not accept the alt text as url param, even though the other backends do. #1120 sends it as json.
Sweet! Thanks for the quick response and fix!