Conversations: HTTP upload is broken in version 1.23.6

Created on 28 Feb 2018  路  20Comments  路  Source: iNPUTmice/Conversations

General information

  • Version: 1.23.6
  • Device: Samsung S4 mini, Sony Xperia
  • Android Version: 4.4.4
  • Server name: self hosted
  • Server software: ejabberd 16.09
  • Installed server modules: Stream Managment, CSI, MAM, http upload, ... everything Conversations knows
  • Conversations source: F-Droid

Steps to reproduce

  1. Send picture

Expected result

Picture is sent via HTTP upload

Actual result

"Waiting..." forever. Conversations thinks HTTP upload is not available. Gajim on the same server works just fine. No changes in my configuration anywhere. Recently it worked.

Most helpful comment

The migration to the new http upload version could have been handled better. Certainly not in a bug fix release. To be honest I forgot about that change when I made that bug fix release.
Afterwards I honestly didn鈥檛 think it would cause trouble for so many people. I apologize for the inconvenience. Future breaking changes will be announced well in advanced and tools like the Compliance Tester will by changed to check for correct server behaviour before the change will be introduced into Conversations.

All 20 comments

Same problem.
Gajim can discover HTTP File Upload, but Conversations can't.
XEP-0363 is unavailable in server information (@ account management).

/duplicate of duplicate of #2807 #2792 #2788 #2818 #2796 #2822 #2832 #2836

Update your server version to 18.01

@licaon-kter Upgrade server to fix client? What happened to backward compatibility?

Very, very client oriented...
Debian stable's administrators is happy :(

Also, ejabberd 18.01 is not in Debian Stable (16.09 is latest version there). A lot of people cannot upgrade without significant problems.

Use the jabber.at repo

This change was implemented in 17.04 or so

But what, if the policy of my company is forbid using any other repo than debian stable?..
Very strange situation: the egg (client) teaches the chicken (server)...

@licaon-kter I'm not going to use some random repo with questionable security support. What you are proposing is highly irresponsible. Conversations must work with current Debian Stable, otherwise it is broken.

According to what I read in the comments, it looks like the HTTP upload has been broken by commit https://github.com/siacs/Conversations/commit/e48788e821c1c2cdab3647a0f4cce197ea626fe9. It significantly changes format of how an upload slot is requested. When checking for server features (https://github.com/siacs/Conversations/commit/e48788e821c1c2cdab3647a0f4cce197ea626fe9#diff-6b10d8950a8d8c62d88fbfce12619b98L123) you should check for both old and new version of the feature. If the new version is not available, the app should use the old implementation to handle the old version. It simply means that rather than rewriting the code in-place, you create another class for the new version and mark the old one as deprecated. App then can use old or new depending on server version. Once the old server version goes away, you can throw away the old implementation too. There may be good reasons to remove old implementation earlier (e.g. security issues), but I doubt it is the case.

This #2841 might be an idea, let's hear what @iNPUTmice thinks.

Conversations Legacy has support for the outdated version of HTTP upload.

@licaon-kter So what's the suggested procedure when running prosody as a server?
@iNPUTmice Outdated? Assuming that new version came out with ejabberd 17.04, then it's not even 1 year old. Needlessly dumping the "outdated" version excludes a lot of users stuck on servers they don't even maintain. I'd consider that a very strange policy for a client that advertises its ability to "Send Images" as the first feature on its website, prominently claiming "Even in conferences". Very strange indeed.

@0x64746b Update modules pertaining to upload.

Users should contact server admins, ask then to keep it up to date, as with any software. Or change server, federation FTW.

@licaon-kter @0x64746b @iNPUTmice @posledov @jkufner @radiocane
This was an very unprofessional decision!
I read the Changelog before updating, nothing said their that http-upload wouldn't work any more. I updated the prosody server modules just a few months ago, I don't know what you think, that I have nothing else to do than update my XMPP server daily?

Supporting both versions by checking the version of the http module would prevented that problem, completely unnecessary!

I tried first to downgrade, but this also didn't work, so I now deleted it, and installed Version 1.22. Won't update for the next months for sure.

@licaon-kter Changing a server is not an option. That is not how federation work. Users need to keep their JID, otherwise they cannot communicate with others.

"nothing personal just business"... sadly, but it seems to be true, according to this

It is not the first time, there were also other issue at the detriment of selfhosters, e.g. the display of this annoying disconnect notifications.

@posledov, I agree, there are some reasons for decisions, which we are not told here, or at least not the real ones. It also seems to me that more money can be made with those paid hostings at conversations.im, and therefore some things are enforced, e.g. http-uploads are made defunct, OMEMO is enforced in version 2.0beta... building also a little walled garden...

The migration to the new http upload version could have been handled better. Certainly not in a bug fix release. To be honest I forgot about that change when I made that bug fix release.
Afterwards I honestly didn鈥檛 think it would cause trouble for so many people. I apologize for the inconvenience. Future breaking changes will be announced well in advanced and tools like the Compliance Tester will by changed to check for correct server behaviour before the change will be introduced into Conversations.

@iNPUTmice
Thank you, I excuse myself and take all my speculations back!

Daniel, first of all, thanks for a decent response.
And secondly, please do not be offended by my previous message. It was because of my emotions (and this is wrong) and lack of information. After your answer, everything fell into place.
Once again, I apologize for the inappropriate emotionality.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

pravi picture pravi  路  4Comments

DoM1niC picture DoM1niC  路  4Comments

benjaminbischoff picture benjaminbischoff  路  3Comments

thomas-mc-work picture thomas-mc-work  路  4Comments

ivucica picture ivucica  路  4Comments