PRODUCT INCIDENT REPORT: 2009BTC–2025BTC TRADING PAIR ICON DISPLAY ERROR

  1. Incident Summary

English: From June 5 to June 10, the icons for the 2009BTC–2025BTC trading pairs in both futures and spot markets displayed incorrectly, all showing the default yellow BTC icon. The issue was initially detected on June 5 and raised in the communication group. It was initially assumed to be a temporary misconfiguration due to the ongoing market maker transition for futures, so June 5 is provisionally designated as the start date of this incident.

  1. Root Cause Analysis (RCA)

English: The Web version displayed correctly (except that 2026BTC should be a yellow icon). The discrepancy arose because on June 9, to prevent a large number of dated coins from defaulting to yellow, the default yellow icon was changed to a red-and-blue icon. This issue was introduced following updates to the market-making interface. The product team preliminarily assesses that the backend (managed by Seven) modified the image link strings during the interface adjustment, while the Flutter team (managed by Sony) was unaware of the change and did not update the code. This resulted in the display mismatch. The Flutter team overlooked this visual rendering, QA/testing failed to detect it dynamically, and the product team failed to prioritize it during the final acceptance phase.

  1. Resolution & Recovery

Temporary Workaround: Changed the default yellow icon to a red-and-blue icon so that all dated BTC pairs display the red-and- blue version (requires users to uninstall and reinstall the App).

Long-term Solution: Sony from the Flutter team immediately aligned with the backend, implemented a code fix, and urgently pushed a new hotfix release to the App Store. This has been fully deployed. • • CONFIDENTIAL - INTERNAL USE ONLY 1 / 4

Appendix: Technical Investigation Report — App Crypto Icon Caching Issue

Impact 首页 U 本位等币种图标展示 (Homepage USDⓈ-M and other trading pair icon rendering)

Business Impact 低,不影响交易与核心业务功能 (Low; does not affect trading or core operations)

Detection 开发主动排查 (Proactively identified by the development team)

QA & PM

Status ✅ 已修复,已提审 (Resolved & Submitted for App Review)

Problem Description

English: After the backend updated the coin icon configuration via get_coin_url, some users continued to see outdated icons. In extreme cases, users were forced to completely uninstall and reinstall the App to clear the asset cache, leading to a suboptimal user experience.

Root Cause Analysis (Technical Perspective)

CONFIDENTIAL - INTERNAL USE ONLY 2 / 4 English: The App’s icon retrieval mechanism relied on legacy local caching layers, preventing seamless updates:

  1. The icon URL mapping table returned by the API was written directly to local disk storage (ObjectKV.icons).
  2. Upon subsequent launches, the App prioritized reading this disk cache instead of polling the latest backend configuration.
  3. Within a single runtime session, the App’s memory layer continuously reused preloaded data. Consequently, backend updates were ignored even after an App restart, requiring an uninstallation to purge disk data. Additionally, dated tokens (e.g., 2009BTC) were hard-coded to map directly to standard BTC icons on the frontend, causing a structural mismatch with the backend’s explicit naming configuration.

Resolution Process

English: Developers proactively identified this underlying issue while auditing USDⓈ-M icon sources; no prior tickets were issued by QA or PM. The immediate response actions were executed as follows:

Step 处理动作 (Actions Executed)

Immediately isolated the root cause within the local storage persistence logic.

Completely deprecated and removed the local disk persistence for icon URLs.

Refactored the architecture to perform a direct API call on App startup to fetch real-time configurations.

Updated the icon matching algorithm to query using the exact asset name string (e.g., 2009BTC) instead of falling back to BTC.

Successfully validated the fix: users can now fully update icons simply by force-closing and restarting the App.

Promptly packaged the hotfix and submitted the build for App Store review.

CONFIDENTIAL - INTERNAL USE ONLY 3 / 4 Comparison of Fixes 维度 / Dimension 修复前 / Before Fix ❌ 修复后 / After Fix ✅

Caching Strategy

Persistent long-term local disk storage for icon configurations.

Icon URL mappings are no longer persisted to disk.

Update Method

Frequently required manual app uninstallation to purge cache.

Force-closing and restarting the App instantly fetches live data.

Token Matching

Dated tokens were systematically mapped to the general BTC key.

Strictly queries accurate asset icons using unique keys like 2009BTC.

Follow-up Actions & Quality Improvements

Comprehensive Audit of Cache Policies: Implement a regular review of legacy local data persistence layers to explicitly define volatile vs. non-volatile configurations.

Enhance QA Regression Suite: Mandate test cases covering UI/UX static resource updates specifically under “restart without reinstall” conditions to eliminate blind spots.

Refactor Legacy Architecture: Systematically decouple tightly bound data layers to mitigate drift and eliminate systemic risks of synchronization failures.

Conclusion

English: This incident stems directly from a legacy local caching design that failed to account for future scenarios involving high-frequency configuration adjustments. The development team demonstrated strong technical ownership by proactively identifying, diagnosing, and hotfixing the issue before any user or business impact escalated. Moving forward, we will enforce strict architectural decoupling and rigid integration testing pipelines to completely mitigate resource synchronization anomalies. • • • CONFIDENTIAL - INTERNAL USE ONLY 4 / 4