Skip to content

[Bug]: Feature Flag Display Issue #21085

@sethkfman

Description

@sethkfman

Describe the bug

Symptoms:

  • Swaps button is greyed out or missing on MetaMask Mobile.
  • Bridge button appears even though it should be merged/removed in newer builds.
  • Perps and DeFi tabs are missing.
  • No swap CTAs on individual asset detail screens.

Suspected root cause:

  • Feature flag/LaunchDarkly (LD) dependency for rendering CTAs failing or returning unexpected values.
  • Potential caching or fetch issues with client-config API.
  • Possible confusion between bridgeConfig and bridgeConfigV2.
  • Defaults may not be “safe” (i.e., Swaps should default ON for popular networks if LD is down or slow).
  • Crosschain API uses a separate LD project which might also be affecting behavior.

Evidence/diagnostics:

  • Users asked to share state logs (via long-press fox on password screen) and to fetch the client-config flags endpoint from device.
  • At least one user provided state logs and API response.
  • A PR (20947) was referenced that removes LD dependency for rendering CTAs, which should help, but may not fully cover this case.

Actions/next steps proposed:

  • Ensure sane defaults: Swaps ON by default for popular networks; fallback paths if LD/client-config fails.
  • Consider baking a snapshot of client-config (and possibly crosschain API) into the build as a fallback.
  • Investigate client-config caching and bridgeConfig vs bridgeConfigV2 selection.
  • Check Mixpanel to quantify impact on swap frequency in production.
  • Team to follow up on Monday with the new reproduction details and collected logs. (edite

Expected behavior

No response

Screenshots/Recordings

No response

Steps to reproduce

  • Issue seems related to app startup/login timing; re-logging in sometimes restores Swaps/Perps temporarily.
  • Killing the app didn’t help for some users.
  • On app load, there’s a brief flicker where Swap/Bridge CTAs appear before feature flags load, suggesting flags may be overriding defaults.
  • One user couldn’t reproduce after updating to 7.56.5, but another still sees the issue, so it’s intermittent.

Error messages or log output

Detection stage

In production (default)

Version

7.56.5

Build type

Other (please specify exactly where you obtained this build in "Additional Context" section)

Device

iOS & Android

Operating system

iOS, Other (please elaborate in the "Additional Context" section)

Additional context

  • Observed on v7.56.4 (2668) and still occurring for some on v7.56.5.
  • iOS (e.g., iOS 18.6.2) and Android (e.g., Xiaomi) — not device-specific.
  • Reproduced across multiple networks (Ethereum, Linea, Optimism, Polygon, Avalanche, Arbitrum, BNB, Base) and with “All Networks.”

Severity

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Sev1-highAn issue that may have caused fund loss or access to wallet in the past & may still be ongoingneeds-triageIssue needs to be triagedregression-prod-7.56.5Regression bug that was found in production in release 7.56.5type-bugSomething isn't working

    Type

    Projects

    Status

    To be triaged

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions