j-fbriere / squawker

An open-source privacy oriented Twitter/X client
MIT License
813 stars 16 forks source link

v3.7.0 freeze #194

Closed zer0fl0w closed 5 months ago

zer0fl0w commented 5 months ago

behavior like mentioned here -> https://github.com/j-fbriere/squawker/issues/192#issuecomment-1935339723

v3.7.0 needs clean install.

but still had this error again. the whole ui freezes. even after fc/clear cache it wont react nor show anything.

cant pull any logs or so, because i have to clear data to get app working again.

sorry i cant provide any further details for now.

sh-msh commented 5 months ago

Had the same behaviour after upgrading to 3.7.0. Deleted cache and data and imported my data from an earlier export. Added newly created X account. Works for now.

zer0fl0w commented 5 months ago

i had this scenario again after the first time while adding some subscriptions.

lets see. maybe it wont happen again. wait if there will be more feedback/reports.

thedavemiester commented 5 months ago

Me too

tadcrazio commented 5 months ago

I had the same issue here, Android 14 pixel 8 pro. Upon fresh installation the app was completely frozen cannot navigate anywhere. installed it in a workspace on my phone and it works.. Tried again in my main area , thought maybe it was automatically importing settings or something.. it just worked. ¯_(ツ)_/¯

autogris commented 5 months ago

I have the same issue but cannot access export menu to backup and do a fresh install due to complete freeze (freeze occurs few seconds after opening, not enough time to do an export data)

bel57 commented 5 months ago

Same. Added account and subscriptions. Now even after clearing cache and force closing, on launch the app instantly freezes.

Saroumane commented 5 months ago

Same behavior with 3.7.1

taraletti commented 5 months ago

Same behavior on 3.7.0, just updated to 3.7.1 and freezes too (android 8)

j-fbriere commented 5 months ago

It happened to me once yesterday with the last version (don't know why yet). I closed it and launched it again with no problem. Also I'm on Android 14.

Does it happen all the time or intermittently (like me)?

bel57 commented 5 months ago

All the time. Android 13, it's freezing on launch. Black screen, can't do anything. Screenshot_20240210-113417

zer0fl0w commented 5 months ago

you have to clear app data, not cache. then it will start and you can add an account and start configuring the app.

i started the thread because i had this hardfreeze after the first "normal" 3.6.5 to 3.7.x conversion bug where you have to start clean.

i could not reproduce it since then tho. it works fine for me until further notice (:

thanks again jean.

Saroumane commented 5 months ago

I wanted to avoid "Clear app data" to avoid losing all settings. Unfortunately android prevents downgrading to 3.6.5 (I wanted to backup settings with 3.6.5, then do a clean install of 3.7.x and restore settings.)

By the way, an idea : to avoid this situation it could be nice if an app (before upgrading to a new version) would automatically offer the possibility to backup its settings/data in an external directory.

bel57 commented 5 months ago

Still, same. Wipe app data. Launch, login with my credentials and 2FA. I import the accounts I follow (~950), then when exiting settings the app start freezing. Force closing, wipe cache, relaunch, freeze.

j-fbriere commented 5 months ago

@bel57 Question: When you imported your ~950 subscriptions, did you wait till the message at the bottom appears that the data import was successful before exiting the settings?

bel57 commented 5 months ago

Yes, I wait long enough till it finishes everything, success message does appear. Then back to home page and stuck. Every. Time. I cleared all data and it's happening again, let me know if there's a way to extract the logs despite freezing situation.

thedavemiester commented 5 months ago

I'm on Android 13 and experience the same. 3.7.0 froze almost immediately after import (only 190 accts). 3.7.1 worked great for a short period but on reopening froze again.

Edit. Just reinstalled, set up the way I wanted and it froze refreshing the timeline

zer0fl0w commented 5 months ago

i could just trigger the bug again too by manually removing some accounts in subscriptions tab.

also i can confirm restoring backups from 3.7.x in 3.7.x only partially works. only main settings get restored.

subscriptions wont restore for me although they are in the json. i looked at the json in editor. maybe some format change or so.

j-fbriere commented 5 months ago

subscriptions wont restore for me although they are in the json.

@zer0fl0w Are you talking about subscriptions or searchSubscriptions in your json that are not imported?

zer0fl0w commented 5 months ago

the profiles i "follow" under subscriptions tab.

j-fbriere commented 5 months ago

also i can confirm restoring backups from 3.7.x in 3.7.x only partially works. only main settings get restored.

This is strange because I cannot reproduce it. What I did:

zer0fl0w commented 5 months ago

i only tested full backups, not subs only. means all boxes ticked besides tweets (last one).

Saroumane commented 5 months ago

I

also i can confirm restoring backups from 3.7.x in 3.7.x only partially works. only main settings get restored.

This is strange because I cannot reproduce it. What I did:

  • Exported the subscriptions
  • Removed some subscriptions
  • Imported the file
  • The removed subscriptions are back

I reproduce this problem.

j-fbriere commented 5 months ago

@zer0fl0w, @bel57, @thedavemiester, @Saroumane The version v3.7.2 should fix the issue of import.

taraletti commented 5 months ago

With 3.7.2 it's solved for me

bel57 commented 5 months ago

Not fixed for me. Login and import are successful but still the same behavior, freezing/black screen on app launch and first tab which should show the timeline. Yes I've cleared app cache and data after updating version. Tried uninstalling restarting, reinstalling, same. Screenshot_20240211_175211

zer0fl0w commented 5 months ago

changelog never mentioned it fixed freeze, so it is probably not supposed to for now.

i think you follow just to much. try setting up without import of subscriptions. then see if it generally works by adding only some subs manually, like 10 or 20.

bel57 commented 5 months ago

The dev tagged me so I assumed it was fixed. Thoughts on followings limit? The app imports those just fine. But it can't handle displaying the timeline after that..

j-fbriere commented 5 months ago

After some analysis I think I know the problem.

There is a rate limit imposed by Twitter/X. It varies depending of the type of Twitter/X API request. Some types of requests, like the tweets of a profile, have a limit of 150 requests per 15 minutes. Other types of requests, like the one used for the feed, have a limit of only 50 requests per 15 minutes.

There is also another limitation imposed by Twitter/X: the maximum size of a query in a request is 512 characters. A Twitter/X API request for a feed with 3 subs has a query that looks like the following: from:caitoz OR from:Aaaronjmate OR from:ggreenwald So if there are many subs in the feed, it must be separated in n requests, each request containing a query of a group of subs up to 512 characters. I have ~ 50 subs and it executes 4 requests each time the feed is opened or refreshed. So with ~ 950 subs, the feed executes ~ 75 requests, which is already over the rate limit (50).

Maybe the solution is to create groups with about 100 subs per group and not use the feed? I know it's not ideal. I'm opened to suggestions but don't forget about the limitations imposed by Twitter/X.

bel57 commented 5 months ago

Interesting. Would be great if the app could work with the API limit and offer to pull data according to the rate instead of trying all and freezing. Also instead of having to manually create groups/manually add followings, could the app extract the followings (~950) and allow the user to pick which ones to import? Maybe I missed something but if you tell me max 100 subs then I'll pick 100 out of 950. Though decision but better than nothing.

fgloblek commented 5 months ago

I experienced the freeze issue after upgrading from 3.6.5 to 3.7.1, but 3.7.2 solved the problem completely, no clean install needed. Thank you.

j-fbriere commented 5 months ago

Maybe I missed something but if you tell me max 100 subs then I'll pick 100 out of 950.

No I meant 100 subs max per group. For 950 subs it means 10 groups (last one with 50 subs).

Waredane commented 5 months ago

Hi, to unfreeze the application you must cut off its internet access and force close the app. to make a backup for example.

thomascrisan commented 5 months ago

I am having the problem with version 3.7.2 when I go to the Feed screen. With version 3.6.5, the Feed screen often displays "Opps! Something when wrong..." because of "Rate limit exceeded". With version 3.7.2, the application just freezes.

j-fbriere commented 5 months ago

@thomascrisan Questions:

j-fbriere commented 5 months ago

@bel57 Version v3.7.3 improved the feed requests. You might be able to load the 950 subs.

j-fbriere commented 5 months ago

Version v3.7.3 should fix the issue of freezing (even if the issue is already closed).

bel57 commented 5 months ago

Oh wow, excellent job! It just worked updating without any cache or appdata clearing. Gotta admit it took a solid 20 seconds to load but hey, it's there :) Is it a workaround or do I have to expect some rates/toast messages about refreshing limitation? Also if I understand correctly, the timeline is read only, can't interact at all?

j-fbriere commented 5 months ago

Is it a workaround

It is a different strategy to execute the Twitter/X requests. Instead of executing all the needed Twitter/X requests in parallel, there is now a mix of sequential execution and parallel execution of Twitter/X requests.

do I have to expect some rates/toast messages about refreshing limitation?

The rate limits are imposed by Twitter/X, so no change there. 50 Twitter/X requests per 15 min. In the case of ~950 subs, which executes ~45 requests, it means that it is better to wait 15 minutes before refreshing.

Also if I understand correctly, the timeline is read only, can't interact at all?

It's read only.