fluttercommunity / flutter_workmanager

A Flutter plugin which allows you to execute code in the background on Android and iOS.
825 stars 247 forks source link

PlatformException(channel-error, Unable to establish connection on channel., null, null) when starting Firebase.initializeApp from iOS background task #513

Open markalroberts opened 8 months ago

markalroberts commented 8 months ago

Version

Technology Version
Workmanager version 0.52
Xcode version 14.1
Swift version 5.7.1
iOS deployment target 16.x

Describe the error

I am trying to use WorkManager for a regular 15 minute background tasks to update the BadgeIcon number and show some local notifications. This works fine on Android. On iOS, when I simulate background refresh, I get this error at the point that Firebase.initializeApp is called at the start of Workmanager().executeTask- however it works fine when it's called in main.dart.

PlatformException(channel-error, Unable to establish connection on channel., null, null)

I have tried to find out what could be causing this and all searching points to a mismatch in versions of Firebase or dependant libraries. I have gone through the Flutter clean and update process but it has not helped.

Output of flutter doctor -v

Doctor summary (to see all details, run flutter doctor -v): [✓] Flutter (Channel stable, 3.13.6, on macOS 12.7 21G816 darwin-x64, locale en-GB) [✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0) [✓] Xcode - develop for iOS and macOS (Xcode 14.1) [✓] Chrome - develop for the web [✓] Android Studio (version 2022.2) [✓] VS Code (version 1.78.2) [✓] VS Code (version 1.78.2) [✓] Connected device (3 available) [✓] Network resources

• No issues found!

fechnologies-d commented 8 months ago

Any update on this?

I recommend using firebase REST API for now

ScottAtRedHawk commented 8 months ago

I'm running into this issue as well.

Doppelklick commented 8 months ago

// "I've had the same problem. But it was my mistake - I've used a not initialized firebase instance within the isolate ..." // edit: only worked for a short time

markalroberts commented 8 months ago

I've had the same problem. But it was my mistake - I've used a not initialized firebase instance within the isolate ...

When I initially made that mistake, it gave me a different error from this one. Definitely not the problem here.

joonne commented 1 month ago

Any update or solution on this one? I'm facing this issue at the moment when triggering the iOS background task from the Xcode debugger. I'm using the branch suggested in here:

workmanager:
  git:
    url: https://github.com/absar/flutter_workmanager.git
    ref: ios-bg-tasks-enh-final
joonne commented 1 month ago

This fixed the issue of initialising plugins inside the isolate:

https://github.com/fluttercommunity/flutter_workmanager/issues/521#issuecomment-2103959116