Status-react: Desktop offline inbox broken

Created on 1 Nov 2018  路  12Comments  路  Source: status-im/status-react

User Story

As a desktop user, I want to fetch messages so that I can read offline messages.

Description

Type: Bug

Summary: Since Cryptolife offline messages have been broken for several people.

The app says "could not connect to mail server. Tap to reconnect" then "fetching messages... (2 requests left)" but no messages are fetched.

I tried the usual tricks of restarting or changing mail servers but it didn't help.

The app seems to receive messages when online though.

Expected behavior

Offline messages downloaded

Actual behavior

No offline messages downloaded

Reproduction

Just grab the nightly. No older messages are downloaded.

I did some testing and can reproduce every time with this:

  • create new account
  • join #status (or other channels)
  • no history is shown

Additional Information

  • Status version: Desktop nightly
  • Operating System: Mac

cc @siphiuel @MaxRis @vkjr @churik @PombeirP @cammellos @yenda @adambabik
(sorry for the mass ping but wanted to get visibility and obviously I can't use Status :P )

chat high-priority high-severity

Most helpful comment

@siphiuel @MaxRis basically to give a concrete example:
We created a release based on a branch on jenkins excluding a commit in develop, as it gives this error on the mailserver. This commit was therefore excluded from the ios/android artifact.

We then created a release on github uploading the artifacts (without that commit), but the archive that desktop uses is created automatically on github based on the state of the develop branch at the moment you create the release, so the commit was included.

For now I have made it so that the code needs to be explicitly uploaded by us https://github.com/status-im/status-react/pull/6566/files , but I think it's time to automate this, so likely I will be working on it next.

GitHub
status: ready

All 12 comments

Status.log

I tried looking for problems but this log file is gnarly!

Also tried logging out, creating a new account, joining public chats, but still didn't download history.

i saw that and reinstalled status for today's nightly and finally was able to get some messages

Geth.log by request :)

Steps to reproduce with new public chat:

  • Mobile: create new public chat (i.e. #testone)
  • Mobile: send a message to this chat (i.e. 123)
  • Mobile: close an app
  • Desktop: log in
  • Desktop: join #testone
  • Waiting for messages to fetch

Expected result:
messages are fetched
Actual result:
no messages, constant "Fetching messages"

Reproducible only for desktop.
Status.log
geth.log

Tried to repro on latest android nightly, and mobile works ok. As far as I can see it is desktop only.

yes, so far it feels almost like mobile & desktop are running two different versions of status-go, but investigating

figured out the reason, desktop pulls a version which is generated by github automatically.
That means that it is not pulling the code you uploaded, but the code of status-go at the time you created a release (therefore it might not be the same in mobile, and also we can't really choose which code desktop is bundled with).

@cammellos currently, the URL of status-go sources is obtained there https://github.com/status-im/status-react/blob/develop/modules/react-native-status/desktop/CMakeLists.txt#L41 as

URL https://github.com/status-im/status-go/archive/v${STATUS_GO_VERSION}.zip

where ${STATUS_GO_VERSION} gets the value from file https://github.com/status-im/status-react/blob/develop/STATUS_GO_VERSION and at the moment it's 0.16.4-4-gaf1f6eb5

GitHub
a free (libre) open source, mobile OS for Ethereum - status-im/status-react
GitHub
a free (libre) open source, mobile OS for Ethereum - status-im/status-react

@cammellos great find! We are pulling the release from e.g. https://github.com/status-im/status-go/archive/v0.16.4-4-gaf1f6eb5.zip, and not https://github.com/status-im/status-go/releases/download/v0.16.4-4-gaf1f6eb5/status-go-0.16.4-4-gaf1f6eb5.aar (in case of Android). Why would they be different?

@siphiuel @MaxRis basically to give a concrete example:
We created a release based on a branch on jenkins excluding a commit in develop, as it gives this error on the mailserver. This commit was therefore excluded from the ios/android artifact.

We then created a release on github uploading the artifacts (without that commit), but the archive that desktop uses is created automatically on github based on the state of the develop branch at the moment you create the release, so the commit was included.

For now I have made it so that the code needs to be explicitly uploaded by us https://github.com/status-im/status-react/pull/6566/files , but I think it's time to automate this, so likely I will be working on it next.

GitHub
status: ready

Some time ago I had started https://github.com/status-im/status-go/pull/1208 to harmonize the way we build mobile and desktop (to download prebuilt status-go on both cases), but for some reason that wasn't merged and then I got started on the Windows port effort.

Was this page helpful?
0 / 5 - 0 ratings