Skip to content

[url_launcher_ios] URLLauncherUITests fail on iOS 26 #173100

@danagbemava-nc

Description

@danagbemava-nc

Steps to reproduce

  1. Install xcode 26 beta
  2. Clone the packages repo
  3. Run the setup command in the script/tool directory (cd script/tool && dart pub get)
  4. Prep the example directory of url_launcher_ios (flutter build or flutter pub get in the example directory)
  5. Open ios/Runner.xcworkspace in Xcode 26 beta 4
  6. Run the UrlLauncherUITests on an iOS 18.4 device (emulator/physical)
  7. Clear the test logs
  8. Run the UrlLauncherUITests on an iOS 26 device (emulator/physical)

Expected results

The test passes on both iOS 18.4 and iOS 26

Actual results

The tests fail on iOS 26

With the tools for iOS 26 installed in Xcode (Simulator support etc), I tested with xcode 16.3 (both on iOS 18.4 and iOS 26) and the results were the same, i.e, the test passes on iOS 18.4 but not on iOS 26.

Code sample

The url_launcher_ios example app is required for this.

Screenshots or Video

N/A

Logs

iOS 18.4 Test execution logs
-- LLDB integration loaded --
Running tests...
    t =      nans Interface orientation changed to Portrait
Test Suite 'Selected tests' started at 2025-08-01 09:00:29.584.
Test Suite 'RunnerUITests.xctest' started at 2025-08-01 09:00:29.584.
Test Suite 'URLLauncherUITests' started at 2025-08-01 09:00:29.584.
Test Case '-[RunnerUITests.URLLauncherUITests testLaunch]' started.
    t =     0.02s Start Test at 2025-08-01 09:00:29.603
    t =     0.18s Set Up
    t =     0.19s     Open dev.flutter.plugins.urlLauncher
    t =     0.19s         Launch dev.flutter.plugins.urlLauncher
    t =     3.95s             Setting up automation session
    t =     4.69s             Wait for dev.flutter.plugins.urlLauncher to idle
    t =     6.93s Waiting 30.0s for "Launch in app" Button to exist
    t =     7.96s     Checking `Expect predicate `existsNoRetry == 1` for object "Launch in app" Button`
    t =     7.96s         Checking existence of `"Launch in app" Button`
    t =     8.00s Get number of matches for: Descendants matching type WebView
    t =     8.01s Tap "Launch in app" Button
    t =     8.01s     Wait for dev.flutter.plugins.urlLauncher to idle
    t =     8.01s     Find the "Launch in app" Button
    t =     8.03s     Check for interrupting elements affecting "Launch in app" Button
    t =     8.05s     Synthesize event
    t =     8.45s     Wait for dev.flutter.plugins.urlLauncher to idle
    t =     8.82s Waiting 30.0s for WebView (First Match) to exist
    t =     9.89s     Checking `Expect predicate `existsNoRetry == 1` for object WebView (First Match)`
    t =     9.89s         Checking existence of `WebView (First Match)`
    t =    10.05s Waiting 30.0s for "ForwardButton" Button to exist
    t =    11.10s     Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
    t =    11.10s         Checking existence of `"ForwardButton" Button`
    t =    11.18s Checking existence of `"Share" Button`
    t =    11.24s Checking existence of `"OpenInSafariButton" Button`
    t =    11.30s Waiting 30.0s for "Done" Button to exist
    t =    12.34s     Checking `Expect predicate `existsNoRetry == 1` for object "Done" Button`
    t =    12.34s         Checking existence of `"Done" Button`
    t =    12.44s Tap "Done" Button[0.00, 0.00] -> (10.0, 10.0)
    t =    12.44s     Wait for dev.flutter.plugins.urlLauncher to idle
    t =    12.44s     Find the "Done" Button
    t =    12.49s     Check for interrupting elements affecting "Done" Button
    t =    12.54s     Synthesize event
    t =    12.54s         Find the "Done" Button
    t =    12.59s         Find the "Done" Button
    t =    12.66s         Find the "Done" Button
    t =    13.00s     Wait for dev.flutter.plugins.urlLauncher to idle
    t =    13.44s Waiting 30.0s for "Launch in app(JavaScript ON)" Button to exist
    t =    14.47s     Checking `Expect predicate `existsNoRetry == 1` for object "Launch in app(JavaScript ON)" Button`
    t =    14.47s         Checking existence of `"Launch in app(JavaScript ON)" Button`
    t =    14.49s Get number of matches for: Descendants matching type WebView
    t =    14.51s Tap "Launch in app(JavaScript ON)" Button
    t =    14.51s     Wait for dev.flutter.plugins.urlLauncher to idle
    t =    14.51s     Find the "Launch in app(JavaScript ON)" Button
    t =    14.53s     Check for interrupting elements affecting "Launch in app(JavaScript ON)" Button
    t =    14.55s     Synthesize event
    t =    14.84s     Wait for dev.flutter.plugins.urlLauncher to idle
    t =    15.18s Waiting 30.0s for WebView (First Match) to exist
    t =    16.21s     Checking `Expect predicate `existsNoRetry == 1` for object WebView (First Match)`
    t =    16.21s         Checking existence of `WebView (First Match)`
    t =    16.27s Waiting 30.0s for "ForwardButton" Button to exist
    t =    17.30s     Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
    t =    17.30s         Checking existence of `"ForwardButton" Button`
    t =    17.38s Checking existence of `"Share" Button`
    t =    17.44s Checking existence of `"OpenInSafariButton" Button`
    t =    17.49s Waiting 30.0s for "Done" Button to exist
    t =    18.52s     Checking `Expect predicate `existsNoRetry == 1` for object "Done" Button`
    t =    18.53s         Checking existence of `"Done" Button`
    t =    18.60s Tap "Done" Button[0.00, 0.00] -> (10.0, 10.0)
    t =    18.60s     Wait for dev.flutter.plugins.urlLauncher to idle
    t =    18.60s     Find the "Done" Button
    t =    18.67s     Check for interrupting elements affecting "Done" Button
    t =    18.71s     Synthesize event
    t =    18.71s         Find the "Done" Button
    t =    18.77s         Find the "Done" Button
    t =    18.85s         Find the "Done" Button
    t =    19.19s     Wait for dev.flutter.plugins.urlLauncher to idle
    t =    19.53s Waiting 30.0s for "Launch in app(DOM storage ON)" Button to exist
    t =    20.56s     Checking `Expect predicate `existsNoRetry == 1` for object "Launch in app(DOM storage ON)" Button`
    t =    20.56s         Checking existence of `"Launch in app(DOM storage ON)" Button`
    t =    20.60s Get number of matches for: Descendants matching type WebView
    t =    20.61s Tap "Launch in app(DOM storage ON)" Button
    t =    20.61s     Wait for dev.flutter.plugins.urlLauncher to idle
    t =    20.61s     Find the "Launch in app(DOM storage ON)" Button
    t =    20.63s     Check for interrupting elements affecting "Launch in app(DOM storage ON)" Button
    t =    20.65s     Synthesize event
    t =    20.95s     Wait for dev.flutter.plugins.urlLauncher to idle
    t =    21.29s Waiting 30.0s for WebView (First Match) to exist
    t =    22.33s     Checking `Expect predicate `existsNoRetry == 1` for object WebView (First Match)`
    t =    22.33s         Checking existence of `WebView (First Match)`
    t =    22.39s Waiting 30.0s for "ForwardButton" Button to exist
    t =    23.43s     Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
    t =    23.43s         Checking existence of `"ForwardButton" Button`
    t =    23.53s Checking existence of `"Share" Button`
    t =    23.61s Checking existence of `"OpenInSafariButton" Button`
    t =    23.67s Waiting 30.0s for "Done" Button to exist
    t =    24.70s     Checking `Expect predicate `existsNoRetry == 1` for object "Done" Button`
    t =    24.70s         Checking existence of `"Done" Button`
    t =    24.77s Tap "Done" Button[0.00, 0.00] -> (10.0, 10.0)
    t =    24.77s     Wait for dev.flutter.plugins.urlLauncher to idle
    t =    24.77s     Find the "Done" Button
    t =    24.83s     Check for interrupting elements affecting "Done" Button
    t =    24.88s     Synthesize event
    t =    24.88s         Find the "Done" Button
    t =    24.94s         Find the "Done" Button
    t =    25.00s         Find the "Done" Button
    t =    25.35s     Wait for dev.flutter.plugins.urlLauncher to idle
    t =    25.69s Waiting 30.0s for "Launch a universal link in a native app, fallback to Safari.(Youtube)" Button to exist
    t =    26.73s     Checking `Expect predicate `existsNoRetry == 1` for object "Launch a universal link in a native app, fallback to Safari.(Youtube)" Button`
    t =    26.73s         Checking existence of `"Launch a universal link in a native app, fallback to Safari.(Youtube)" Button`
    t =    26.76s Get number of matches for: Descendants matching type WebView
    t =    26.77s Tap "Launch a universal link in a native app, fallback to Safari.(Youtube)" Button
    t =    26.77s     Wait for dev.flutter.plugins.urlLauncher to idle
    t =    26.77s     Find the "Launch a universal link in a native app, fallback to Safari.(Youtube)" Button
    t =    26.79s     Check for interrupting elements affecting "Launch a universal link in a native app, fallback to Safari.(Youtube)" Button
    t =    26.81s     Synthesize event
    t =    27.10s     Wait for dev.flutter.plugins.urlLauncher to idle
    t =    27.44s Waiting 30.0s for WebView (First Match) to exist
    t =    28.47s     Checking `Expect predicate `existsNoRetry == 1` for object WebView (First Match)`
    t =    28.47s         Checking existence of `WebView (First Match)`
    t =    28.54s Waiting 30.0s for "ForwardButton" Button to exist
    t =    29.56s     Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
    t =    29.56s         Checking existence of `"ForwardButton" Button`
    t =    29.64s Checking existence of `"Share" Button`
    t =    29.69s Checking existence of `"OpenInSafariButton" Button`
    t =    29.75s Waiting 30.0s for "Done" Button to exist
    t =    30.77s     Checking `Expect predicate `existsNoRetry == 1` for object "Done" Button`
    t =    30.77s         Checking existence of `"Done" Button`
    t =    30.84s Tap "Done" Button[0.00, 0.00] -> (10.0, 10.0)
    t =    30.84s     Wait for dev.flutter.plugins.urlLauncher to idle
    t =    30.84s     Find the "Done" Button
    t =    30.90s     Check for interrupting elements affecting "Done" Button
    t =    30.95s     Synthesize event
    t =    30.95s         Find the "Done" Button
    t =    31.00s         Find the "Done" Button
    t =    31.07s         Find the "Done" Button
    t =    31.42s     Wait for dev.flutter.plugins.urlLauncher to idle
    t =    31.74s Tear Down
Test Case '-[RunnerUITests.URLLauncherUITests testLaunch]' passed (31.988 seconds).
Test Suite 'URLLauncherUITests' passed at 2025-08-01 09:01:01.591.
	 Executed 1 test, with 0 failures (0 unexpected) in 31.988 (32.007) seconds
Test Suite 'RunnerUITests.xctest' passed at 2025-08-01 09:01:01.593.
	 Executed 1 test, with 0 failures (0 unexpected) in 31.988 (32.009) seconds
Test Suite 'Selected tests' passed at 2025-08-01 09:01:01.594.
	 Executed 1 test, with 0 failures (0 unexpected) in 31.988 (32.011) seconds
iOS 26 Test execution logs
-- LLDB integration loaded --
Running tests...
Update the Info.plist: Launch screens will soon be required.
    t =      nans Interface orientation changed to Portrait
Test Suite 'Selected tests' started at 2025-08-01 09:02:42.108.
Test Suite 'RunnerUITests.xctest' started at 2025-08-01 09:02:42.110.
Test Suite 'URLLauncherUITests' started at 2025-08-01 09:02:42.110.
Test Case '-[RunnerUITests.URLLauncherUITests testLaunch]' started.
    t =     0.00s Start Test at 2025-08-01 09:02:42.113
    t =     0.21s Set Up
    t =     0.21s     Open dev.flutter.plugins.urlLauncher
    t =     0.21s         Launch dev.flutter.plugins.urlLauncher
    t =     3.17s             Setting up automation session
    t =     4.42s             Wait for dev.flutter.plugins.urlLauncher to idle
    t =     7.77s Waiting 30.0s for "Launch in app" Button to exist
    t =     8.86s     Checking `Expect predicate `existsNoRetry == 1` for object "Launch in app" Button`
    t =     8.86s         Checking existence of `"Launch in app" Button`
    t =     8.98s Get number of matches for: Descendants matching type WebView
    t =     9.07s Tap "Launch in app" Button
    t =     9.07s     Wait for dev.flutter.plugins.urlLauncher to idle
    t =     9.08s     Find the "Launch in app" Button
    t =     9.12s     Check for interrupting elements affecting "Launch in app" Button
    t =     9.16s     Synthesize event
    t =     9.61s     Wait for dev.flutter.plugins.urlLauncher to idle
    t =    10.03s Waiting 30.0s for WebView (First Match) to exist
    t =    11.12s     Checking `Expect predicate `existsNoRetry == 1` for object WebView (First Match)`
    t =    11.13s         Checking existence of `WebView (First Match)`
    t =    12.13s Waiting 30.0s for "ForwardButton" Button to exist
    t =    13.14s     Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
    t =    13.17s         Checking existence of `"ForwardButton" Button`
    t =    13.30s         Capturing element debug description
    t =    14.21s     Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
    t =    14.21s         Checking existence of `"ForwardButton" Button`
    t =    14.32s         Capturing element debug description
    t =    15.18s     Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
    t =    15.18s         Checking existence of `"ForwardButton" Button`
    t =    15.32s         Capturing element debug description
    t =    16.16s     Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
    t =    16.16s         Checking existence of `"ForwardButton" Button`
    t =    16.24s         Capturing element debug description
    t =    17.14s     Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
    t =    17.14s         Checking existence of `"ForwardButton" Button`
    t =    17.58s         Capturing element debug description
    t =    18.22s     Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
    t =    18.22s         Checking existence of `"ForwardButton" Button`
    t =    18.56s         Capturing element debug description
    t =    19.18s     Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
    t =    19.18s         Checking existence of `"ForwardButton" Button`
    t =    19.26s         Capturing element debug description
    t =    20.20s     Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
    t =    20.20s         Checking existence of `"ForwardButton" Button`
    t =    20.27s         Capturing element debug description
    t =    21.19s     Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
    t =    21.19s         Checking existence of `"ForwardButton" Button`
    t =    21.27s         Capturing element debug description
    t =    22.20s     Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
    t =    22.20s         Checking existence of `"ForwardButton" Button`
    t =    22.28s         Capturing element debug description
    t =    23.21s     Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
    t =    23.21s         Checking existence of `"ForwardButton" Button`
    t =    23.27s         Capturing element debug description
    t =    24.16s     Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
    t =    24.16s         Checking existence of `"ForwardButton" Button`
    t =    24.23s         Capturing element debug description
    t =    25.16s     Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
    t =    25.16s         Checking existence of `"ForwardButton" Button`
    t =    25.24s         Capturing element debug description
    t =    26.17s     Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
    t =    26.17s         Checking existence of `"ForwardButton" Button`
    t =    26.24s         Capturing element debug description
    t =    27.16s     Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
    t =    27.16s         Checking existence of `"ForwardButton" Button`
    t =    27.24s         Capturing element debug description
    t =    28.16s     Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
    t =    28.16s         Checking existence of `"ForwardButton" Button`
    t =    28.23s         Capturing element debug description
    t =    29.17s     Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
    t =    29.17s         Checking existence of `"ForwardButton" Button`
    t =    29.24s         Capturing element debug description
    t =    30.18s     Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
    t =    30.18s         Checking existence of `"ForwardButton" Button`
    t =    30.25s         Capturing element debug description
    t =    31.17s     Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
    t =    31.17s         Checking existence of `"ForwardButton" Button`
    t =    31.25s         Capturing element debug description
    t =    32.18s     Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
    t =    32.18s         Checking existence of `"ForwardButton" Button`
    t =    32.25s         Capturing element debug description
    t =    33.18s     Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
    t =    33.18s         Checking existence of `"ForwardButton" Button`
    t =    33.26s         Capturing element debug description
    t =    34.18s     Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
    t =    34.18s         Checking existence of `"ForwardButton" Button`
    t =    34.25s         Capturing element debug description
    t =    35.20s     Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
    t =    35.20s         Checking existence of `"ForwardButton" Button`
    t =    35.27s         Capturing element debug description
    t =    36.21s     Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
    t =    36.21s         Checking existence of `"ForwardButton" Button`
    t =    36.27s         Capturing element debug description
    t =    37.21s     Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
    t =    37.21s         Checking existence of `"ForwardButton" Button`
    t =    37.27s         Capturing element debug description
    t =    38.15s     Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
    t =    38.15s         Checking existence of `"ForwardButton" Button`
    t =    38.22s         Capturing element debug description
    t =    39.17s     Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
    t =    39.26s         Checking existence of `"ForwardButton" Button`
    t =    39.98s         Capturing element debug description
    t =    40.18s     Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
    t =    40.18s         Checking existence of `"ForwardButton" Button`
    t =    40.25s         Capturing element debug description
    t =    41.17s     Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
    t =    41.18s         Checking existence of `"ForwardButton" Button`
    t =    41.25s         Capturing element debug description
    t =    42.14s     Checking `Expect predicate `existsNoRetry == 1` for object "ForwardButton" Button`
    t =    42.14s         Checking existence of `"ForwardButton" Button`
    t =    42.22s         Capturing element debug description
    t =    42.22s     Checking existence of `"ForwardButton" Button`
    t =    42.27s Collecting debug information to assist test failure triage
    t =    42.27s     Requesting snapshot of accessibility hierarchy for app with pid 79568
/Users/nexus/dev/packages/packages/url_launcher/url_launcher_ios/example/ios/RunnerUITests/URLLauncherUITests.swift:31: error: -[RunnerUITests.URLLauncherUITests testLaunch] : XCTAssertTrue failed
    t =    42.79s Tear Down
Test Case '-[RunnerUITests.URLLauncherUITests testLaunch]' failed (43.047 seconds).
Test Suite 'URLLauncherUITests' failed at 2025-08-01 09:03:25.160.
	 Executed 1 test, with 1 failure (0 unexpected) in 43.047 (43.050) seconds
Test Suite 'RunnerUITests.xctest' failed at 2025-08-01 09:03:25.162.
	 Executed 1 test, with 1 failure (0 unexpected) in 43.047 (43.052) seconds
Test Suite 'Selected tests' failed at 2025-08-01 09:03:25.163.
	 Executed 1 test, with 1 failure (0 unexpected) in 43.047 (43.055) seconds

Flutter Doctor output

Doctor output
[✓] Flutter (Channel master, 3.33.0-1.0.pre-1103, on macOS 15.5 24F74 darwin-arm64, locale en-GH) [5.0s]
    • Flutter version 3.33.0-1.0.pre-1103 on channel master at /Users/nexus/dev/sdks/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 0c43fe476c (8 days ago), 2025-07-24 02:15:14 -0400
    • Engine revision 0c43fe476c
    • Dart version 3.10.0 (build 3.10.0-25.0.dev)
    • DevTools version 2.48.0
    • Feature flags: enable-web, enable-linux-desktop, enable-macos-desktop, enable-windows-desktop, enable-android, enable-ios, cli-animations, enable-native-assets

[!] Android toolchain - develop for Android devices (Android SDK version 36.0.0) [5.0s]
    • Android SDK at /Users/nexus/Library/Android/sdk
    • Emulator version 35.5.10.0 (build_id 13402964) (CL:N/A)
    • Platform android-36, build-tools 36.0.0
    • ANDROID_HOME = /Users/nexus/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
      This is the JDK bundled with the latest Android Studio installation on this machine.
      To manually set the JDK path, use: `flutter config --jdk-dir="path/to/jdk"`.
    • Java version OpenJDK Runtime Environment (build 21.0.6+-13368085-b895.109)
    ! Some Android licenses not accepted. To resolve this, run: flutter doctor --android-licenses

[✓] Xcode - develop for iOS and macOS (Xcode 26.0) [2.6s]
    • Xcode at /Applications/Xcode-26.0.0-Beta.4.app/Contents/Developer
    • Build 17A5285i
    • CocoaPods version 1.16.2

[✓] Chrome - develop for the web [8ms]
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Connected device (6 available) [6.2s]
    • iPhone 16 Pro Max (mobile)     • 00008140-00194CC23A68801C            • ios            • iOS 26.0 23A5297m
    • iPhone 16 Pro (mobile)         • 35EB9616-6F92-47CD-B25F-1E2E84FD448A • ios            • com.apple.CoreSimulator.SimRuntime.iOS-26-0 (simulator)
    • iPad Air 13-inch (M3) (mobile) • 996AEE94-3BCB-44D3-B879-66CB269BF147 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-26-0 (simulator)
    • iPad Air 13-inch (M3) (mobile) • AD7C643F-0B42-428D-8011-35035EA95B1B • ios            • com.apple.CoreSimulator.SimRuntime.iOS-18-4 (simulator)
    • macOS (desktop)                • macos                                • darwin-arm64   • macOS 15.5 24F74 darwin-arm64
    • Chrome (web)                   • chrome                               • web-javascript • Google Chrome 138.0.7204.184

[✓] Network resources [1,512ms]
    • All expected network resources are available.

! Doctor found issues in 1 category.

Metadata

Metadata

Assignees

Labels

P2Important issues not at the top of the work liste: OS-version specificAffects only some versions of the relevant operating systemfound in release: 3.33Found to occur in 3.33from: manual-qaIssue caught from manual QA processhas reproducible stepsThe issue has been confirmed reproducible and is ready to work onp: url_launcherPlugin to launch external applicationspackageflutter/packages repository. See also p: labels.platform-iosiOS applications specificallyteam-iosOwned by iOS platform teamtriaged-iosTriaged by iOS platform team

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions