Skip to content

Instantly share code, notes, and snippets.

@NullVoxPopuli
Last active October 29, 2025 21:34
Show Gist options
  • Select an option

  • Save NullVoxPopuli/65d8fad8c736e66f58cdd4c5baedb0cb to your computer and use it in GitHub Desktop.

Select an option

Save NullVoxPopuli/65d8fad8c736e66f58cdd4c5baedb0cb to your computer and use it in GitHub Desktop.

Revisions

  1. NullVoxPopuli revised this gist Oct 29, 2025. 1 changed file with 9 additions and 0 deletions.
    9 changes: 9 additions & 0 deletions Browsers can't handle large module graphs.md
    Original file line number Diff line number Diff line change
    @@ -44,3 +44,12 @@ Related information:

    - https://github.com/NullVoxPopuli/vite-lots-of-module-repro
    Lots of modules, if your OS is busy, it'll be slow enough to load correctly. otherwise repros



    ---------------

    ## 2025-10-29

    "A" fix goes in to vite 7.2.0-beta.1
    - https://github.com/vitejs/vite/issues/17499#issuecomment-3460646226
  2. NullVoxPopuli renamed this gist Oct 2, 2025. 1 changed file with 0 additions and 0 deletions.
  3. NullVoxPopuli revised this gist Oct 2, 2025. 1 changed file with 1 addition and 2 deletions.
    3 changes: 1 addition & 2 deletions README.md
    Original file line number Diff line number Diff line change
    @@ -43,5 +43,4 @@ Related information:
    ### Repros

    - https://github.com/NullVoxPopuli/vite-lots-of-module-repro
    Lots of modules, takes a long time to load but doesn't have the error (depends on what the OS is doing)
    - on a machine that is not burdened, this repros
    Lots of modules, if your OS is busy, it'll be slow enough to load correctly. otherwise repros
  4. NullVoxPopuli revised this gist Sep 30, 2025. 1 changed file with 3 additions and 2 deletions.
    5 changes: 3 additions & 2 deletions README.md
    Original file line number Diff line number Diff line change
    @@ -40,7 +40,8 @@ Related information:

    - https://github.com/colocohen/quico

    ### Repros?
    ### Repros

    - https://github.com/NullVoxPopuli/vite-lots-of-module-repro
    Lots of modules, takes a long time to load but doesn't have the error
    Lots of modules, takes a long time to load but doesn't have the error (depends on what the OS is doing)
    - on a machine that is not burdened, this repros
  5. NullVoxPopuli revised this gist Sep 30, 2025. 1 changed file with 5 additions and 0 deletions.
    5 changes: 5 additions & 0 deletions README.md
    Original file line number Diff line number Diff line change
    @@ -39,3 +39,8 @@ Related information:
    ### Things to keep an eye on

    - https://github.com/colocohen/quico

    ### Repros?

    - https://github.com/NullVoxPopuli/vite-lots-of-module-repro
    Lots of modules, takes a long time to load but doesn't have the error
  6. NullVoxPopuli revised this gist Sep 29, 2025. 1 changed file with 8 additions and 1 deletion.
    9 changes: 8 additions & 1 deletion README.md
    Original file line number Diff line number Diff line change
    @@ -31,4 +31,11 @@ Related information:
    - [This hn comment](https://news.ycombinator.com/item?id=19722880) implies that the default is 1000 in Chrome -- however, the [vite issue](https://github.com/vitejs/vite/issues/17499) suggests 2000 simultaneous streams.
    This also suggests that a server must also support higher max concurrent streams.
    - General http/2:
    - https://sites.google.com/site/mytechnicalcollection/networking/http2
    - https://sites.google.com/site/mytechnicalcollection/networking/http2


    ---------------

    ### Things to keep an eye on

    - https://github.com/colocohen/quico
  7. NullVoxPopuli revised this gist Sep 27, 2025. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions README.md
    Original file line number Diff line number Diff line change
    @@ -1,5 +1,5 @@
    Vite: https://github.com/vitejs/vite/issues/17499
    Chrome: https://issues.chromium.org/issues/355006326
    - Vite: https://github.com/vitejs/vite/issues/17499
    - Chrome: https://issues.chromium.org/issues/355006326

    ----------

  8. NullVoxPopuli revised this gist Sep 27, 2025. 1 changed file with 6 additions and 1 deletion.
    7 changes: 6 additions & 1 deletion README.md
    Original file line number Diff line number Diff line change
    @@ -1,8 +1,13 @@
    Vite: https://github.com/vitejs/vite/issues/17499
    Chrome: https://issues.chromium.org/issues/355006326

    ----------

    Much of the benefit of vite + http/2 is the ability to rely on cached requests of http/2 -- as in, turning off "disable cache" in the network tools.

    However, when an app has to perform 10k network requests on boot, chrome and firefox error with:

    I believe this is potentially related to:
    I believe this is potentially related to limitations in maybe both the browser and the server
    - https://issues.chromium.org/issues/355006326 - the main issue report to Chromium about this use case (large ES module graph)
    - Errors we can receive
    - net::ERR_FAILED
  9. NullVoxPopuli revised this gist Sep 27, 2025. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion README.md
    Original file line number Diff line number Diff line change
    @@ -13,7 +13,7 @@ I believe this is potentially related to:
    > Vite issue thread that is still open and related to this https://github.com/vitejs/vite/issues/17499
    However, it's unclear whether we can do anything with Vite or Chrome to fix this -- as we are using dev mode, and nginx isn't relevant
    - I can avoid errors entirely if I throttle the network to "Fast 3G" (this is, however, very slow)
    - I can avoid errors entirely if I throttle the network to "Fast 4G" (this is, however, very slow)
    - after this completely, I can un-throttle the network, and all requests succeed
    - I can avoid errors by checking "Disable cache" -- this, however, defeats the point of http/2 and vite

  10. NullVoxPopuli revised this gist Sep 27, 2025. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion README.md
    Original file line number Diff line number Diff line change
    @@ -23,7 +23,7 @@ Related information:
    - rolldown-vite's "Full bundle mode" - https://discord.com/channels/804011606160703521/1416465954816135318/1416763408619143328
    - SETTINGS_MAX_CONCURRENT_STREAMS, https://issues.chromium.org/issues/41456843
    - Some have this set _very low_ (even [as low as 100](https://github.com/dotnet/runtime/issues/35088))
    - [This hn comment](https://news.ycombinator.com/item?id=19722880) implies that the default is 1000 in Chrome
    - [This hn comment](https://news.ycombinator.com/item?id=19722880) implies that the default is 1000 in Chrome -- however, the [vite issue](https://github.com/vitejs/vite/issues/17499) suggests 2000 simultaneous streams.
    This also suggests that a server must also support higher max concurrent streams.
    - General http/2:
    - https://sites.google.com/site/mytechnicalcollection/networking/http2
  11. NullVoxPopuli revised this gist Sep 27, 2025. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion README.md
    Original file line number Diff line number Diff line change
    @@ -6,7 +6,7 @@ I believe this is potentially related to:
    - https://issues.chromium.org/issues/355006326 - the main issue report to Chromium about this use case (large ES module graph)
    - Errors we can receive
    - net::ERR_FAILED
    - net::ERR_CONNECTION_RESET
    - net::ERR_HTTP2_PROTOCOL_ERROR
    - Hope
    - https://issues.chromium.org/issues/355006326#comment27
    > Modifying nginx server config to use keepalive_requests 10000; and it solved the problem.
  12. NullVoxPopuli revised this gist Sep 27, 2025. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions README.md
    Original file line number Diff line number Diff line change
    @@ -11,6 +11,7 @@ I believe this is potentially related to:
    - https://issues.chromium.org/issues/355006326#comment27
    > Modifying nginx server config to use keepalive_requests 10000; and it solved the problem.
    > Vite issue thread that is still open and related to this https://github.com/vitejs/vite/issues/17499
    However, it's unclear whether we can do anything with Vite or Chrome to fix this -- as we are using dev mode, and nginx isn't relevant
    - I can avoid errors entirely if I throttle the network to "Fast 3G" (this is, however, very slow)
    - after this completely, I can un-throttle the network, and all requests succeed
  13. NullVoxPopuli revised this gist Sep 27, 2025. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions README.md
    Original file line number Diff line number Diff line change
    @@ -11,6 +11,7 @@ I believe this is potentially related to:
    - https://issues.chromium.org/issues/355006326#comment27
    > Modifying nginx server config to use keepalive_requests 10000; and it solved the problem.
    > Vite issue thread that is still open and related to this https://github.com/vitejs/vite/issues/17499
    However, it's unclear whether we can do anything with Vite or Chrome to fix this -- as we are using dev mode, and nginx isn't relevant
    - I can avoid errors entirely if I throttle the network to "Fast 3G" (this is, however, very slow)
    - after this completely, I can un-throttle the network, and all requests succeed
    - I can avoid errors by checking "Disable cache" -- this, however, defeats the point of http/2 and vite
  14. NullVoxPopuli created this gist Sep 27, 2025.
    27 changes: 27 additions & 0 deletions README.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,27 @@
    Much of the benefit of vite + http/2 is the ability to rely on cached requests of http/2 -- as in, turning off "disable cache" in the network tools.

    However, when an app has to perform 10k network requests on boot, chrome and firefox error with:

    I believe this is potentially related to:
    - https://issues.chromium.org/issues/355006326 - the main issue report to Chromium about this use case (large ES module graph)
    - Errors we can receive
    - net::ERR_FAILED
    - net::ERR_CONNECTION_RESET
    - Hope
    - https://issues.chromium.org/issues/355006326#comment27
    > Modifying nginx server config to use keepalive_requests 10000; and it solved the problem.
    > Vite issue thread that is still open and related to this https://github.com/vitejs/vite/issues/17499
    - I can avoid errors entirely if I throttle the network to "Fast 3G" (this is, however, very slow)
    - after this completely, I can un-throttle the network, and all requests succeed
    - I can avoid errors by checking "Disable cache" -- this, however, defeats the point of http/2 and vite



    Related information:
    - rolldown-vite's "Full bundle mode" - https://discord.com/channels/804011606160703521/1416465954816135318/1416763408619143328
    - SETTINGS_MAX_CONCURRENT_STREAMS, https://issues.chromium.org/issues/41456843
    - Some have this set _very low_ (even [as low as 100](https://github.com/dotnet/runtime/issues/35088))
    - [This hn comment](https://news.ycombinator.com/item?id=19722880) implies that the default is 1000 in Chrome
    This also suggests that a server must also support higher max concurrent streams.
    - General http/2:
    - https://sites.google.com/site/mytechnicalcollection/networking/http2