Earnings: provider Demand chart and Why? stay blank until the next minute poll
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 62/100
Direzione di ricerca
Start in the Earnings screen's onRefresh and in providerStatusDisplay(), which sets why = false when the snapshot is absent. Wire the existing vc.refresh() on ProviderStatusViewController into pull-to-refresh, then add a retry action to the chart's unavailable state. Done when pull-to-refresh re-polls provider status and a failed Demand chart can be retried without waiting for the next minute tick.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
On Earnings, the provider stats block's Demand histogram often fails to load, and the expandable Why? under it disappears with it. It comes back only after several pull-to-refresh gestures (scroll to the top, drag down, scroll back to check), which makes the section feel broken.
Cause
The two panels are one state, not two bugs: providerStatusDisplay() sets why = false whenever the snapshot is absent, so the Why? goes with the chart.
That snapshot comes from the SDK's ProviderStatusViewController, which polls GET /network/provider-status once at start and then about once a minute. On a failed poll it retries at its next interval, not sooner (step() stamps nextPollAt when it launches the fetch).
The Earnings pull-to-refresh does not touch that controller. Its onRefresh refreshes account points, wallet, epochs, claims, settlements and consent — not provider status. So the gesture cannot affect this section, and the apparent "recovery" is the next 60-second tick landing while the user is scrolling.
ProviderStatusViewController.Refresh() exists (cgo urn_provider_status_view_controller_refresh, Kotlin vc.refresh()) but nothing in the app calls it.
Two things make that first poll fail more often than it should:
- The chart's unavailable state has no action, so there is no way to ask again before the interval.
GET /network/provider-statusanswers503 Cached response is temporarily unavailable.withRetry-After: 5to concurrent or post-failure callers while a cache fill lease is held, and the SDK ignores the hint. Admission and ranking are also cached for 5 minutes.
Suggested fix
- Call
vc.refresh()from the screen's pull-to-refresh, and offer a retry in the chart's unavailable state — ideally only where asking again can change the answer (a failed poll or a missing histogram, not "this device is not a provider client", which the server caches for minutes). - Optionally, retry a failed first poll after a few seconds, bounded, instead of waiting the full interval.
Repro
Providing enabled (provide mode not Never) → open Earnings → scroll to Provider statistics. With a brief network interruption around app start, the Demand chart shows "Provider status isn't available right now", the Why? is absent, pull-to-refresh does nothing, and the section recovers on its own about a minute later.
The iOS client has the same limitation
Checked against urnetwork/apple main. It is not a platform difference — the same shape is there:
ProviderStatusPresentation.swiftreturnsshowsWhy: falsewhen the snapshot is not loaded or has no row for the device, so the Why? goes with the chart exactly as on Android.EarningsView.swift.refreshable { await refresh() }refreshes the wallet, epochs and subnet, not the provider status.- The
ProviderStatusControllingprotocol inProviderStatusStore.swiftexposes onlystart,stop,addStatusListenerandreadSnapshot— no force-poll at all, so a fix there needs arefresh()added to the protocol or a controller restart to force the poll.
- Lingua principale
- Kotlin
- Stelle
- 224
- Fork
- 14
- Merge medio
- 55m
- PR unite (30g)
- 1
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di urnetwork/android
-
urnetwork vpn IssueAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 48/100
-
Verify change from cell to WiFiForse di nuovo libera @Ryanmello07 l’ha presa 73 giorni fa e non c’è nessuna pull request aperta. Aperta
-
DebuggingForse di nuovo libera @Ryanmello07 l’ha presa 73 giorni fa e non c’è nessuna pull request aperta. Aperta
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
-
WebRTC leakAperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
Tutte le issue di urnetwork/android
Issue simili
-
autoteam community connectors/destination/mssql connectors/source/hubspot team/use
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
airbytehq/airbyte#91201 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
bug javascript
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Source: c7 Type: bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
2.23
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
ankidroid/Anki-Android#23042 · 4 commenti ·
I maintainer di solito rispondono entro 1 giorno