Skip to content

[Bug]: iOS trash button does not remove a persisted environment #12012

Description

@joeviezner

Before submitting

  • I searched existing issues and did not find a duplicate.
  • I included enough detail to reproduce or investigate the problem.

Area

apps/mobile

Steps to reproduce

  1. Install the current T3 Code iOS app from the App Store.
  2. Open Environments; a direct environment saved by an older installation is restored even after reinstalling the app.
  3. Expand the stale/offline environment.
  4. Tap the red trash button.
  5. Force-quit/relaunch the app and restart the iPhone, then repeat.

The stale row in this reproduction is a direct saved environment, not a T3 Connect relay environment.

Expected behavior

Tapping the trash button should present the “Remove from this device?” confirmation and, after confirmation, remove the saved environment and its local credentials/catalog data.

Actual behavior

Tapping the trash button has no visible effect: no confirmation alert appears and the environment is not removed. The behavior persists after force-quitting the app and restarting the iPhone.

The environment also survives deleting and reinstalling the app. This is consistent with the catalog being stored through Expo SecureStore/iOS Keychain (t3code.connection-catalog.v1), whose data can survive reinstall. The current mobile handler appears intended to call Alert.alert("Remove from this device?", ...), but that alert is never presented in this state.

Relevant source paths:

  • apps/mobile/src/state/use-remote-environment-registry.ts (onRemoveEnvironmentPress)
  • apps/mobile/src/connection/catalog-store.ts
  • apps/mobile/src/persistence/mobile-secure-storage.ts

Impact

Minor bug or occasional failure

Version or commit

Current iOS App Store release installed 2026-09-15 (exact build not shown)

Environment

T3 Code iOS app on iPhone; direct saved environment; stale endpoint offline

Logs or stack traces

Screenshots, recordings, or supporting files

No response

Workaround

None. Force-quit, restart, and reinstall do not clear the entry because the connection catalog persists in iOS Keychain. The stale row can only be ignored.

No activity

Activity on this issue will appear here.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    acceptedfeature request acceptedbugSomething is broken or behaving incorrectly.via-triageFiled through npx t3 triage

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions