Skip to content

[Bug] Regression in 9.3.0: GoogleMapsOverlay interleaved mode - "Cannot read properties of undefined (reading 'map')" in beginRenderPass #10224

@patrykbudnicki-cs

Description

@patrykbudnicki-cs

Description

After upgrading from @deck.gl/@9.2.11 to @deck.gl/@9.3.0, GoogleMapsOverlay with interleaved: true throws an uncaught TypeError on every render cycle. This is the same error that was reported and fixed in #9426 (v9.1.0 → fixed in v9.1.3), now reintroduced in v9.3.0.

The error breaks the deck.gl render pipeline, causing layers to stop updating. In our case, a BitmapLayer used for weather radar animation gets stuck on the first rendered frame — scrubbing the timeline no longer changes the displayed image. A PolygonLayer on a different page is also affected.
Setting interleaved: false eliminates the error entirely, but we need interleaved mode to render deck.gl layers beneath Google Maps labels.

This is not layer-specific - we reproduce it with BitmapLayer, PathLayer, and PolygonLayer.
Suspected cause

The v9.3.0 release includes a significant refactoring of the Google Maps overlay internals (PR #9992 — "Robust DOM positioning when interleaved: false"), which restructured the vector map overlay setup into a dual positioning overlay + WebGL overlay and renamed _onDrawVectorInterleaved to _onDrawVector. This refactoring likely reintroduced the framebuffer issue where framebuffer.colorAttachments is undefined when beginRenderPass is called.

### Actual Behavior
Uncaught TypeError on every render cycle
Layers render once but stop responding to setProps updates
Animation/timeline-driven layer updates are completely broken

Workaround
Downgrade to @deck.gl/@9.2.11 (with @luma.gl/@9.2.6). The error does not occur on v9.2.11.

Flavors

  • Script tag
  • React
  • Python/Jupyter notebook
  • MapboxOverlay
  • GoogleMapsOverlay
  • CARTO
  • ArcGIS

Expected Behavior

No error in the console. Layers should render and update normally in interleaved mode, as they do in v9.2.11.

Steps to Reproduce

  1. Install @deck.gl/core@9.3.0, @deck.gl/google-maps@9.3.0, @deck.gl/layers@9.3.0
  2. Create a GoogleMapsOverlay with interleaved: true
  3. Add any layer (e.g. BitmapLayer, PolygonLayer)
  4. Call overlay.setMap(map) on a Google Maps vector map (requires a mapId)
  5. Observe the error in the console
  6. Try calling overlay.setProps({ layers: [...] }) to update layers — updates are ignored

Environment

Broken: @deck.gl/@9.3.0 + @luma.gl/@9.3.2
Working: @deck.gl/@9.2.11 + @luma.gl/@9.2.6
Google Maps wrapper: @vis.gl/react-google-maps@1.7.1 (also tested with 1.8.3)
Browser: Chrome (latest), also reproducible in Firefox
OS: macOS
Framework: Next.js with React 19

Logs

Uncaught TypeError: Cannot read properties of undefined (reading 'map')
at new WEBGLRenderPass (webgl-render-pass.ts:45)
at WebGLDevice.beginRenderPass (webgl-device.ts:308)
at DrawLayersPass.render (layers-pass.ts:86)
at DeckRenderer.renderLayers (deck-renderer.ts:90)
at Deck._drawLayers (deck.ts:1060)
at GoogleMapsOverlay._onDrawVector (google-maps-overlay.ts:~289)
at withGLParameters (with-parameters.ts:37)
at WebGLDevice.withParametersWebGL (webgl-device.ts:385)
at GoogleMapsOverlay._onDrawVector (google-maps-overlay.ts:~288)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions