Skip to content

camera package throws when trying to use flashlight on web #191384

Closed
flutter/packages
#12647

Description

@JHubi1

What package does this bug report belong to?

camera

What target platforms are you seeing this bug on?

Web

Have you already upgraded your packages?

Yes

Dependency versions

pubspec.lock
# Generated by pub
# See https://dart.dev/tools/pub/glossary#lockfile
packages:
  async:
    dependency: transitive
    description:
      name: async
      sha256: e2eb0491ba5ddb6177742d2da23904574082139b07c1e33b8503b9f46f3e1a37
      url: "https://pub.dev"
    source: hosted
    version: "2.13.1"
  boolean_selector:
    dependency: transitive
    description:
      name: boolean_selector
      sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea"
      url: "https://pub.dev"
    source: hosted
    version: "2.1.2"
  camera:
    dependency: "direct main"
    description:
      name: camera
      sha256: "558230d6ce6ccea856b32d390db7e7b557adf4d9320aa614481bd3f2f608953f"
      url: "https://pub.dev"
    source: hosted
    version: "0.12.0+2"
  camera_android_camerax:
    dependency: transitive
    description:
      name: camera_android_camerax
      sha256: "6d8dd23f8ad52c36ae3da7417a59b3c3faa3d1e1b83c983a04ca8383f001233c"
      url: "https://pub.dev"
    source: hosted
    version: "0.7.4+5"
  camera_avfoundation:
    dependency: transitive
    description:
      name: camera_avfoundation
      sha256: "866e9cd8370f8055d005c0413937a52dc1d7a472687f0ee3ce02392955aababa"
      url: "https://pub.dev"
    source: hosted
    version: "0.10.2"
  camera_platform_interface:
    dependency: transitive
    description:
      name: camera_platform_interface
      sha256: "4524ca6eb4176b066864036ad4fe02c3e4863e63b77eadc21a5bf56824f43498"
      url: "https://pub.dev"
    source: hosted
    version: "2.13.1"
  camera_web:
    dependency: transitive
    description:
      name: camera_web
      sha256: "081441bd2f92b5841aa70ff4d6eddfe34078d97f9d085cc9e0f9d0102f145925"
      url: "https://pub.dev"
    source: hosted
    version: "0.3.5+5"
  characters:
    dependency: transitive
    description:
      name: characters
      sha256: faf38497bda5ead2a8c7615f4f7939df04333478bf32e4173fcb06d428b5716b
      url: "https://pub.dev"
    source: hosted
    version: "1.4.1"
  clock:
    dependency: transitive
    description:
      name: clock
      sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b
      url: "https://pub.dev"
    source: hosted
    version: "1.1.2"
  collection:
    dependency: transitive
    description:
      name: collection
      sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76"
      url: "https://pub.dev"
    source: hosted
    version: "1.19.1"
  cross_file:
    dependency: transitive
    description:
      name: cross_file
      sha256: "92c9c43c383bfa1c32079d3bc492d55d6d4318044b7b47edaff8971cbb555c51"
      url: "https://pub.dev"
    source: hosted
    version: "0.3.5+4"
  cupertino_icons:
    dependency: "direct main"
    description:
      name: cupertino_icons
      sha256: "41e005c33bd814be4d3096aff55b1908d419fde52ca656c8c47719ec745873cd"
      url: "https://pub.dev"
    source: hosted
    version: "1.0.9"
  fake_async:
    dependency: transitive
    description:
      name: fake_async
      sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44"
      url: "https://pub.dev"
    source: hosted
    version: "1.3.3"
  flutter:
    dependency: "direct main"
    description: flutter
    source: sdk
    version: "0.0.0"
  flutter_lints:
    dependency: "direct dev"
    description:
      name: flutter_lints
      sha256: "3105dc8492f6183fb076ccf1f351ac3d60564bff92e20bfc4af9cc1651f4e7e1"
      url: "https://pub.dev"
    source: hosted
    version: "6.0.0"
  flutter_plugin_android_lifecycle:
    dependency: transitive
    description:
      name: flutter_plugin_android_lifecycle
      sha256: "3854fe5e3bff0b113c658f260b90c95dea17c92db0f2addeac2e343dd9969785"
      url: "https://pub.dev"
    source: hosted
    version: "2.0.35"
  flutter_test:
    dependency: "direct dev"
    description: flutter
    source: sdk
    version: "0.0.0"
  flutter_web_plugins:
    dependency: transitive
    description: flutter
    source: sdk
    version: "0.0.0"
  leak_tracker:
    dependency: transitive
    description:
      name: leak_tracker
      sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de"
      url: "https://pub.dev"
    source: hosted
    version: "11.0.2"
  leak_tracker_flutter_testing:
    dependency: transitive
    description:
      name: leak_tracker_flutter_testing
      sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1"
      url: "https://pub.dev"
    source: hosted
    version: "3.0.10"
  leak_tracker_testing:
    dependency: transitive
    description:
      name: leak_tracker_testing
      sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1"
      url: "https://pub.dev"
    source: hosted
    version: "3.0.2"
  lints:
    dependency: transitive
    description:
      name: lints
      sha256: "12f842a479589fea194fe5c5a3095abc7be0c1f2ddfa9a0e76aed1dbd26a87df"
      url: "https://pub.dev"
    source: hosted
    version: "6.1.0"
  matcher:
    dependency: transitive
    description:
      name: matcher
      sha256: dc0b7dc7651697ea4ff3e69ef44b0407ea32c487a39fff6a4004fa585e901861
      url: "https://pub.dev"
    source: hosted
    version: "0.12.19"
  material_color_utilities:
    dependency: transitive
    description:
      name: material_color_utilities
      sha256: "9c337007e82b1889149c82ed242ed1cb24a66044e30979c44912381e9be4c48b"
      url: "https://pub.dev"
    source: hosted
    version: "0.13.0"
  meta:
    dependency: transitive
    description:
      name: meta
      sha256: "1741988757a65eb6b36abe716829688cf01910bbf91c34354ff7ec1c3de2b349"
      url: "https://pub.dev"
    source: hosted
    version: "1.18.0"
  path:
    dependency: transitive
    description:
      name: path
      sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5"
      url: "https://pub.dev"
    source: hosted
    version: "1.9.1"
  plugin_platform_interface:
    dependency: transitive
    description:
      name: plugin_platform_interface
      sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02"
      url: "https://pub.dev"
    source: hosted
    version: "2.1.8"
  sky_engine:
    dependency: transitive
    description: flutter
    source: sdk
    version: "0.0.0"
  source_span:
    dependency: transitive
    description:
      name: source_span
      sha256: "56a02f1f4cd1a2d96303c0144c93bd6d909eea6bee6bf5a0e0b685edbd4c47ab"
      url: "https://pub.dev"
    source: hosted
    version: "1.10.2"
  stack_trace:
    dependency: transitive
    description:
      name: stack_trace
      sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1"
      url: "https://pub.dev"
    source: hosted
    version: "1.12.1"
  stream_channel:
    dependency: transitive
    description:
      name: stream_channel
      sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d"
      url: "https://pub.dev"
    source: hosted
    version: "2.1.4"
  stream_transform:
    dependency: transitive
    description:
      name: stream_transform
      sha256: ad47125e588cfd37a9a7f86c7d6356dde8dfe89d071d293f80ca9e9273a33871
      url: "https://pub.dev"
    source: hosted
    version: "2.1.1"
  string_scanner:
    dependency: transitive
    description:
      name: string_scanner
      sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43"
      url: "https://pub.dev"
    source: hosted
    version: "1.4.1"
  term_glyph:
    dependency: transitive
    description:
      name: term_glyph
      sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e"
      url: "https://pub.dev"
    source: hosted
    version: "1.2.2"
  test_api:
    dependency: transitive
    description:
      name: test_api
      sha256: "949a932224383300f01be9221c39180316445ecb8e7547f70a41a35bf421fb9e"
      url: "https://pub.dev"
    source: hosted
    version: "0.7.11"
  vector_math:
    dependency: transitive
    description:
      name: vector_math
      sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b
      url: "https://pub.dev"
    source: hosted
    version: "2.2.0"
  vm_service:
    dependency: transitive
    description:
      name: vm_service
      sha256: "5f37239c4851efcef929cea7824e76df7f2f0970aef85d66bbc430afa40e72f0"
      url: "https://pub.dev"
    source: hosted
    version: "15.3.0"
  web:
    dependency: transitive
    description:
      name: web
      sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a"
      url: "https://pub.dev"
    source: hosted
    version: "1.1.1"
sdks:
  dart: ">=3.12.2 <4.0.0"
  flutter: ">=3.44.0"

Steps to reproduce

  1. Try to change the flash mode on web

Solution

After a bit of debugging, I figured line 337 in lib/src/camera.dart of the camera_web package contains the root cause of the issue, or rather is part of it.
The problem is that the NonStandardFieldsOnMediaTrackCapabilities extension assumes the torchNullable field to be a JSArray<JSBoolean>, but it actually, in the final JS code, is just a JSBoolean.

Meaning, the issue can be fixed by modifying both:

extension NonStandardFieldsOnMediaTrackCapabilities on MediaTrackCapabilities {
  // ...

  @JS('torch')
- external JSArray<JSBoolean>? get torchNullable;
+ external JSBoolean? get torchNullable;

  // ...
}

And:

void _setTorchMode({required bool enabled}) {
  // ...

  final bool canEnableTorchMode =
-     defaultVideoTrack.getCapabilities().torchNullable?.toDart.first.toDart ?? false;
+     defaultVideoTrack.getCapabilities().torchNullable?.toDart ?? false;

  // ...
}

Expected results

Should change the state of the flashlight.

Actual results

Throws an error: DartError: TypeError: true: type 'bool' is not a subtype of type 'JSArray<Object?>?

Code sample

Code sample
import 'package:camera/camera.dart';
import 'package:flutter/material.dart';

late List<CameraDescription> _cameras;

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();

  _cameras = await availableCameras();
  runApp(const CameraApp());
}

class CameraApp extends StatefulWidget {
  const CameraApp({super.key});

  @override
  State<CameraApp> createState() => _CameraAppState();
}

class _CameraAppState extends State<CameraApp> {
  int controllerIndex = 0;
  CameraController? controller;

  @override
  void initState() {
    super.initState();
    _initController();
  }

  void _initController() async {
    if (_cameras.isEmpty || !(controller?.value.isInitialized ?? true)) return;
    controller?.dispose();
    controller =
        CameraController(_cameras[controllerIndex], ResolutionPreset.max)
          ..initialize().then((_) {
            if (mounted) setState(() {});
          });
  }

  @override
  void dispose() {
    controller?.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: "Camera Web Flash Error Demo",
      home: Scaffold(
        appBar: AppBar(title: Text("Camera Web Flash Error Demo")),
        floatingActionButton: Column(
          spacing: 8,
          mainAxisSize: MainAxisSize.min,
          crossAxisAlignment: CrossAxisAlignment.end,
          children: [
            FloatingActionButton(
              onPressed: () {
                controllerIndex = (controllerIndex + 1) % _cameras.length;
                _initController();
              },
              child: Icon(Icons.flip_camera_android),
            ),
            FloatingActionButton.large(
              onPressed: () {
                controller?.setFlashMode(FlashMode.torch);
              },
              child: Icon(Icons.science),
            ),
          ],
        ),
        body: controller?.value.isInitialized ?? false
            ? SizedBox.expand(child: CameraPreview(controller!))
            : null,
      ),
    );
  }
}

I'm assuming that none of your development machines have a flashlight, so we'll have to access the flutter app on mobile. (The following is for android only.)

  1. flutter run -d web-server --web-port 8080 --web-hostname 0.0.0.0
  2. adb reverse tcp:8080 tcp:8080
    (So that the browser doesn't complain about insecure connection for camera access, we have to access the test app over localhost)
  3. http://localhost:8080 on device
  4. chrome://inspect/#devices on pc, wait a bit, click "inspect" next to "Camera Web Flash Error Demo" under the device name (more: https://developer.chrome.com/docs/devtools/remote-debugging)
  5. Do testing: Switch to a camera that should support a flash, then press the big test button. The mentioned error will be thrown and is visible in the console.
  6. adb reverse --remove tcp:8080

Screenshots or Videos

Screenshots / Video demonstration

Not applicable.

Logs

Logs
dart_sdk.js:3803 Uncaught (in promise) DartError: TypeError: true: type 'bool' is not a subtype of type 'JSArray<Object?>?'
    at Object.throw_ [as throw] (dart_sdk.js:3803:11)
    at dartDevEmbedder.defineLibrary.dart_rti.Rti.new._generalNullableAsCheckImplementation (dart_sdk.js:9825:15)
    at Object.getProperty (dart_sdk.js:72501:18)
    at [_setTorchMode] (camera_service.dart.lib.js:1327:64)
    at dartDevEmbedder.defineLibrary.camera.Camera.new.setFlashMode (camera_service.dart.lib.js:1319:26)
    at camera_web.dart.lib.js:934:98
    at dart_sdk.js:40935:13
    at dart_sdk.js:40945:7
    at Object._asyncStartSync (dart_sdk.js:40893:5)
    at dartDevEmbedder.defineLibrary.camera_web.CameraPlugin.new.setFlashMode (camera_web.dart.lib.js:951:20)
    at camera_preview.dart.lib.js:2099:136
    at dart_sdk.js:40935:13
    at dart_sdk.js:40945:7
    at Object._asyncStartSync (dart_sdk.js:40893:5)
    at dartDevEmbedder.defineLibrary.camera_controller.CameraController.new.setFlashMode (camera_preview.dart.lib.js:2133:20)
    at main.dart.lib.js:316:104
    at dartDevEmbedder.defineLibrary.ink_well._InkResponseState.new.handleTap (time.dart.lib.js:121498:34)
    at tear (dart_sdk.js:3848:46)
    at dartDevEmbedder.defineLibrary.tap.TapGestureRecognizer.new.invokeCallback (recognizer.dart.lib.js:459:18)
    at dartDevEmbedder.defineLibrary.tap.TapGestureRecognizer.new.handleTapUp (tap.dart.lib.js:824:20)
    at [_checkUp] (tap.dart.lib.js:526:12)
    at dartDevEmbedder.defineLibrary.tap.TapGestureRecognizer.new.handlePrimaryPointer (tap.dart.lib.js:471:23)
    at dartDevEmbedder.defineLibrary.tap.TapGestureRecognizer.new.handleEvent (recognizer.dart.lib.js:842:16)
    at tear (dart_sdk.js:3848:46)
    at [_dispatch] (pointer_router.dart.lib.js:122:9)
    at pointer_router.dart.lib.js:149:82
    at dartDevEmbedder.defineLibrary._js_helper.LinkedMap.new.forEach (dart_sdk.js:23589:9)
    at [_dispatchEventToRoutes] (pointer_router.dart.lib.js:146:29)
    at dartDevEmbedder.defineLibrary.pointer_router.PointerRouter.new.route (pointer_router.dart.lib.js:141:37)
    at dartDevEmbedder.defineLibrary.binding.WidgetsFlutterBinding.new.handleEvent (binding.dart.lib.js:617:26)
    at dartDevEmbedder.defineLibrary.binding.WidgetsFlutterBinding.new.dispatchEvent (binding.dart.lib.js:605:24)
    at dartDevEmbedder.defineLibrary.binding.WidgetsFlutterBinding.new.dispatchEvent (unique_widget.dart.lib.js:349528:13)
    at [_handlePointerEventImmediately] (binding.dart.lib.js:578:14)
    at dartDevEmbedder.defineLibrary.binding.WidgetsFlutterBinding.new.handlePointerEvent (binding.dart.lib.js:548:43)
    at [_flushPointerEventQueue] (binding.dart.lib.js:537:14)
    at [_handlePointerDataPacket] (binding.dart.lib.js:512:40)
    at tear (dart_sdk.js:3848:46)
    at Object.invoke1 (dart_sdk.js:247466:7)
    at dartDevEmbedder.defineLibrary._engine.EnginePlatformDispatcher.new.invokeOnPointerDataPacket (dart_sdk.js:210123:15)
    at [_sendToFramework] (dart_sdk.js:214581:49)
    at dartDevEmbedder.defineLibrary._engine.ClickDebouncer.new.onPointerData (dart_sdk.js:214481:31)
    at dartDevEmbedder.defineLibrary._engine._PointerAdapter.new.tear (dart_sdk.js:3848:46)
    at dart_sdk.js:215350:28
    at dart_sdk.js:215278:9
    at loggedHandler (dart_sdk.js:214807:11)
    at _RootZone.runUnary (dart_sdk.js:39509:59)
    at dart_sdk.js:39479:34
    at Object._callDartFunctionFast1 (dart_sdk.js:72355:14)
    at ret (dart_sdk.js:72273:22)
throw_ @ dart_sdk.js:3803
_generalNullableAsCheckImplementation @ dart_sdk.js:9825
getProperty @ dart_sdk.js:72501
[_setTorchMode] @ camera_service.dart.lib.js:1327
setFlashMode @ camera_service.dart.lib.js:1319
(anonym) @ camera_web.dart.lib.js:934
(anonym) @ dart_sdk.js:40935
(anonym) @ dart_sdk.js:40945
_asyncStartSync @ dart_sdk.js:40893
setFlashMode @ camera_web.dart.lib.js:951
(anonym) @ camera_preview.dart.lib.js:2099
(anonym) @ dart_sdk.js:40935
(anonym) @ dart_sdk.js:40945
_asyncStartSync @ dart_sdk.js:40893
setFlashMode @ camera_preview.dart.lib.js:2133
(anonym) @ main.dart.lib.js:316
handleTap @ time.dart.lib.js:121498
tear @ dart_sdk.js:3848
invokeCallback @ recognizer.dart.lib.js:459
handleTapUp @ tap.dart.lib.js:824
[_checkUp] @ tap.dart.lib.js:526
handlePrimaryPointer @ tap.dart.lib.js:471
handleEvent @ recognizer.dart.lib.js:842
tear @ dart_sdk.js:3848
[_dispatch] @ pointer_router.dart.lib.js:122
(anonym) @ pointer_router.dart.lib.js:149
forEach @ dart_sdk.js:23589
[_dispatchEventToRoutes] @ pointer_router.dart.lib.js:146
route @ pointer_router.dart.lib.js:141
handleEvent @ binding.dart.lib.js:617
dispatchEvent @ binding.dart.lib.js:605
dispatchEvent @ unique_widget.dart.lib.js:349528
[_handlePointerEventImmediately] @ binding.dart.lib.js:578
handlePointerEvent @ binding.dart.lib.js:548
[_flushPointerEventQueue] @ binding.dart.lib.js:537
[_handlePointerDataPacket] @ binding.dart.lib.js:512
tear @ dart_sdk.js:3848
invoke1 @ dart_sdk.js:247466
invokeOnPointerDataPacket @ dart_sdk.js:210123
[_sendToFramework] @ dart_sdk.js:214581
onPointerData @ dart_sdk.js:214481
tear @ dart_sdk.js:3848
(anonym) @ dart_sdk.js:215350
(anonym) @ dart_sdk.js:215278
loggedHandler @ dart_sdk.js:214807
runUnary @ dart_sdk.js:39509
(anonym) @ dart_sdk.js:39479
_callDartFunctionFast1 @ dart_sdk.js:72355
ret @ dart_sdk.js:72273

Flutter Doctor output

Doctor output
[√] Flutter (Channel stable, 3.44.7, on Microsoft Windows [Version 10.0.26200.9168], locale de-DE) [576ms]
    • Flutter version 3.44.7 on channel stable at C:\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 84fc5cbb22 (5 weeks ago), 2026-07-17 10:20:17 -0700
    • Engine revision 69c8c61792
    • Dart version 3.12.2
    • DevTools version 2.57.0
    • Feature flags: enable-web, enable-linux-desktop, no-enable-macos-desktop, enable-windows-desktop, enable-android,
      no-enable-ios, cli-animations, enable-native-assets, enable-swift-package-manager, omit-legacy-version-file,
      enable-lldb-debugging, enable-uiscene-migration

[√] Windows Version (Windows 11 or higher, 25H2, 2009) [1.275ms]

[√] Android toolchain - develop for Android devices (Android SDK version 36.0.0) [6,8s]
    • Android SDK at C:\Users\jakob\AppData\Local\Android\Sdk
    • Emulator version 34.2.16.0 (build_id 12038310) (CL:N/A)
    • Platform android-36, build-tools 36.0.0
    • Java binary at: C:\Program Files\Android\Android Studio\jbr\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 17.0.11+0--11852314)
    • All Android licenses accepted.

[√] Chrome - develop for the web [242ms]
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[√] Visual Studio - develop Windows apps (Visual Studio Community 2022 17.14.28) [241ms]
    • Visual Studio at C:\Program Files\Microsoft Visual Studio\2022\Community
    • Visual Studio Community 2022 version 17.14.37027.9
    • Windows 10 SDK version 10.0.26100.0

[√] Connected device (3 available) [420ms]
    • Pixel 9 Pro (mobile) • 192.168.178.62:42019 • android-arm64  • Android 17 (API 37)
    • Windows (desktop)    • windows              • windows-arm64  • Microsoft Windows [Version 10.0.26200.9168]
    • Chrome (web)         • chrome               • web-javascript • Google Chrome 151.0.7922.140

[√] Network resources [315ms]
    • All expected network resources are available.

• No issues found!

Activity

  1. saurabh-mirajkar commented on Aug 20, 2026

    @saurabh-mirajkar
    Contributor

    @JHubi1 Thanks for the report and the detailed investigation. I was able to reproduce the exception on the latest stable channel using the provided sample and steps. Labelling for further investigation.

    flutter --version
    Flutter 3.47.1 • channel stable • https://github.com/flutter/flutter.git
    Framework • revision 6655482ec0 (12 hours ago) • 2026-08-19 10:07:23 -0700
    Engine • hash 11d79658c444477b06513d32b52c8c4ccb7276b0 (revision 5d53178869) (26 hours ago) • 2026-08-18 23:36:01.000Z
    Tools • Dart 3.13.1 • DevTools 2.60.0
    
  2. added
    platform-webWeb applications specifically
    packageflutter/packages repository. See also p: labels.
    has reproducible stepsThe issue has been confirmed reproducible and is ready to work on
    fyi-ecosystemFor the attention of Ecosystem team
    team-webOwned by Web platform team
    and removed
    in triagePresently being triaged by the triage team
    on Aug 20, 2026
  3. added
    P2Important issues not at the top of the work list
    triaged-webTriaged by Web platform team
    on Aug 26, 2026
  4. 0xharkirat commented on Sep 3, 2026

    @0xharkirat
    Contributor

    The PR I linked is approved.
    waiting for it to be merged... 🚀

  5. 0xharkirat commented on Sep 8, 2026

    @0xharkirat
    Contributor

    Merged 🎉

    Always a pleasure to contribute and help take Flutter to the moon 🚀

    Especially from Australia, where the Flutter community is a bit smaller compared to the Americas, Europe, and India.

  6. github-actions commented on Sep 23, 2026

    @github-actions

    This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.

  7. locked as resolved and limited conversation to collaborators on Sep 23, 2026
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

    P2Important issues not at the top of the work listfound in release: 3.47Found to occur in 3.47has reproducible stepsThe issue has been confirmed reproducible and is ready to work onp: cameraThe camera pluginpackageflutter/packages repository. See also p: labels.platform-webWeb applications specificallyteam-webOwned by Web platform teamtriaged-webTriaged by Web platform team

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions