W9-C5 Full market context lost on single indexer failure — order book, trade tape, and chart all go blank simultaneously #165
Labels
No labels
agent:fix_bugfix
agent:fix_conflicts
agent:fix_security
agent:gap_analysis
agent:implement
agent:implement
agent:implement
agent:open_issues
agent:ready
agent:research
agent:security_audit
agent:verify
architecture
backend
blocker:hybrid
blocker:launch
blocker:limit-orders
blocker:v2
block:log_only
block:security
bug
ci
contracts
correctness
deploy
dev
devops
docs
documentation
duplicate
e2e
enhancement
epic
feature
frontend
functional-completion
gas
good first issue
governance
help wanted
high-risk
hooks
hybrid
indexer
infra
infrastructure
integrators
invalid
launch-blocker
limit-orders
localnet
localterra
low priority
missing-implementation
needs-design
ops
performance
priority
high
priority
medium
product
qa
QA
question
ready
ready
research
scripts
security
security-hardening
smartcontracts
tech-debt
testing
ux
UX
v2
verification
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
code/cl8y-dex-terraclassic#165
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Issue Summary
When the indexer becomes unavailable, the order book, recent trades tape, and chart all go blank at the same time. A trader attempting to place an order during an indexer outage has no book depth, no tape, and no chart, zero market context. The order ticket remains accessible but the trader is effectively blind to current market conditions.
Reproduction Steps
Expected Behavior
Graceful degradation should preserve as much market context as possible from alternative data sources (LCD/chain direct queries) when the indexer is unavailable. At minimum, the UI should communicate clearly what each affected section is missing and why, rather than going blank.
Actual Behavior
Order book shows "Book unavailable (indexer or LCD)." Recent trades section goes empty. Chart goes blank. All three surfaces fail simultaneously from a single service going down, leaving the order ticket as the only functional element.
Screenshot
Environment Details
localterra(local Docker)VITE_NETWORK=local npm run devWallet / Device Details
Severity / Impact
P2 Polish. Order placement remains technically possible but placing an order with no book, no tape, and no chart is a meaningful operational risk for traders. On a live exchange an indexer outage would leave traders unable to make informed decisions while still being able to submit transactions. Found under W9-C5 (Empty and error rows — Updates and Trader use dimensions).
cc: @PlasticDigits
mentioned in issue #116
Marked as low priority as indexer outage requires multiple fallback services, which is not necessary for our current uptime targets.
mentioned in commit
5f2563a182mentioned in commit
24ff20e505Verification & fix (GitLab #165)
Problem: When the indexer HTTP API was unreachable, the Trade page banner appeared but the order book, recent trades tape, and price chart could still go blank with no explanation.
Fix (merged to
main,24ff20e):indexerTradeOutageCopy.tsfor each panel (book / tape / chart).TradeMarketDataUnavailableNotice,TradeRecentTradesSection, anddetectTradeIndexerOutage()so outage detection and messaging stay modular.OrderBookPanelandPriceChartnow render dashed status rows instead of empty panels whenisIndexerUnavailableErrorapplies.getPair).Verification:
TradePage.test.tsx,indexerTradeOutageCopy.test.ts,tradeIndexerOutage.test.ts,PriceChart.test.tsx— all pass.PLAYWRIGHT_SKIP_CHAIN=1 E2E_INDEXER_OUTAGE=1 npx playwright test e2e/trade-indexer-outage.spec.ts— banner +trade-book-unavailable-*,trade-tape-unavailable,trade-chart-unavailableall visible.Note: Full LCD fallback for depth/tape/candles is intentionally out of scope per product invariants (#164); this delivers the minimum acceptable degradation — clear per-panel communication.
mentioned in commit
4f230d35cfmentioned in issue #164
mentioned in issue #211
mentioned in issue #215
marked as related to #215
mentioned in issue #218
mentioned in issue #228
marked as related to #228