Uncaught TypeError: n.$server.setRequestedRange is not a function

Just noticed this; When scrolling in a grid it didn’t fetch the next batch of rows. Instead I got this in the browser log:

Uncaught TypeError: n.$server.setRequestedRange is not a function
    v http://localhost:8080/ptsmc/app/VAADIN/build/generated-flow-imports-pTESbZtO.js:9083
    fetchPage http://localhost:8080/ptsmc/app/VAADIN/build/generated-flow-imports-pTESbZtO.js:9083
    v http://localhost:8080/ptsmc/app/VAADIN/build/generated-flow-imports-pTESbZtO.js:9083
    _timer http://localhost:8080/ptsmc/app/VAADIN/build/generated-flow-imports-pTESbZtO.js:908
    setTimeout handler*run http://localhost:8080/ptsmc/app/VAADIN/build/generated-flow-imports-pTESbZtO.js:900
    setConfig http://localhost:8080/ptsmc/app/VAADIN/build/generated-flow-imports-pTESbZtO.js:908
    debounce http://localhost:8080/ptsmc/app/VAADIN/build/generated-flow-imports-pTESbZtO.js:908
    debounceRootRequest http://localhost:8080/ptsmc/app/VAADIN/build/generated-flow-imports-pTESbZtO.js:9083
    dataProvider http://localhost:8080/ptsmc/app/VAADIN/build/generated-flow-imports-pTESbZtO.js:9083
    __loadCachePage http://localhost:8080/ptsmc/app/VAADIN/build/generated-flow-imports-pTESbZtO.js:5278
    ensureFlatIndexLoaded http://localhost:8080/ptsmc/app/VAADIN/build/generated-flow-imports-pTESbZtO.js:5278
    _getItem http://localhost:8080/ptsmc/app/VAADIN/build/generated-flow-imports-pTESbZtO.js:8512
    _updateScrollerItem http://localhost:8080/ptsmc/app/VAADIN/build/generated-flow-imports-pTESbZtO.js:8557
    __updateElement http://localhost:8080/ptsmc/app/VAADIN/build/generated-flow-imports-pTESbZtO.js:5135
    _assignModels http://localhost:8080/ptsmc/app/VAADIN/build/generated-flow-imports-pTESbZtO.js:5135
    _iterateItems http://localhost:8080/ptsmc/app/VAADIN/build/generated-flow-imports-pTESbZtO.js:5131
    _assignModels http://localhost:8080/ptsmc/app/VAADIN/build/generated-flow-imports-pTESbZtO.js:5135
    _update http://localhost:8080/ptsmc/app/VAADIN/build/generated-flow-imports-pTESbZtO.js:5131
    _scrollHandler http://localhost:8080/ptsmc/app/VAADIN/build/generated-flow-imports-pTESbZtO.js:5131
    _scrollHandler http://localhost:8080/ptsmc/app/VAADIN/build/generated-flow-imports-pTESbZtO.js:5135
    uf http://localhost:8080/ptsmc/app/VAADIN/build/generated-flow-imports-pTESbZtO.js:5135
    uf http://localhost:8080/ptsmc/app/VAADIN/build/generated-flow-imports-pTESbZtO.js:5135
    gc http://localhost:8080/ptsmc/app/VAADIN/build/generated-flow-imports-pTESbZtO.js:5135
    ready http://localhost:8080/ptsmc/app/VAADIN/build/generated-flow-imports-pTESbZtO.js:8557
    ready http://localhost:8080/ptsmc/app/VAADIN/build/FlowClient-DyMGXbet.js:3
    _enableProperties http://localhost:8080/ptsmc/app/VAADIN/build/generated-flow-imports-pTESbZtO.js:1284
    connectedCallback http://localhost:8080/ptsmc/app/VAADIN/build/generated-flow-imports-pTESbZtO.js:1326
    connectedCallback http://localhost:8080/ptsmc/app/VAADIN/build/generated-flow-imports-pTESbZtO.js:1336
    connectedCallback http://localhost:8080/ptsmc/app/VAADIN/build/generated-flow-imports-pTESbZtO.js:794
    connectedCallback http://localhost:8080/ptsmc/app/VAADIN/build/generated-flow-imports-pTESbZtO.js:666
    connectedCallback http://localhost:8080/ptsmc/app/VAADIN/build/generated-flow-imports-pTESbZtO.js:8516
    connectedCallback http://localhost:8080/ptsmc/app/VAADIN/build/generated-flow-imports-pTESbZtO.js:3406
    connectedCallback http://localhost:8080/ptsmc/app/VAADIN/build/generated-flow-imports-pTESbZtO.js:8557
    uE http://localhost:8080/ptsmc/app/VAADIN/build/FlowClient-DyMGXbet.js:3
    F3 http://localhost:8080/ptsmc/app/VAADIN/build/FlowClient-DyMGXbet.js:3
    gb http://localhost:8080/ptsmc/app/VAADIN/build/FlowClient-DyMGXbet.js:3
    lo http://localhost:8080/ptsmc/app/VAADIN/build/FlowClient-DyMGXbet.js:3
    FE http://localhost:8080/ptsmc/app/VAADIN/build/FlowClient-DyMGXbet.js:3
    D http://localhost:8080/ptsmc/app/VAADIN/build/FlowClient-DyMGXbet.js:3
    _c http://localhost:8080/ptsmc/app/VAADIN/build/FlowClient-DyMGXbet.js:1
    wp http://localhost:8080/ptsmc/app/VAADIN/build/FlowClient-DyMGXbet.js:3
    wo http://localhost:8080/ptsmc/app/VAADIN/build/FlowClient-DyMGXbet.js:3
    ob http://localhost:8080/ptsmc/app/VAADIN/build/FlowClient-DyMGXbet.js:3
    K http://localhost:8080/ptsmc/app/VAADIN/build/FlowClient-DyMGXbet.js:3
    onreadystatechange http://localhost:8080/ptsmc/app/VAADIN/build/FlowClient-DyMGXbet.js:1
    Pd http://localhost:8080/ptsmc/app/VAADIN/build/FlowClient-DyMGXbet.js:1
    f3 http://localhost:8080/ptsmc/app/VAADIN/build/FlowClient-DyMGXbet.js:3
    J0 http://localhost:8080/ptsmc/app/VAADIN/build/FlowClient-DyMGXbet.js:1
    J1 http://localhost:8080/ptsmc/app/VAADIN/build/FlowClient-DyMGXbet.js:1
    B3 http://localhost:8080/ptsmc/app/VAADIN/build/FlowClient-DyMGXbet.js:3
    F1 http://localhost:8080/ptsmc/app/VAADIN/build/FlowClient-DyMGXbet.js:1
Caused by: undefined
generated-flow-imports-pTESbZtO.js:9083:9342

We recently upgraded Vaadin 24.8.4 → 24.9.4
Note: Even though this is in dev, we are always using prod.bundle
As far as I can tell, prod.bundle was generated and checked in as part of the upgrade, and I see no version mismatch warnings anywhere.

I see there is a 24.9.5 now, but I don’t see anything that sounds like a fix for this.

Hello! It sounds like the prod bundle still includes an old version of gridConnector, which calls $server.setRequestedRange when it should be calling $server.setViewportRange. Could you please double check if the bundle was properly regenerated after the upgrade?

Looks like the problem was src\main\frontend\generated
For some reason that was not under version control.
I guess I assumed it was just used to produce the bundle?

I deleted this dir, did a build which recreated it but did not touch the bundle.
After that it worked fine.
I guess I have to check in generated as well

frontend/generated is supposed to re-generated as necessary rather than being in version control. There might be some bug hiding somewhere that prevented that from working but hard to tell without digging further…

Well, imho, if it is in src it should be checked in.
Btw, the reason I didn’t see it was because I had a wildcarded gitignore from when frontend was outside src

We would love to have it outside src/ for that reason but it basically needs to be adjacent to regular src/main/frontend/ content for the integration to work well in practice.