visgl / visgl/deck.gl

[Bug] Tilelayer shows on map but then throws 404

Open
#9,751 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
TypeScript
Stars
14.6k
Forks
2.3k
Avg merge
2d 9h
Merged PRs (30d)
42

Description

Description

I m using titiler as the backend raster server to show my COG file as tilelayer. It works but for some reason after some movements on map such as zoom in/out, the layer throws an error that is not interceptable by onTileError() and the layer just disappears and console errors:

deck: matching of BitmapLayer({id: '29aae48a-6ab1-4f5f-a1c7-64681c0a252e-406-876-11'}): Cannot read properties of null (reading 'constructor') TypeError: Cannot read properties of null (reading 'constructor')
    at e2 (1634-aa493412be2b7df6.js:1788:11431)
    at Object.transform (1634-aa493412be2b7df6.js:1788:12767)
    at ty._postProcessValue (1634-aa493412be2b7df6.js:1788:19030)
    at ty._setPropValue (1634-aa493412be2b7df6.js:1788:17928)
    at ty._updateAsyncProp (1634-aa493412be2b7df6.js:1788:17484)
    at ty.setAsyncProps (1634-aa493412be2b7df6.js:1788:17064)
    at _._transferState (1634-aa493412be2b7df6.js:1788:30315)
    at C._transferLayerState (1634-aa493412be2b7df6.js:959:5945)
    at C._updateSublayersRecursively (1634-aa493412be2b7df6.js:959:5516)
    at C._updateSublayersRecursively (1634-aa493412be2b7df6.js:959:5687)

Checked titiler log which shows no error too.

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

Tilelayer should by right not throw any error.

Steps to Reproduce

create the same layer:

                     const newLayer = new TileLayer({
                        id: layer.id,
                        data: rasterData[layer.id].titiler_url,
                        minZoom: style.minZoom,
                        maxZoom: style.maxZoom,
                        tileSize: 256,
                        renderSubLayers: (props) => {
                            const { boundingBox } = props.tile;
                            const { data, ...otherProps } = props;

                            return new BitmapLayer(otherProps, {
                                image: data,
                                bounds: [
                                    boundingBox[0][0],
                                    boundingBox[0][1],
                                    boundingBox[1][0],
                                    boundingBox[1][1],
                                ],
                            });
                        },
                        pickable: true,
Environment
  • Framework version:
    "deck.gl": "^9.1.14",
  • Browser: Arc
  • OS: MacOS
Logs

Frontend console inspector:

GET https://[titiler-placeholder]/cog/tiles/WebMercatorQuad/11/410/874.png?url=gs%3A%2F%2F[bucket-placeholder/filename-placeholder].tif&bidx=1&bidx=2&bidx=3&rescale=0.0012565188808366656%2C0.07527454197406769&rescale=0.0031383985187858343%2C0.05404285341501236&rescale=0.001756515121087432%2C0.05037085339426994 404 (Not Found)
fetchFile @ fetch-file.js:34
(anonymous) @ get-fetch-function.js:21
load @ load.js:29
value @ layer.ts:122
getTileData @ tile-layer.ts:329
_loadData @ tile-2d-header.ts:137
await in _loadData
loadData @ tile-2d-header.ts:174
_getTile @ tileset-2d.ts:526
(anonymous) @ tileset-2d.ts:264
update @ tileset-2d.ts:264
_updateTileset @ tile-layer.ts:270
updateState @ tile-layer.ts:231
_update @ layer.ts:990
_updateLayer @ layer-manager.ts:383
_updateSublayersRecursively @ layer-manager.ts:329
_updateLayers @ layer-manager.ts:281
setLayers @ layer-manager.ts:202
updateLayers @ layer-manager.ts:214
_onRenderFrame @ deck.ts:1102
_renderFrame @ animation-loop.ts:362
redraw @ animation-loop.ts:236
_animationFrame @ animation-loop.ts:348
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
tile-layer.ts:41 FetchError: Failed to fetch resource (404) : https://planetgpt-titiler-589807...037085339426994
    at getResponseError (response-utils.js:90:12)
    at async checkResponse (response-utils.js:54:23)
    at async getArrayBufferOrStringFromData (get-data.js:58:9)
    at async parseWithLoader (parse.js:65:12)
    at async parse (parse.js:50:12)
    at async load (load.js:40:11)
    at async Tile2DHeader._loadData (tile-2d-header.ts:137:18)

and

layer.ts:122  GET https://[titiler-placeholder]/cog/tiles/WebMercatorQuad/11/410/874.png?url=gs%3A%2F%2F[bucket-placeholder/filename-placeholder].tif&bidx=1&bidx=2&bidx=3&rescale=0.0012565188808366656%2C0.07527454197406769&rescale=0.0031383985187858343%2C0.05404285341501236&rescale=0.001756515121087432%2C0.05037085339426994 404 (Not Found)
fetchFile @ fetch-file.js:34
(anonymous) @ get-fetch-function.js:21
load @ load.js:29
value @ layer.ts:122
getTileData @ tile-layer.ts:329
_loadData @ tile-2d-header.ts:137
await in _loadData
loadData @ tile-2d-header.ts:174
_getTile @ tileset-2d.ts:526
(anonymous) @ tileset-2d.ts:264
update @ tileset-2d.ts:264
_updateTileset @ tile-layer.ts:270
updateState @ tile-layer.ts:231
_update @ layer.ts:990
_updateLayer @ layer-manager.ts:383
_updateSublayersRecursively @ layer-manager.ts:329
_updateLayers @ layer-manager.ts:281
setLayers @ layer-manager.ts:202
updateLayers @ layer-manager.ts:214
_onRenderFrame @ deck.ts:1102
_renderFrame @ animation-loop.ts:362
redraw @ animation-loop.ts:236
_animationFrame @ animation-loop.ts:348
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
tile-layer.ts:41 FetchError: Failed to fetch resource (404) : https://titiler-589807...037085339426994
    at getResponseError (response-utils.js:90:12)
    at async checkResponse (response-utils.js:54:23)
    at async getArrayBufferOrStringFromData (get-data.js:58:9)
    at async parseWithLoader (parse.js:65:12)
    at async parse (parse.js:50:12)
    at async load (load.js:40:11)
    at async Tile2DHeader._loadData (tile-2d-header.ts:137:18)
overrideMethod @ hook.js:608
error @ intercept-console-error.ts:44
console.error @ suppress-nextjs-warning.ts:15
value @ tile-layer.ts:41
_onTileError @ tile-layer.ts:306
_loadData @ tile-2d-header.ts:163
await in _loadData
loadData @ tile-2d-header.ts:174
_getTile @ tileset-2d.ts:526
(anonymous) @ tileset-2d.ts:264
update @ tileset-2d.ts:264
_updateTileset @ tile-layer.ts:270
updateState @ tile-layer.ts:231
_update @ layer.ts:990
_updateLayer @ layer-manager.ts:383
_updateSublayersRecursively @ layer-manager.ts:329
_updateLayers @ layer-manager.ts:281
setLayers @ layer-manager.ts:202
updateLayers @ layer-manager.ts:214
_onRenderFrame @ deck.ts:1102
_renderFrame @ animation-loop.ts:362
redraw @ animation-loop.ts:236
_animationFrame @ animation-loop.ts:348
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
requestAnimationFrame
requestAnimationFramePolyfill @ request-animation-frame.ts:11
_requestAnimationFrame @ animation-loop.ts:326
_animationFrame @ animation-loop.ts:349
layer.ts:122 
react-dom-client.development.js:16842 [Violation] 'setTimeout' handler took 223ms

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the TileLayer loading path in layer.ts, tile-layer.ts, tile-2d-header.ts, and tileset-2d.ts, then reproduce the React example with the reported 404 tile request and renderSubLayers configuration. Trace how the failed fetch reaches BitmapLayer and compare it with the documented onTileError behavior. Done means a missing tile does not cause the layer to disappear or produce the reported null-constructor error.

Written by the indexing model from the issue text.

Assessment

Tech stack
react, typescript
Domain
data-visualization, frontend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.