GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — net: increase network family autoselection timeout to 500ms by rvagg · Pull Request #60334 · nodejs/node

Conversation

@rvagg

@rvagg rvagg commented Oct 21, 2025 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

This is the same as #56738, commit is attributed correctly to @hvanness, I just want this in (others do too obviously, see, and, and) and that PR is stalled.

I'd also be happy with a slightly lower number if that's more comfortable, 400, or 350 perhaps. 250 is just too tight for people at the ends of the earth and no IPv6.

And .. IMO it's not a breaking change, to @ShogunPanda's original concerns, but opinions may vary.

/cc @mcollina @ShogunPanda @RafaelGSS

The current 250ms timeout is too short for high-latency network environments, causing connection failures in IPv4-only networks when connecting to dual-stack hosts. This increases the timeout to 500ms to better handle satellite, cellular, and geographically distant connections.

The timeout should be reconsidered when parallel connections are implemented as per RFC 8305.

Refs: #54359
Refs: #48145

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@hvanness @rvagg
net: increase network family autoselection timeout to 500ms
5ebe619
The current 250ms timeout is too short for high-latency network
environments, causing connection failures in IPv4-only networks when
connecting to dual-stack hosts. This increases the timeout to 500ms
to better handle satellite, cellular, and geographically distant
connections.

The timeout should be reconsidered when parallel connections are
implemented as per RFC 8305.

Refs: nodejs#54359
Refs: nodejs#48145
@nodejs-github-bot

nodejs-github-bot commented Oct 21, 2025

Copy link
Copy Markdown
Collaborator

Review requested:

  • @nodejs/config
  • @nodejs/net
All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@nodejs-github-bot nodejs-github-bot added c++ Issues and PRs that require attention from people who are familiar with C++. config Issues and PRs related to Node.js configuration and feature settings. needs-ci PRs that need a full CI run. labels Oct 21, 2025
@rvagg
fixup! net: increase network family autoselection timeout to 500ms
9a169d2
mcollina
mcollina approved these changes Oct 21, 2025
View reviewed changes

@mcollina mcollina left a comment

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@mcollina mcollina added the request-ci Add this label to start a Jenkins CI on a PR. Only starts once the PR has an approving review. label Oct 21, 2025
@github-actions github-actions Bot removed the request-ci Add this label to start a Jenkins CI on a PR. Only starts once the PR has an approving review. label Oct 21, 2025
@nodejs-github-bot

nodejs-github-bot commented Oct 21, 2025

Copy link
Copy Markdown
Collaborator

CI: https://ci.nodejs.org/job/node-test-pull-request/69838/

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@codecov

codecov Bot commented Oct 21, 2025 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 88.56%. Comparing base (2fb82c8) to head (9a169d2).
⚠️ Report is 123 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main   #60334      +/-   ##
==========================================
- Coverage   88.59%   88.56%   -0.03%     
==========================================
  Files         704      704              
  Lines      208474   208474              
  Branches    40067    40067              
==========================================
- Hits       184696   184636      -60     
- Misses      15805    15854      +49     
- Partials     7973     7984      +11     
Files with missing lines Coverage Δ
src/node_options.h 97.90% <100.00%> (ø)

... and 44 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.
All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@rvagg

rvagg commented Oct 21, 2025

Copy link
Copy Markdown
Member Author

Not sure if that's a real regression in rhel9-x64, there's another instance of this particular failure here https://ci.nodejs.org/job/node-test-commit-linux/nodes=rhel9-x64/66985/, although that's it scrolling back for a few pages of runs. 🤷

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

pimterry
pimterry approved these changes Oct 21, 2025
View reviewed changes
marco-ippolito
marco-ippolito approved these changes Oct 21, 2025
View reviewed changes
RafaelGSS
RafaelGSS approved these changes Oct 21, 2025
View reviewed changes
@RafaelGSS RafaelGSS added the semver-minor PRs that contain new features and should be released in the next minor version. label Oct 21, 2025
@RafaelGSS

RafaelGSS commented Oct 21, 2025 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

I have added the semver-minor label as it changes defaults, and to give more visibility since we'll not flag it as semver-major. I'll also add the baking-for-lts to make sure this will not break specific edge cases we haven't considered.

Feel free to change that once the feature is "stabilized".

marco-ippolito reacted with thumbs up emoji
All reactions
  • 👍 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@RafaelGSS RafaelGSS added the baking-for-lts PRs whose changes need more time before an LTS backport. label Oct 21, 2025
santigimeno
santigimeno approved these changes Oct 21, 2025
View reviewed changes
cjihrig
cjihrig approved these changes Oct 21, 2025
View reviewed changes
lpinca
lpinca approved these changes Oct 21, 2025
View reviewed changes
juanarbol
juanarbol approved these changes Oct 21, 2025
View reviewed changes
UlisesGascon
UlisesGascon approved these changes Oct 21, 2025
View reviewed changes
trivikr
trivikr approved these changes Oct 30, 2025
View reviewed changes
@rvagg

rvagg commented Nov 4, 2025

Copy link
Copy Markdown
Member Author

so many ticks .. what's the next step these days? just be patient? I doubt I have any access here anymore to do anything

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@rvagg rvagg mentioned this pull request Nov 4, 2025
fix: check ipni advertisement during upload filecoin-project/filecoin-pin#183
Merged
@nodejs-github-bot

nodejs-github-bot commented Nov 4, 2025

Copy link
Copy Markdown
Collaborator

CI: https://ci.nodejs.org/job/node-test-pull-request/70042/

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@RafaelGSS RafaelGSS added commit-queue PRs queued for automated landing through the Commit Queue. author ready PRs with CI started, the required approvals, and no outstanding review comments. labels Nov 4, 2025
@nodejs-github-bot nodejs-github-bot removed the commit-queue PRs queued for automated landing through the Commit Queue. label Nov 4, 2025
@nodejs-github-bot
nodejs-github-bot merged commit 71da1a8 into nodejs:main Nov 4, 2025
40 checks passed

Uh oh!

There was an error while loading. Please reload this page.

@nodejs-github-bot

nodejs-github-bot commented Nov 4, 2025

Copy link
Copy Markdown
Collaborator

Landed in 71da1a8

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

aduh95 pushed a commit that referenced this pull request Nov 5, 2025
@rvagg @aduh95
net: increase network family autoselection timeout to 500ms
506b79e
The current 250ms timeout is too short for high-latency network
environments, causing connection failures in IPv4-only networks when
connecting to dual-stack hosts. This increases the timeout to 500ms
to better handle satellite, cellular, and geographically distant
connections.

The timeout should be reconsidered when parallel connections are
implemented as per RFC 8305.

Refs: #54359
Refs: #48145
PR-URL: #60334
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Tim Perry <[email protected]>
Reviewed-By: Marco Ippolito <[email protected]>
Reviewed-By: Rafael Gonzaga <[email protected]>
Reviewed-By: Santiago Gimeno <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Juan José Arboleda <[email protected]>
Reviewed-By: Ulises Gascón <[email protected]>
Reviewed-By: Trivikram Kamat <[email protected]>
@github-actions github-actions Bot mentioned this pull request Nov 11, 2025
2025-11-11, Version 25.2.0 (Current) #60677
Merged
nodejs-github-bot added a commit that referenced this pull request Nov 11, 2025
@nodejs-github-bot
2025-11-11, Version 25.2.0 (Current)
cc33907
Notable changes:

lib:
  * (SEMVER-MINOR) add options to util.deprecate (Rafael Gonzaga) #59982
  * throw from localStorage getter on missing storage path (René) #60351
module:
  * (SEMVER-MINOR) mark type stripping as stable (Marco Ippolito) #60600
net:
  * (SEMVER-MINOR) increase network family autoselection timeout to 500ms (Rod Vagg) #60334
node-api:
  * (SEMVER-MINOR) add napi_create_object_with_properties (Miguel Marcondes Filho) #59953
v8:
  * (SEMVER-MINOR) adding total_allocated_bytes to HeapStatistics (Caio Lima) #60573

PR-URL: #60677
aduh95 pushed a commit that referenced this pull request Nov 11, 2025
@nodejs-github-bot @aduh95
2025-11-11, Version 25.2.0 (Current)
42d3632
Notable changes:

lib:
  * (SEMVER-MINOR) add options to util.deprecate (Rafael Gonzaga) #59982
  * throw from localStorage getter on missing storage path (René) #60351
module:
  * (SEMVER-MINOR) mark type stripping as stable (Marco Ippolito) #60600
net:
  * (SEMVER-MINOR) increase network family autoselection timeout to 500ms (Rod Vagg) #60334
node-api:
  * (SEMVER-MINOR) add napi_create_object_with_properties (Miguel Marcondes Filho) #59953
v8:
  * (SEMVER-MINOR) adding total_allocated_bytes to HeapStatistics (Caio Lima) #60573

PR-URL: #60677
@wesley-zx

wesley-zx commented Nov 13, 2025

Copy link
Copy Markdown

Any plan to roll this out to other Node versions?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request Nov 14, 2025
ECG Bot @tmeijn
build(deps): update node to v25.2.0
b8f3b30
This MR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [node](https://nodejs.org) ([source](https://github.com/nodejs/node)) | minor | `25.1.0` -> `25.2.0` |

MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot).

**Proposed changes to behavior should be submitted there as MRs.**

---

### Release Notes

<details>
<summary>nodejs/node (node)</summary>

### [`v25.2.0`](https://github.com/nodejs/node/releases/tag/v25.2.0): 2025-11-11, Version 25.2.0 (Current), @&#8203;aduh95

[Compare Source](nodejs/node@v25.1.0...v25.2.0)

##### Notable Changes

- \[[`a37c01e6a1`](nodejs/node@a37c01e6a1)] - **(SEMVER-MINOR)** **lib**: add options to util.deprecate (Rafael Gonzaga) [#&#8203;59982](nodejs/node#59982)
- \[[`4fbb1ab101`](nodejs/node@4fbb1ab101)] - **lib**: throw from localStorage getter on missing storage path (René) [#&#8203;60351](nodejs/node#60351)
- \[[`727560a96d`](nodejs/node@727560a96d)] - **(SEMVER-MINOR)** **module**: mark type stripping as stable (Marco Ippolito) [#&#8203;60600](nodejs/node#60600)
- \[[`506b79e888`](nodejs/node@506b79e888)] - **(SEMVER-MINOR)** **net**: increase network family autoselection timeout to 500ms (Rod Vagg) [#&#8203;60334](nodejs/node#60334)
- \[[`166c72ec02`](nodejs/node@166c72ec02)] - **(SEMVER-MINOR)** **node-api**: add napi\_create\_object\_with\_properties (Miguel Marcondes Filho) [#&#8203;59953](nodejs/node#59953)
- \[[`399b340022`](nodejs/node@399b340022)] - **(SEMVER-MINOR)** **v8**: adding total\_allocated\_bytes to HeapStatistics (Caio Lima) [#&#8203;60573](nodejs/node#60573)

##### Commits

- \[[`d5158a0a2d`](nodejs/node@d5158a0a2d)] - **benchmark**: focus on import.meta intialization in import-meta benchmark (Joyee Cheung) [#&#8203;60603](nodejs/node#60603)
- \[[`26a5305fa9`](nodejs/node@26a5305fa9)] - **benchmark**: add per-suite setup option (Joyee Cheung) [#&#8203;60574](nodejs/node#60574)
- \[[`4810e4b82d`](nodejs/node@4810e4b82d)] - **buffer**: speed up concat via TypedArray#set (Gürgün Dayıoğlu) [#&#8203;60399](nodejs/node#60399)
- \[[`94a94a6b3a`](nodejs/node@94a94a6b3a)] - **console**: optimize single-string logging (Gürgün Dayıoğlu) [#&#8203;60422](nodejs/node#60422)
- \[[`ad376c31db`](nodejs/node@ad376c31db)] - **crypto**: fix argument validation in crypto.timingSafeEqual fast path (Joyee Cheung) [#&#8203;60538](nodejs/node#60538)
- \[[`dc38a45a55`](nodejs/node@dc38a45a55)] - **debugger**: fix event listener leak in the run command (Joyee Cheung) [#&#8203;60464](nodejs/node#60464)
- \[[`a61e5d8e05`](nodejs/node@a61e5d8e05)] - **deps**: call OPENSSL\_free after ANS1\_STRING\_to\_UTF8 (Rafael Gonzaga) [#&#8203;60609](nodejs/node#60609)
- \[[`51e5030afa`](nodejs/node@51e5030afa)] - **deps**: nghttp2: revert [`7784fa9`](nodejs/node@7784fa979d0b) (Antoine du Hamel) [#&#8203;59790](nodejs/node#59790)
- \[[`eef838f499`](nodejs/node@eef838f499)] - **deps**: update nghttp2 to 1.67.1 (nodejs-github-bot) [#&#8203;59790](nodejs/node#59790)
- \[[`13120a43d4`](nodejs/node@13120a43d4)] - **deps**: update simdjson to 4.1.0 (Node.js GitHub Bot) [#&#8203;60542](nodejs/node#60542)
- \[[`6e1b23dab8`](nodejs/node@6e1b23dab8)] - **deps**: update corepack to 0.34.2 (Node.js GitHub Bot) [#&#8203;60550](nodejs/node#60550)
- \[[`a02e05c486`](nodejs/node@a02e05c486)] - **deps**: update amaro to 1.1.5 (Node.js GitHub Bot) [#&#8203;60541](nodejs/node#60541)
- \[[`b9ba3a7947`](nodejs/node@b9ba3a7947)] - **deps**: V8: backport [`fe81545`](nodejs/node@fe81545e6d14) (Caio Lima) [#&#8203;60429](nodejs/node#60429)
- \[[`07bcd28494`](nodejs/node@07bcd28494)] - **deps**: V8: cherry-pick [`7ef6a00`](nodejs/node@7ef6a001762) (Xiao-Tao) [#&#8203;60259](nodejs/node#60259)
- \[[`3e11658243`](nodejs/node@3e11658243)] - **doc**: update Collaborators list to reflect hybrist handle change (Antoine du Hamel) [#&#8203;60650](nodejs/node#60650)
- \[[`b8e40e4d38`](nodejs/node@b8e40e4d38)] - **doc**: fix link in `--env-file=file` section (N. Bighetti) [#&#8203;60563](nodejs/node#60563)
- \[[`9558c1c0df`](nodejs/node@9558c1c0df)] - **doc**: fix linter issues (Antoine du Hamel) [#&#8203;60636](nodejs/node#60636)
- \[[`cdf70de563`](nodejs/node@cdf70de563)] - **doc**: add missing history entry for `sqlite.md` (Antoine du Hamel) [#&#8203;60607](nodejs/node#60607)
- \[[`e3c5dcf1ea`](nodejs/node@e3c5dcf1ea)] - **doc**: correct values/references for buffer.kMaxLength (René) [#&#8203;60305](nodejs/node#60305)
- \[[`a25d76c924`](nodejs/node@a25d76c924)] - **doc**: recommend events.once to manage 'close' event (Dan Fabulich) [#&#8203;60017](nodejs/node#60017)
- \[[`795f32bf91`](nodejs/node@795f32bf91)] - **doc**: highlight module loading difference between import and require (Ajay A) [#&#8203;59815](nodejs/node#59815)
- \[[`212775410b`](nodejs/node@212775410b)] - **doc**: add CJS code snippets in `sqlite.md` (Allon Murienik) [#&#8203;60395](nodejs/node#60395)
- \[[`263c06096d`](nodejs/node@263c06096d)] - **doc**: fix typo in `process.unref` documentation (우혁) [#&#8203;59698](nodejs/node#59698)
- \[[`356bdae408`](nodejs/node@356bdae408)] - **doc**: add some entries to `glossary.md` (Mohataseem Khan) [#&#8203;59277](nodejs/node#59277)
- \[[`9632c398de`](nodejs/node@9632c398de)] - **doc**: improve agent.createConnection docs for http and https agents (JaeHo Jang) [#&#8203;58205](nodejs/node#58205)
- \[[`f72880dbe3`](nodejs/node@f72880dbe3)] - **doc**: fix pseudo code in modules.md (chirsz) [#&#8203;57677](nodejs/node#57677)
- \[[`a9c70cefe8`](nodejs/node@a9c70cefe8)] - **doc**: add missing variable in code snippet (Koushil Mankali) [#&#8203;55478](nodejs/node#55478)
- \[[`2892d151d4`](nodejs/node@2892d151d4)] - **doc**: add missing word in `single-executable-applications.md` (Konstantin Tsabolov) [#&#8203;53864](nodejs/node#53864)
- \[[`9c99ab6571`](nodejs/node@9c99ab6571)] - **doc**: fix typo in http.md (Michael Solomon) [#&#8203;59354](nodejs/node#59354)
- \[[`3446cf375f`](nodejs/node@3446cf375f)] - **doc**: update devcontainer.json and add documentation (Joyee Cheung) [#&#8203;60472](nodejs/node#60472)
- \[[`519c537875`](nodejs/node@519c537875)] - **doc**: add haramj as triager (Haram Jeong) [#&#8203;60348](nodejs/node#60348)
- \[[`62889d7e99`](nodejs/node@62889d7e99)] - **doc**: clarify require(esm) description (dynst) [#&#8203;60520](nodejs/node#60520)
- \[[`0b9ef68705`](nodejs/node@0b9ef68705)] - **doc**: instantiate resolver object (Donghoon Nam) [#&#8203;60476](nodejs/node#60476)
- \[[`cd5c1ad29f`](nodejs/node@cd5c1ad29f)] - **doc**: correct module loading descriptions (Joyee Cheung) [#&#8203;60346](nodejs/node#60346)
- \[[`74719dad7a`](nodejs/node@74719dad7a)] - **doc**: clarify Linux runtime requirements for >=25 (Joyee Cheung) [#&#8203;60484](nodejs/node#60484)
- \[[`ca39540785`](nodejs/node@ca39540785)] - **doc**: clarify --use-system-ca support status (Joyee Cheung) [#&#8203;60340](nodejs/node#60340)
- \[[`dbf204c714`](nodejs/node@dbf204c714)] - **doc,crypto**: link keygen to supported types (Filip Skokan) [#&#8203;60585](nodejs/node#60585)
- \[[`3bcf86d56d`](nodejs/node@3bcf86d56d)] - **esm**: use sync loading/resolving on non-loader-hook thread (Joyee Cheung) [#&#8203;60380](nodejs/node#60380)
- \[[`69b3d2c845`](nodejs/node@69b3d2c845)] - **http**: replace startsWith with strict equality (btea) [#&#8203;59394](nodejs/node#59394)
- \[[`a38e2f5975`](nodejs/node@a38e2f5975)] - **http2**: add diagnostics channels for client stream request body (Darshan Sen) [#&#8203;60480](nodejs/node#60480)
- \[[`c047e73a00`](nodejs/node@c047e73a00)] - **inspector**: inspect HTTP response body (Chengzhong Wu) [#&#8203;60572](nodejs/node#60572)
- \[[`d2087bae92`](nodejs/node@d2087bae92)] - **inspector**: support inspecting HTTP/2 request and response bodies (Darshan Sen) [#&#8203;60483](nodejs/node#60483)
- \[[`003121c475`](nodejs/node@003121c475)] - **inspector**: fix crash when receiving non json message (Shima Ryuhei) [#&#8203;60388](nodejs/node#60388)
- \[[`a37c01e6a1`](nodejs/node@a37c01e6a1)] - **(SEMVER-MINOR)** **lib**: add options to util.deprecate (Rafael Gonzaga) [#&#8203;59982](nodejs/node#59982)
- \[[`219d2e978d`](nodejs/node@219d2e978d)] - **lib**: replace global SharedArrayBuffer constructor with bound method (Renegade334) [#&#8203;60497](nodejs/node#60497)
- \[[`4fbb1ab101`](nodejs/node@4fbb1ab101)] - **lib**: throw from localStorage getter on missing storage path (René) [#&#8203;60351](nodejs/node#60351)
- \[[`ca8934f44d`](nodejs/node@ca8934f44d)] - **meta**: bump cachix/install-nix-action from 31.6.1 to 31.8.2 (dependabot\[bot]) [#&#8203;60534](nodejs/node#60534)
- \[[`166490230a`](nodejs/node@166490230a)] - **meta**: bump github/codeql-action from 3.30.5 to 4.31.2 (dependabot\[bot]) [#&#8203;60533](nodejs/node#60533)
- \[[`b722236a12`](nodejs/node@b722236a12)] - **meta**: bump actions/download-artifact from 5.0.0 to 6.0.0 (dependabot\[bot]) [#&#8203;60532](nodejs/node#60532)
- \[[`3314b0bc60`](nodejs/node@3314b0bc60)] - **meta**: bump actions/upload-artifact from 4.6.2 to 5.0.0 (dependabot\[bot]) [#&#8203;60531](nodejs/node#60531)
- \[[`d1d9891feb`](nodejs/node@d1d9891feb)] - **meta**: bump actions/github-script from 7.0.1 to 8.0.0 (dependabot\[bot]) [#&#8203;60530](nodejs/node#60530)
- \[[`995596a34f`](nodejs/node@995596a34f)] - **meta**: bump actions/setup-node from 5.0.0 to 6.0.0 (dependabot\[bot]) [#&#8203;60529](nodejs/node#60529)
- \[[`b60157a0fe`](nodejs/node@b60157a0fe)] - **meta**: bump actions/stale from 10.0.0 to 10.1.0 (dependabot\[bot]) [#&#8203;60528](nodejs/node#60528)
- \[[`07fa6c9081`](nodejs/node@07fa6c9081)] - **meta**: call `create-release-post.yml` post release (Aviv Keller) [#&#8203;60366](nodejs/node#60366)
- \[[`727560a96d`](nodejs/node@727560a96d)] - **(SEMVER-MINOR)** **module**: mark type stripping as stable (Marco Ippolito) [#&#8203;60600](nodejs/node#60600)
- \[[`506b79e888`](nodejs/node@506b79e888)] - **(SEMVER-MINOR)** **net**: increase network family autoselection timeout to 500ms (Rod Vagg) [#&#8203;60334](nodejs/node#60334)
- \[[`166c72ec02`](nodejs/node@166c72ec02)] - **(SEMVER-MINOR)** **node-api**: add napi\_create\_object\_with\_properties (Miguel Marcondes Filho) [#&#8203;59953](nodejs/node#59953)
- \[[`6ab83cf979`](nodejs/node@6ab83cf979)] - **node-api**: use local files for instanceof test (Vladimir Morozov) [#&#8203;60190](nodejs/node#60190)
- \[[`3671851879`](nodejs/node@3671851879)] - **perf\_hooks**: move non-standard performance properties to perf\_hooks (Chengzhong Wu) [#&#8203;60370](nodejs/node#60370)
- \[[`6ddee4a7ed`](nodejs/node@6ddee4a7ed)] - **repl**: fix pasting after moving the cursor to the left (Ruben Bridgewater) [#&#8203;60470](nodejs/node#60470)
- \[[`edc3033905`](nodejs/node@edc3033905)] - **sqlite,doc**: fix StatementSync section (Edy Silva) [#&#8203;60474](nodejs/node#60474)
- \[[`e9b68e60d4`](nodejs/node@e9b68e60d4)] - **src**: move import.meta initializer to native land (Joyee Cheung) [#&#8203;60603](nodejs/node#60603)
- \[[`0ebf839a4f`](nodejs/node@0ebf839a4f)] - **src**: use CP\_UTF8 for wide file names on win32 (Fedor Indutny) [#&#8203;60575](nodejs/node#60575)
- \[[`a31ad37714`](nodejs/node@a31ad37714)] - **src**: show original file name in FileHandle GC close errors (Anna Henningsen) [#&#8203;60593](nodejs/node#60593)
- \[[`a6c221324b`](nodejs/node@a6c221324b)] - **src**: avoid C strings in more C++ exception throws (Anna Henningsen) [#&#8203;60592](nodejs/node#60592)
- \[[`fdff838ce3`](nodejs/node@fdff838ce3)] - **src**: add internal binding for constructing SharedArrayBuffers (Renegade334) [#&#8203;60497](nodejs/node#60497)
- \[[`4385b0b65f`](nodejs/node@4385b0b65f)] - **src**: move `napi_addon_register_func` to `node_api_types.h` (Anna Henningsen) [#&#8203;60512](nodejs/node#60512)
- \[[`de78da7887`](nodejs/node@de78da7887)] - **src**: move Node-API version detection to where it is used (Anna Henningsen) [#&#8203;60512](nodejs/node#60512)
- \[[`b606d46c3f`](nodejs/node@b606d46c3f)] - **src**: remove unconditional NAPI\_EXPERIMENTAL in node.h (Chengzhong Wu) [#&#8203;60345](nodejs/node#60345)
- \[[`5941341889`](nodejs/node@5941341889)] - **src**: clean up generic counter implementation (Anna Henningsen) [#&#8203;60447](nodejs/node#60447)
- \[[`7015f30e62`](nodejs/node@7015f30e62)] - **src**: add enum handle for ToStringHelper + formatting (Burkov Egor) [#&#8203;56829](nodejs/node#56829)
- \[[`39dfcbad6e`](nodejs/node@39dfcbad6e)] - **stream**: don't try to read more if reading (Robert Nagy) [#&#8203;60454](nodejs/node#60454)
- \[[`ee333c9177`](nodejs/node@ee333c9177)] - **test**: deflake test-perf-hooks-timerify-histogram-sync (Joyee Cheung) [#&#8203;60639](nodejs/node#60639)
- \[[`f0d81c91e7`](nodejs/node@f0d81c91e7)] - **test**: apply a delay to `watch-mode-kill-signal` tests (Joyee Cheung) [#&#8203;60610](nodejs/node#60610)
- \[[`68791e2ccc`](nodejs/node@68791e2ccc)] - **test**: async iife in repl (Tony Gorez) [#&#8203;44878](nodejs/node#44878)
- \[[`c4eb9c3383`](nodejs/node@c4eb9c3383)] - **test**: parallelize sea tests when there's enough disk space (Joyee Cheung) [#&#8203;60604](nodejs/node#60604)
- \[[`be8c4172d9`](nodejs/node@be8c4172d9)] - **test**: only show overridden env in child process failures (Joyee Cheung) [#&#8203;60556](nodejs/node#60556)
- \[[`8cae858f88`](nodejs/node@8cae858f88)] - **test**: ensure assertions are reached on more tests (Antoine du Hamel) [#&#8203;60498](nodejs/node#60498)
- \[[`759d69331e`](nodejs/node@759d69331e)] - **test**: ensure assertions are reachable in `test/es-module` (Antoine du Hamel) [#&#8203;60501](nodejs/node#60501)
- \[[`6aaf18c333`](nodejs/node@6aaf18c333)] - **test**: ensure assertions are reached on more tests (Antoine du Hamel) [#&#8203;60485](nodejs/node#60485)
- \[[`bc41acf087`](nodejs/node@bc41acf087)] - **test**: ensure assertions are reached on more tests (Antoine du Hamel) [#&#8203;60500](nodejs/node#60500)
- \[[`22fd621daf`](nodejs/node@22fd621daf)] - **test**: split test-perf-hooks-timerify (Joyee Cheung) [#&#8203;60568](nodejs/node#60568)
- \[[`5efe4f722e`](nodejs/node@5efe4f722e)] - **test**: add more logs to test-esm-loader-hooks-inspect-wait (Joyee Cheung) [#&#8203;60466](nodejs/node#60466)
- \[[`2a57268f34`](nodejs/node@2a57268f34)] - **test**: mark stringbytes-external-exceed-max tests as flaky on AIX (Joyee Cheung) [#&#8203;60565](nodejs/node#60565)
- \[[`2c199f7f61`](nodejs/node@2c199f7f61)] - **test**: split test-esm-wasm.js (Joyee Cheung) [#&#8203;60491](nodejs/node#60491)
- \[[`bc8f7db5bb`](nodejs/node@bc8f7db5bb)] - **test**: correct conditional secure heap flags test (Shelley Vohr) [#&#8203;60385](nodejs/node#60385)
- \[[`3bf42a5dd3`](nodejs/node@3bf42a5dd3)] - **test**: spin longer on flaky platforms for test-worker-prof (Joyee Cheung) [#&#8203;60492](nodejs/node#60492)
- \[[`eca6227e7e`](nodejs/node@eca6227e7e)] - **test**: ensure assertions are reachable in `test/internet` (Antoine du Hamel) [#&#8203;60513](nodejs/node#60513)
- \[[`313983453b`](nodejs/node@313983453b)] - **test**: fix flaky test-watch-mode-kill-signal-\* (Joyee Cheung) [#&#8203;60443](nodejs/node#60443)
- \[[`ccc26377b5`](nodejs/node@ccc26377b5)] - **test**: capture stack trace in debugger timeout errors (Joyee Cheung) [#&#8203;60457](nodejs/node#60457)
- \[[`12e9213a24`](nodejs/node@12e9213a24)] - **test**: ensure assertions are reachable in `test/sequential` (Antoine du Hamel) [#&#8203;60412](nodejs/node#60412)
- \[[`781a2661de`](nodejs/node@781a2661de)] - **test**: ensure assertions are reachable in more folders (Antoine du Hamel) [#&#8203;60411](nodejs/node#60411)
- \[[`1e979e6eb7`](nodejs/node@1e979e6eb7)] - **test**: split test-runner-watch-mode (Joyee Cheung) [#&#8203;60391](nodejs/node#60391)
- \[[`8c31cbb99b`](nodejs/node@8c31cbb99b)] - **test**: move test-runner-watch-mode helper into common (Joyee Cheung) [#&#8203;60391](nodejs/node#60391)
- \[[`c94c6555cc`](nodejs/node@c94c6555cc)] - **test,crypto**: handle a few more BoringSSL tests (Shelley Vohr) [#&#8203;59030](nodejs/node#59030)
- \[[`fd63c27444`](nodejs/node@fd63c27444)] - **test,crypto**: update x448 and ed448 expectation when on boringssl (Shelley Vohr) [#&#8203;60387](nodejs/node#60387)
- \[[`bf0de92446`](nodejs/node@bf0de92446)] - **tls**: fix leak on invalid protocol method (Shelley Vohr) [#&#8203;60427](nodejs/node#60427)
- \[[`7e8373b378`](nodejs/node@7e8373b378)] - **tools**: replace invalid expression in dependabot config (Riddhi) [#&#8203;60649](nodejs/node#60649)
- \[[`ac08760547`](nodejs/node@ac08760547)] - **tools**: extract Nix dependency lists to separate files (Antoine du Hamel) [#&#8203;60495](nodejs/node#60495)
- \[[`ae91a6cc3a`](nodejs/node@ae91a6cc3a)] - **tools**: only add test reporter args when node:test is used (Joyee Cheung) [#&#8203;60551](nodejs/node#60551)
- \[[`97ed560222`](nodejs/node@97ed560222)] - **tools**: skip unaffected GHA jobs for changes in `test/internet` (Antoine du Hamel) [#&#8203;60517](nodejs/node#60517)
- \[[`44ca97b404`](nodejs/node@44ca97b404)] - **tools**: fix update-icu script (Michaël Zasso) [#&#8203;60521](nodejs/node#60521)
- \[[`07b0b5a5ba`](nodejs/node@07b0b5a5ba)] - **tools**: fix linter for semver-major release proposals (Antoine du Hamel) [#&#8203;60481](nodejs/node#60481)
- \[[`97d74224c3`](nodejs/node@97d74224c3)] - **tools**: fix failing release-proposal linter for LTS transitions (Antoine du Hamel) [#&#8203;60465](nodejs/node#60465)
- \[[`019af5bc27`](nodejs/node@019af5bc27)] - **tools**: skip running test-shared on deps changes (Antoine du Hamel) [#&#8203;60433](nodejs/node#60433)
- \[[`3ec9764151`](nodejs/node@3ec9764151)] - **tools**: pin OpenSSL to 3.5.4 on test-shared workflow (Antoine du Hamel) [#&#8203;60428](nodejs/node#60428)
- \[[`fe2d6d44d4`](nodejs/node@fe2d6d44d4)] - **tools**: remove undici from daily wpt.fyi job (Filip Skokan) [#&#8203;60444](nodejs/node#60444)
- \[[`d09ba98398`](nodejs/node@d09ba98398)] - **tools**: document that nixpkgs updates should not be backported (Antoine du Hamel) [#&#8203;60431](nodejs/node#60431)
- \[[`7fc99319e7`](nodejs/node@7fc99319e7)] - **tools**: do not use short hashes for deps versioning to avoid collision (Antoine du Hamel) [#&#8203;60407](nodejs/node#60407)
- \[[`815edb0c3a`](nodejs/node@815edb0c3a)] - **tools,doc**: update JavaScript primitive types to match MDN Web Docs (JustApple) [#&#8203;60581](nodejs/node#60581)
- \[[`6877139a2d`](nodejs/node@6877139a2d)] - **util**: fix stylize of special properties in inspect (Ge Gao) [#&#8203;60479](nodejs/node#60479)
- \[[`399b340022`](nodejs/node@399b340022)] - **(SEMVER-MINOR)** **v8**: adding total\_allocated\_bytes to HeapStatistics (Caio Lima) [#&#8203;60573](nodejs/node#60573)
- \[[`d64795b318`](nodejs/node@d64795b318)] - **watch**: fix interaction with multiple env files (Marco Ippolito) [#&#8203;60605](nodejs/node#60605)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this MR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box

---

This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNzMuMSIsInVwZGF0ZWRJblZlciI6IjQxLjE3My4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJSZW5vdmF0ZSBCb3QiXX0=-->
@mrivas00 mrivas00 mentioned this pull request Jun 12, 2026
[API] Fix: intermittent login 401 on high-latency links (Node happy-eyeballs 250ms budget) undp/carbon-footprint-program#381
Merged
3 of 4 tasks
mrivas00 added a commit to undp/carbon-footprint-program that referenced this pull request Jun 12, 2026
@mrivas00
[API] Fix: intermittent login 401 on high-latency links (Node happy-e…
b9594e3
…yeballs 250ms budget) (#381)

Node >=20 enables autoSelectFamily with a 250ms per-address connect
budget. On links whose TCP connect to the identity provider exceeds it
(VPNs, deployments far from Microsoft endpoints), every outbound
connection attempt is aborted: jwks-rsa cannot download signing keys and
the API rejects ALL valid tokens with an empty 401 — intermittently,
since real-world latency fluctuates around the threshold. The same
budget governs the http/https agents used by the storage SDKs.

Known upstream issue (nodejs/node#54359). Node 25.2 raised the default
to 500ms (nodejs/node#60334), still tight for high-RTT links and not
backported to 24 LTS, so set the 2500ms value originally proposed
upstream (nodejs/node#56738) at bootstrap. Connections that finish
faster are unaffected; only failover to dead addresses gets slower.
@PandaWood

PandaWood commented Aug 17, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown

Any chance this could be backported to v24.x?

Electron bundles Node 24, so every current desktop app ships with the 250 ms default - and desktop apps are the worst case for it: a single user, far from a server, making one connection that gets aborted before the SYN-ACK arrives.

From Australia, connecting to anything hosted in Europe (~330 ms) fails 100% of the time, while curl on the same machine works fine - so it presents as a mysterious app-specific breakage and probably never gets traced back to here.

Real-world sightings of this: laurent22/joplin#16215 (WebDAV sync hard-fails AU -> EU, ie my report)

Until the bump reaches the 24.x line, the fix doesn't exist for the Electron ecosystem.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@bakissation bakissation mentioned this pull request Sep 17, 2026
fix: survive happy-eyeballs connect timeouts and surface network error codes bakissation/mcp-google-multi#186
Merged
johncronin3 added a commit to johncronin3/mcp-google-multi that referenced this pull request Sep 18, 2026
@bakissation @johncronin3
fix: survive happy-eyeballs connect timeouts and surface network erro…
f7a879f
…r codes

Node's autoSelectFamily default gives each address family 250ms per connect
attempt on every supported LTS line (only v25.2+ ships 500ms). On high-latency
or broken-IPv6 links that aborts both attempts, and the resulting
AggregateError reaches the tool envelope as the unreadable
'upstream_error: request to <url> failed, reason: ' because node-fetch keeps
only the syscall code and mapGoogleError fed that code through Number().

Two changes:
- applyNetTuning() raises the process-wide autoSelectFamilyAttemptTimeout to
  2000ms at startup, unless the user set the flag themselves (execArgv or
  NODE_OPTIONS) or the current value is already higher. Never lowers.
- mapGoogleError classifies statusless errors carrying a connect/DNS syscall
  code (walking the gaxios/node-fetch and undici cause chains) as a new
  'network_error' envelope: code named in the message, transient codes marked
  retriable, hint pointing at the happy-eyeballs flag.

Rationale in docs/internals.md (Networking); upstream refs nodejs/node#54359,
nodejs/node#60334, nodejs/node#48145.

Co-Authored-By: Claude Fable 5 <[email protected]>

Co-authored-by: John Cronin <[email protected]>
@bakissation bakissation mentioned this pull request Sep 19, 2026
Happy eyeballs implementation times out prematurely #54359
Closed
@czubocha czubocha mentioned this pull request Oct 14, 2026
fix(dev): connect to AWS IoT Core from regions more than 250 ms away serverless/serverless#13979
Merged
4 tasks done
@efekrskl efekrskl mentioned this pull request Oct 23, 2026
Temporarily increase network_family_autoselection_attempt_timeout to 500ms #56738
Closed
jlrgraham pushed a commit to jlrgraham/mcp-google-multi that referenced this pull request Oct 24, 2026
@bakissation @claude
fix: survive happy-eyeballs connect timeouts and surface network erro…
95e3ced
…r codes

Node's autoSelectFamily default gives each address family 250ms per connect
attempt on every supported LTS line (only v25.2+ ships 500ms). On high-latency
or broken-IPv6 links that aborts both attempts, and the resulting
AggregateError reaches the tool envelope as the unreadable
'upstream_error: request to <url> failed, reason: ' because node-fetch keeps
only the syscall code and mapGoogleError fed that code through Number().

Two changes:
- applyNetTuning() raises the process-wide autoSelectFamilyAttemptTimeout to
  2000ms at startup, unless the user set the flag themselves (execArgv or
  NODE_OPTIONS) or the current value is already higher. Never lowers.
- mapGoogleError classifies statusless errors carrying a connect/DNS syscall
  code (walking the gaxios/node-fetch and undici cause chains) as a new
  'network_error' envelope: code named in the message, transient codes marked
  retriable, hint pointing at the happy-eyeballs flag.

Rationale in docs/internals.md (Networking); upstream refs nodejs/node#54359,
nodejs/node#60334, nodejs/node#48145.

Co-Authored-By: Claude Fable 5 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@mcollina mcollina mcollina approved these changes
@santigimeno santigimeno santigimeno approved these changes
@lpinca lpinca lpinca approved these changes
@pimterry pimterry pimterry approved these changes
@cjihrig cjihrig cjihrig approved these changes
@UlisesGascon UlisesGascon UlisesGascon approved these changes
@trivikr trivikr trivikr approved these changes
@juanarbol juanarbol juanarbol approved these changes
@RafaelGSS RafaelGSS RafaelGSS approved these changes
@marco-ippolito marco-ippolito marco-ippolito approved these changes

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

author ready PRs with CI started, the required approvals, and no outstanding review comments. baking-for-lts PRs whose changes need more time before an LTS backport. c++ Issues and PRs that require attention from people who are familiar with C++. config Issues and PRs related to Node.js configuration and feature settings. needs-ci PRs that need a full CI run. semver-minor PRs that contain new features and should be released in the next minor version.

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

15 participants

@rvagg @nodejs-github-bot @RafaelGSS @wesley-zx @PandaWood @mcollina @santigimeno @lpinca @pimterry @cjihrig @UlisesGascon @trivikr @juanarbol @marco-ippolito @hvanness
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.