Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

java.lang.IllegalArgumentException: Unmanaged descriptor #414

Open
Psijic opened this issue Oct 1, 2023 · 21 comments
Open

java.lang.IllegalArgumentException: Unmanaged descriptor #414

Psijic opened this issue Oct 1, 2023 · 21 comments
Labels
triage me I really want to be triaged. type: bug Error or flaw in code with unintended results or allowing sub-optimal usage patterns.

Comments

@Psijic
Copy link

Psijic commented Oct 1, 2023

This bug wasn't solved.
Got it today. Just use a lot of markers in clustering - wait for them to start show on the map and then switch screens (navigate) before all of them became rendered.

 java.lang.IllegalArgumentException: Unmanaged descriptor
  at com.google.maps.api.android.lib6.common.m.b(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (190800-0):10)
  at com.google.maps.api.android.lib6.impl.w.c(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (190800-0):18)
  at com.google.maps.api.android.lib6.impl.cw.u(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (190800-0):11)
  at com.google.android.gms.maps.model.internal.p.bb(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (190800-0):347)
  at m.fi.onTransact(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (190800-0):21)
  at android.os.Binder.transact(Binder.java:1164)
  at com.google.android.gms.internal.maps.zza.zzc(com.google.android.gms:play-services-maps@@18.1.0:2)
  at com.google.android.gms.internal.maps.zzy.zzs(com.google.android.gms:play-services-maps@@18.1.0:3)
  at com.google.android.gms.maps.model.Marker.setIcon(com.google.android.gms:play-services-maps@@18.1.0:2)
  at com.google.maps.android.clustering.view.DefaultClusterRenderer.onClusterUpdated(DefaultClusterRenderer.java:937)
  at com.google.maps.android.clustering.view.DefaultClusterRenderer$CreateMarkerTask.perform(DefaultClusterRenderer.java:1053)
  at com.google.maps.android.clustering.view.DefaultClusterRenderer$CreateMarkerTask.access$2300(DefaultClusterRenderer.java:992)
  at com.google.maps.android.clustering.view.DefaultClusterRenderer$MarkerModifier.performNextTask(DefaultClusterRenderer.java:707)
  at com.google.maps.android.clustering.view.DefaultClusterRenderer$MarkerModifier.handleMessage(DefaultClusterRenderer.java:678)
  at android.os.Handler.dispatchMessage(Handler.java:106)
  at android.os.Looper.loopOnce(Looper.java:201)
  at android.os.Looper.loop(Looper.java:288)
  at android.app.ActivityThread.main(ActivityThread.java:7872)
  at java.lang.reflect.Method.invoke(Native Method)
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)

Code:

    val events by viewModel.eventsLocalDto.filtered.collectAsStateWithLifecycle()
    val selectedEvent by viewModel.selectedEvent.collectAsStateWithLifecycle()

    Clustering(
        items = events,
        onClusterItemClick = {
            Timber.v("Marker clicked: ${it.name}")
            viewModel.selectEvent(it)
            true
        },
    )

    if (selectedEvent is EventItem) (selectedEvent as EventItem).latLng.let {
        val selectedMarker = BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE)
        Marker(state = MarkerState(it), zIndex = 0.5f, icon = selectedMarker)
    }

selectedEvent wasn't even used here. So, all markers had default view and their count was: 32632.

@Psijic Psijic added triage me I really want to be triaged. type: bug Error or flaw in code with unintended results or allowing sub-optimal usage patterns. labels Oct 1, 2023
@milosfec
Copy link

milosfec commented Oct 5, 2023

I have the same issue and it's easy to reproduce. I have 200+ markers. By quickly tapping on the 200+ circle, map zooms in low res. Before it renders high res map and draw all markers, I navigate back to the previous screen. Within a second app crashes with the mentioned error.

@milosfec
Copy link

milosfec commented Oct 5, 2023

Just tested with the latest release 3.0.0 and the issue is still there.

@milosfec
Copy link

milosfec commented Oct 9, 2023

I found the cause of the crash in my case:

val cameraPositionState = rememberCameraPositionState()
GoogleMap(
    modifier = Modifier.fillMaxSize(),
    cameraPositionState = cameraPositionState,
) {
    Clustering(
        items = items,
        clusterItemContent = { mapDataClass ->
            ClusterItemContent(
                mapDataClass = mapDataClass,
                isCameraMoving = cameraPositionState.isMoving,
            )
        },
    )
}

Looks like cameraPositionState changes when the screen is already leaving composition. Without using cameraPositionState for clusterItemContent, the app won't crash.

I even found a workaround:
var isScreenClosing by remember { mutableStateOf(false) }
I set this boolean to true before navigating. Then I updated clusterItemContent:

clusterItemContent = { mapDataClass ->
    if (!isScreenClosing) {
        ClusterItemContent(
            mapDataClass = mapDataClass,
            isCameraMoving = cameraPositionState.isMoving,
        )
    }
},

With this I wasn't able to replicate the crash anymore.

Anyway, I'm not 100% confident with this workaround.
It doesn't cover scenarios when navigation changes outside of the screen with map.

Proper fix should be that this library shouldn't try to update marker icons while it's being released.

@Psijic
Copy link
Author

Psijic commented Oct 9, 2023

What is isScreenClosing? Some flag toggled in Disposable?

@milosfec
Copy link

milosfec commented Oct 9, 2023

@Psijic it's just a var I created that I'm setting to true before navigating out of the screen. That way I can prevent recomposition of clusterItemContent. It's not perfect, because when navigation is changed outside of the screen, then the screen has no idea and it can still crash. It's safer to prevent using cameraPositionState inside clusterItemContent...

I'm going to check the source code of DefaultClusterRenderer looking for a better solution.

@mosmb
Copy link
Contributor

mosmb commented Nov 6, 2023

Got this crash too.
I'm not using Cluster but simply MarkerComposable

@kikoso
Copy link
Collaborator

kikoso commented Nov 13, 2023

Hi folks,

The following PR might fix this issue. The Clustering was not being disposed, so probably with a large number of markers the process to deal with items in a cluster could be somehow taking longer, and by the time an item is going to be updated the map does not longer exist. I will let you know when it is merged and maybe you folks can take a look.

#458

@0xffrom
Copy link

0xffrom commented Nov 23, 2023

Same problem, appeared when upgrading from 2.14.0 to 4.1.1. I only use markers without clustering.

  1. com.google.maps.android:maps-compose: 4.1.1
  2. com.google.android.gms:play-services-maps: 18.2.0
  3. com.google.android.gms:play-services-base: 18.2.0
Fatal Exception: java.lang.IllegalArgumentException
Unmanaged descriptor

com.google.maps.api.android.lib6.common.p.a (:com.google.android.gms.policy_maps_core_dynamite@[email protected]:10)
com.google.maps.api.android.lib6.impl.ab.a (:com.google.android.gms.policy_maps_core_dynamite@[email protected]:17)
com.google.maps.api.android.lib6.impl.el.V (:com.google.android.gms.policy_maps_core_dynamite@[email protected]:6)
com.google.maps.api.android.lib6.phoenix.bj.v (:com.google.android.gms.policy_maps_core_dynamite@[email protected]:7)
com.google.maps.api.android.lib6.phoenix.bj.h (:com.google.android.gms.policy_maps_core_dynamite@[email protected]:153)
com.google.maps.api.android.lib6.impl.es.run (:com.google.android.gms.policy_maps_core_dynamite@[email protected]:54)
android.os.Handler.handleCallback (Handler.java:971)
android.os.Handler.dispatchMessage (Handler.java:107)
android.os.Looper.loopOnce (Looper.java:206)
android.os.Looper.loop (Looper.java:296)
android.app.ActivityThread.main (ActivityThread.java:9159)
java.lang.reflect.Method.invoke (Method.java)
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:591)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1018) 

@0xffrom
Copy link

0xffrom commented Nov 23, 2023

@kikoso, hi! Has the problem been fixed in 4.3.0?

@kikoso
Copy link
Collaborator

kikoso commented Nov 27, 2023

Hi @0xffrom .

The latest version (4.3.0) includes a fix that disposes of clusters, which was not happening in previous versions.

If you aren't using Clustering, this is likely another issue. Could you provide another code snippet with the relevant code block? (for instance, the region where you are adding the Marker to the Map).

@milosfec
Copy link

@kikoso I've retested with version 4.3.0 and I wasn't able to reproduce the crash. I believe the clustering issue is now gone, thank you!

@kikoso
Copy link
Collaborator

kikoso commented Nov 28, 2023

Thanks for letting us know, @milosfec !

@wangela
Copy link
Member

wangela commented Dec 1, 2023

Closing this as fixed by #458 in v4.3.0. Please re-open if it recurs in v4.3.0 or later.

@wangela wangela closed this as completed Dec 1, 2023
@bigmeco
Copy link

bigmeco commented Dec 22, 2023

Hello, I am facing this problem on version v4.3.0, when the number of markers in the cluster exceeds 100 elements

android.net.ConnectivityManager$TooManyRequestsException
at android.net.ConnectivityManager.convertServiceException(ConnectivityManager.java:4165)
at android.net.ConnectivityManager.sendRequestForNetwork(ConnectivityManager.java:4357)
at android.net.ConnectivityManager.sendRequestForNetwork(ConnectivityManager.java:4364)
at android.net.ConnectivityManager.registerNetworkCallback(ConnectivityManager.java:4746)
at android.net.ConnectivityManager.registerNetworkCallback(ConnectivityManager.java:4716)
at m.fbc.h(:com.google.android.gms.policy_maps_core_dynamite@[email protected]:41)
at m.fbc.<init>(:com.google.android.gms.policy_maps_core_dynamite@[email protected]:140)
at com.google.maps.api.android.lib6.impl.hz.<init>(:com.google.android.gms.policy_maps_core_dynamite@[email protected]:7)
at com.google.android.gms.maps.internal.CreatorImpl.c(:com.google.android.gms.policy_maps_core_dynamite@[email protected]:1157)
at com.google.android.gms.maps.internal.CreatorImpl.logInitialization(:com.google.android.gms.policy_maps_core_dynamite@[email protected]:16)
at com.google.android.gms.maps.internal.i.bp(:com.google.android.gms.policy_maps_core_dynamite@[email protected]:75)
at m.bcb.onTransact(:com.google.android.gms.policy_maps_core_dynamite@[email protected]:21)
at android.os.Binder.transact(Binder.java:1188)
at com.google.android.gms.internal.maps.zza.zzc(com.google.android.gms:play-services-maps@@18.2.0:2)
at com.google.android.gms.maps.internal.zze.zzl(com.google.android.gms:play-services-maps@@18.2.0:4)
at com.google.android.gms.maps.MapsInitializer.initialize(com.google.android.gms:play-services-maps@@18.2.0:12)
at com.google.android.gms.maps.MapsInitializer.initialize(com.google.android.gms:play-services-maps@@18.2.0:1)
at com.google.android.gms.maps.zzai.zzb(com.google.android.gms:play-services-maps@@18.2.0:2)
at com.google.android.gms.maps.zzai.createDelegate(com.google.android.gms:play-services-maps@@18.2.0:1)
at com.google.android.gms.dynamic.DeferredLifecycleHelper.zaf(com.google.android.gms:play-services-base@@18.1.0:6)
at com.google.android.gms.dynamic.DeferredLifecycleHelper.onCreate(com.google.android.gms:play-services-base@@18.1.0:1)
at com.google.android.gms.maps.MapView.onCreate(com.google.android.gms:play-services-maps@@18.2.0:4)
at com.google.maps.android.compose.GoogleMapKt.lifecycleObserver$lambda$11(GoogleMap.kt:207)
at com.google.maps.android.compose.GoogleMapKt.$r8$lambda$Vm6abttjyrD0BNPAw0a-nOgtk1E(Unknown Source:0)
at com.google.maps.android.compose.GoogleMapKt$$ExternalSyntheticLambda0.onStateChanged(Unknown Source:4)
at androidx.lifecycle.LifecycleRegistry$ObserverWithState.dispatchEvent(LifecycleRegistry.kt:314)
at androidx.lifecycle.LifecycleRegistry.addObserver(LifecycleRegistry.kt:192)
at com.google.maps.android.compose.GoogleMapKt$MapLifecycle$1.invoke(GoogleMap.kt:182)
at com.google.maps.android.compose.GoogleMapKt$MapLifecycle$1.invoke(GoogleMap.kt:178)
at androidx.compose.runtime.DisposableEffectImpl.onRemembered(Effects.kt:82)
at androidx.compose.runtime.CompositionImpl$RememberEventDispatcher.dispatchRememberObservers(Composition.kt:1137)
at androidx.compose.runtime.CompositionImpl.applyChangesInLocked(Composition.kt:828)
at androidx.compose.runtime.CompositionImpl.applyChanges(Composition.kt:849)
at androidx.compose.runtime.Recomposer.composeInitial$runtime_release(Recomposer.kt:1041)
at androidx.compose.runtime.ComposerImpl$CompositionContextImpl.composeInitial$runtime_release(Composer.kt:4007)
at androidx.compose.runtime.ComposerImpl$CompositionContextImpl.composeInitial$runtime_release(Composer.kt:4007)
at androidx.compose.runtime.CompositionImpl.setContent(Composition.kt:520)

@hanna-h
Copy link

hanna-h commented Jan 22, 2024

Hi @wangela ,

Firebase Analytics indicates that this issue is still happening in the newest release of our app, which uses version 4.3.0.

Fatal Exception: java.lang.IllegalArgumentException: Unmanaged descriptor
       at com.google.maps.api.android.lib6.common.m.b(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (190400-0):10)
       at com.google.maps.api.android.lib6.impl.w.c(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (190400-0):18)
       at com.google.maps.api.android.lib6.impl.cw.u(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (190400-0):11)
       at com.google.android.gms.maps.model.internal.r.bb(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (190400-0):347)
       at m.ee.onTransact(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (190400-0):21)
       at android.os.Binder.transact(Binder.java:1173)
       at com.google.android.gms.internal.maps.zza.zzc(com.google.android.gms:play-services-maps@@18.2.0:2)
       at com.google.android.gms.internal.maps.zzab.zzt(com.google.android.gms:play-services-maps@@18.2.0:3)
       at com.google.android.gms.maps.model.Marker.setIcon(com.google.android.gms:play-services-maps@@18.2.0:2)
       at com.google.maps.android.clustering.view.DefaultClusterRenderer.onClusterUpdated(DefaultClusterRenderer.java:972)
       at com.google.maps.android.clustering.view.DefaultClusterRenderer$CreateMarkerTask.perform(DefaultClusterRenderer.java:1091)
       at com.google.maps.android.clustering.view.DefaultClusterRenderer$CreateMarkerTask.access$1900(DefaultClusterRenderer.java:1027)
       at com.google.maps.android.clustering.view.DefaultClusterRenderer$MarkerModifier.performNextTask(DefaultClusterRenderer.java:738)
       at com.google.maps.android.clustering.view.DefaultClusterRenderer$MarkerModifier.handleMessage(DefaultClusterRenderer.java:710)
       at android.os.Handler.dispatchMessage(Handler.java:111)
       at android.os.Looper.loopOnce(Looper.java:238)
       at android.os.Looper.loop(Looper.java:357)
       at android.app.ActivityThread.main(ActivityThread.java:8194)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:957)

@fngbala-luna
Copy link

Hi everyone, I am also facing the issue with the 4.3.0
I never managed to reproduce it during development, however, our users experience it.

Fatal Exception: android.net.ConnectivityManager$TooManyRequestsException:
       at android.net.ConnectivityManager.convertServiceException(ConnectivityManager.java:4165)
       at android.net.ConnectivityManager.sendRequestForNetwork(ConnectivityManager.java:4357)
       at android.net.ConnectivityManager.sendRequestForNetwork(ConnectivityManager.java:4364)
       at android.net.ConnectivityManager.registerNetworkCallback(ConnectivityManager.java:4746)
       at android.net.ConnectivityManager.registerNetworkCallback(ConnectivityManager.java:4716)
       at m.fbc.h(:com.google.android.gms.policy_maps_core_dynamite@[email protected]:41)
       at m.fbc.e(:com.google.android.gms.policy_maps_core_dynamite@[email protected]:1)
       at com.google.maps.api.android.lib6.impl.p.b(:com.google.android.gms.policy_maps_core_dynamite@[email protected]:27)
       at com.google.maps.api.android.lib6.impl.cm.aY(:com.google.android.gms.policy_maps_core_dynamite@[email protected]:3)
       at com.google.maps.api.android.lib6.impl.cm.D(:com.google.android.gms.policy_maps_core_dynamite@[email protected]:32)
       at com.google.maps.api.android.lib6.impl.eh.l(:com.google.android.gms.policy_maps_core_dynamite@[email protected]:3)
       at com.google.android.gms.maps.internal.s.bp(:com.google.android.gms.policy_maps_core_dynamite@[email protected]:14)
       at m.bcb.onTransact(:com.google.android.gms.policy_maps_core_dynamite@[email protected]:21)
       at android.os.Binder.transact(Binder.java:1188)
       at com.google.android.gms.internal.maps.zza.zzc(zza.java:2)
       at com.google.android.gms.maps.internal.zzl.onStart(zzl.java:2)
       at com.google.android.gms.maps.zzah.onStart(com.google.android.gms:play-services-maps@@18.2.0:1)
       at com.google.android.gms.dynamic.zaf.zab(com.google.android.gms:play-services-base@@18.3.0:1)
       at com.google.android.gms.dynamic.DeferredLifecycleHelper.zaf(com.google.android.gms:play-services-base@@18.3.0:1)
       at com.google.android.gms.dynamic.DeferredLifecycleHelper.onStart(DeferredLifecycleHelper.java:1)
       at com.google.android.gms.maps.MapView.onStart(MapView.java:1)
       at com.google.maps.android.compose.GoogleMapKt.lifecycleObserver$lambda$11(GoogleMap.kt:211)
       at androidx.lifecycle.LifecycleRegistry$ObserverWithState.dispatchEvent(LifecycleRegistry.kt:322)
       at androidx.lifecycle.LifecycleRegistry.addObserver(LifecycleRegistry.kt:199)
       at com.google.maps.android.compose.GoogleMapKt$MapLifecycle$1.invoke(GoogleMap.kt:182)
       at com.google.maps.android.compose.GoogleMapKt$MapLifecycle$1.invoke(GoogleMap.kt:178)
       at androidx.compose.runtime.DisposableEffectImpl.onRemembered(Effects.kt:82)
       at androidx.compose.runtime.CompositionImpl$RememberEventDispatcher.dispatchRememberObservers(Composition.kt:1137)
       at androidx.compose.runtime.CompositionImpl.applyChangesInLocked(Composition.kt:828)
       at androidx.compose.runtime.CompositionImpl.applyChanges(Composition.kt:849)
       at androidx.compose.runtime.Recomposer.composeInitial$runtime_release(Recomposer.kt:1041)
       at androidx.compose.runtime.ComposerImpl$CompositionContextImpl.composeInitial$runtime_release(Composer.kt:4007)
       at androidx.compose.runtime.ComposerImpl$CompositionContextImpl.composeInitial$runtime_release(Composer.kt:4007)
       at androidx.compose.runtime.CompositionImpl.setContent(Composition.kt:520)
       at androidx.compose.ui.layout.LayoutNodeSubcompositionsState.subcomposeInto(SubcomposeLayout.kt:721)
       at androidx.compose.ui.layout.LayoutNodeSubcompositionsState.subcompose(SubcomposeLayout.kt:694)
       at androidx.compose.ui.layout.LayoutNodeSubcompositionsState.subcompose(SubcomposeLayout.kt:685)
       at androidx.compose.ui.layout.LayoutNodeSubcompositionsState.subcompose(SubcomposeLayout.kt:669)
       at androidx.compose.ui.layout.LayoutNodeSubcompositionsState$Scope.subcompose(SubcomposeLayout.kt:1014)
       at androidx.compose.material3.BottomSheetScaffoldKt$BottomSheetScaffoldLayout$1$1.invoke-0kLqBqw(BottomSheetScaffold.kt:347)
       at androidx.compose.material3.BottomSheetScaffoldKt$BottomSheetScaffoldLayout$1$1.invoke(BottomSheetScaffold.kt:329)
       at androidx.compose.ui.layout.LayoutNodeSubcompositionsState$createMeasurePolicy$1.measure-3p2s80s(SubcomposeLayout.kt:866)
       at androidx.compose.ui.node.InnerNodeCoordinator.measure-BRTryo0(InnerNodeCoordinator.kt:126)
       at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasure$2.invoke(LayoutNodeLayoutDelegate.kt:1499)
       at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasure$2.invoke(LayoutNodeLayoutDelegate.kt:1495)
       at androidx.compose.runtime.snapshots.Snapshot.enter(Snapshot.java:131)
       at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:476)
       at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:467)
       at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:230)
       at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:133)
       at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:113)
       at androidx.compose.ui.node.LayoutNodeLayoutDelegate.performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:1495)
       at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$getNextChildLookaheadPlaceOrder$p(LayoutNodeLayoutDelegate.kt)
       at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt)
       at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.remeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:560)
       at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.measure-BRTryo0(LayoutNodeLayoutDelegate.kt:539)
       at androidx.compose.foundation.layout.BoxKt$boxMeasurePolicy$1.measure-3p2s80s(Box.kt:114)
       at androidx.compose.ui.node.InnerNodeCoordinator.measure-BRTryo0(InnerNodeCoordinator.kt:126)
       at androidx.compose.foundation.layout.FillNode.measure-3p2s80s(Size.kt:698)
       at androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0(LayoutModifierNodeCoordinator.kt:116)
       at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasure$2.invoke(LayoutNodeLayoutDelegate.kt:1499)
       at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasure$2.invoke(LayoutNodeLayoutDelegate.kt:1495)
       at androidx.compose.runtime.snapshots.Snapshot.enter(Snapshot.java:131)
       at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:476)
       at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:467)
       at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:230)
       at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:133)
       at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:113)
       at androidx.compose.ui.node.LayoutNodeLayoutDelegate.performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:1495)
       at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$getNextChildLookaheadPlaceOrder$p(LayoutNodeLayoutDelegate.kt)
       at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt)
       at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.remeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:560)
       at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.measure-BRTryo0(LayoutNodeLayoutDelegate.kt:539)
       at androidx.compose.animation.AnimatedEnterExitMeasurePolicy.measure-3p2s80s(AnimatedVisibility.kt:795)
       at androidx.compose.ui.node.InnerNodeCoordinator.measure-BRTryo0(InnerNodeCoordinator.kt:126)
       at androidx.compose.ui.graphics.BlockGraphicsLayerModifier.measure-3p2s80s(GraphicsLayerModifier.kt:578)
       at androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0(LayoutModifierNodeCoordinator.kt:116)
       at androidx.compose.animation.AnimatedContentKt$AnimatedContent$6$1$1.invoke-3p2s80s(AnimatedContent.kt:763)
       at androidx.compose.animation.AnimatedContentKt$AnimatedContent$6$1$1.invoke(AnimatedContent.kt:762)
       at androidx.compose.ui.layout.LayoutModifierImpl.measure-3p2s80s(LayoutModifier.kt:291)
       at androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0(LayoutModifierNodeCoordinator.kt:116)
       at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasure$2.invoke(LayoutNodeLayoutDelegate.kt:1499)
       at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasure$2.invoke(LayoutNodeLayoutDelegate.kt:1495)
       at androidx.compose.runtime.snapshots.Snapshot.enter(Snapshot.java:131)
       at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:476)
       at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:467)
       at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:230)
       at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:133)
       at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:113)
       at androidx.compose.ui.node.LayoutNodeLayoutDelegate.performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:1495)
       at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$getNextChildLookaheadPlaceOrder$p(LayoutNodeLayoutDelegate.kt)
       at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt)
       at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.remeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:560)
       at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.measure-BRTryo0(LayoutNodeLayoutDelegate.kt:539)
       at androidx.compose.animation.AnimatedContentMeasurePolicy.measure-3p2s80s(AnimatedContent.kt:814)
       at androidx.compose.ui.node.InnerNodeCoordinator.measure-BRTryo0(InnerNodeCoordinator.kt:126)
       at androidx.compose.animation.AnimatedContentTransitionScopeImpl$SizeModifier.measure-3p2s80s(AnimatedContent.kt:598)
       at androidx.compose.ui.node.BackwardsCompatNode.measure-3p2s80s(BackwardsCompatNode.kt:311)
       at androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0(LayoutModifierNodeCoordinator.kt:116)
       at androidx.compose.ui.graphics.SimpleGraphicsLayerModifier.measure-3p2s80s(GraphicsLayerModifier.kt:646)
       at androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0(LayoutModifierNodeCoordinator.kt:116)
       at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasure$2.invoke(LayoutNodeLayoutDelegate.kt:1499)
       at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasure$2.invoke(LayoutNodeLayoutDelegate.kt:1495)
       at androidx.compose.runtime.snapshots.Snapshot.enter(Snapshot.java:131)
       at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:476)
       at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:467)
       at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:230)
       at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:133)
       at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:113)
       at androidx.compose.ui.node.LayoutNodeLayoutDelegate.performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:1495)
       at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$getNextChildLookaheadPlaceOrder$p(LayoutNodeLayoutDelegate.kt)
       at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt)
       at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.remeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:560)
       at androidx.compose.ui.node.LayoutNode.remeasure-_Sx5XlM$ui_release(LayoutNode.kt:1140)
       at androidx.compose.ui.node.LayoutNode.remeasure-_Sx5XlM$ui_release$default(LayoutNode.kt:1131)
       at androidx.compose.ui.node.MeasureAndLayoutDelegate.doRemeasure-sdFAvZA(MeasureAndLayoutDelegate.kt:323)
       at androidx.compose.ui.node.MeasureAndLayoutDelegate.remeasureAndRelayoutIfNeeded(MeasureAndLayoutDelegate.kt:458)
       at androidx.compose.ui.node.MeasureAndLayoutDelegate.access$getRoot$p(MeasureAndLayoutDelegate.kt)
       at androidx.compose.ui.node.MeasureAndLayoutDelegate.access$remeasureAndRelayoutIfNeeded(MeasureAndLayoutDelegate.kt)
       at androidx.compose.ui.node.MeasureAndLayoutDelegate.measureAndLayout(MeasureAndLayoutDelegate.kt:344)
       at androidx.compose.ui.platform.AndroidComposeView.measureAndLayout(AndroidComposeView.android.kt:879)
       at androidx.compose.ui.node.Owner.measureAndLayout$default(Owner.kt:223)
       at androidx.compose.ui.platform.AndroidComposeView.dispatchDraw(AndroidComposeView.android.kt:1127)
       at android.view.View.draw(View.java:23469)
       at android.view.View.updateDisplayListIfDirty(View.java:22297)
       at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4595)
       at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4568)
       at android.view.View.updateDisplayListIfDirty(View.java:22248)
       at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4595)
       at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4568)
       at android.view.View.updateDisplayListIfDirty(View.java:22248)
       at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4595)
       at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4568)
       at android.view.View.updateDisplayListIfDirty(View.java:22248)
       at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4595)
       at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4568)
       at android.view.View.updateDisplayListIfDirty(View.java:22248)
       at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:682)
       at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:688)
       at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:790)
       at android.view.ViewRootImpl.draw(ViewRootImpl.java:4898)
       at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:4593)
       at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3759)
       at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2453)
       at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:9468)
       at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1405)
       at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1413)
       at android.view.Choreographer.doCallbacks(Choreographer.java:1040)
       at android.view.Choreographer.doFrame(Choreographer.java:930)
       at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1388)
       at android.os.Handler.handleCallback(Handler.java:942)
       at android.os.Handler.dispatchMessage(Handler.java:99)
       at android.os.Looper.loopOnce(Looper.java:240)
       at android.os.Looper.loop(Looper.java:351)
       at android.app.ActivityThread.main(ActivityThread.java:8423)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:584)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1013)

@adilovmaksat
Copy link

we need to reopen issue , if it still exists in current versions

@hanna-h
Copy link

hanna-h commented Jun 12, 2024

Any update on this? Can this ticket be reopened please? It blocks us from using the Compose map in our app.

@kociubin
Copy link

I'm also having the issue with a large number of markers on the screen.

@Musfick
Copy link

Musfick commented Nov 11, 2024

I am also facing the same issue

@kikoso
Copy link
Collaborator

kikoso commented Nov 11, 2024

Reopening this issue to further investigate it.

Do you folks have any code snippet we can use to reproduce it?

@kikoso kikoso reopened this Nov 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
triage me I really want to be triaged. type: bug Error or flaw in code with unintended results or allowing sub-optimal usage patterns.
Projects
None yet
Development

No branches or pull requests