Repository navigation
[world-vercel] Fix HTTP stream append retries after 429 - #4828
Conversation
🦋 Changeset detectedLatest commit: 835047c The changes in this PR will be included in the next version bump. This PR includes changesets to release 17 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
@mmarufov is attempting to deploy a commit to the Vercel Labs Team on Vercel. A member of the Team first needs to authorize it. |
|
@vercel/workflow ready for review. Could you approve the CI runs and preview deployments? |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Hey, thanks for the PR! First pass looks good to me, running CI. I expect this should get merged and included in a release this upcoming week. |
| @@ -59,7 +80,7 @@ until the burst finishes. Call `releaseLock()` when finished contributing, not | |||
|
|
|||
| ## Custom dispatcher | |||
|
|
|||
| HTTP requests (including the queue) default to a shared undici `RetryAgent` that handles connection pooling and retries. Pass a custom `dispatcher` to override it, for example, to tune undici on newer Node.js runtimes: | |||
| HTTP requests (including the queue) default to shared undici dispatchers for connection pooling, with retry policies specific to each operation. Pass a custom `dispatcher` to override them, for example, to tune undici on newer Node.js runtimes: | |||
There was a problem hiding this comment.
nit: not sure we need these details in this readme
There was a problem hiding this comment.
Thanks for the review! have trimmed the README, appreciate you setting up the CI mirror
|
Ah I should have caught this before - we require verified signatures on commits for us to merge. Please squash + sign + force-push. |
Signed-off-by: Muhammadjon Marufov <marufov254@gmail.com>
79889df to
835047c
Compare
|
@alangenfeld Squashed into one signed commit and force-pushed, github shows it as verified now. Thanks! |
Description
Fixes #4628.
After a 429,
RetryAgentcan reuse the body consumed byfetch, causingUND_ERR_REQ_CONTENT_LENGTH_MISMATCH. Retry stream appends abovefetchusing preserved bytes and the existing throttle budget and invocation deadline. Keeping globalfetchpreserves Vercel's outgoing-request observability.Transport retries are limited to
ECONNREFUSED,ENOTFOUND,EAI_AGAIN, andUND_ERR_CONNECT_TIMEOUT. This narrows the previous dispatcher policy: other network errors surface without replay. Stream close keeps its separate retry policy.How did you test your changes?
world-vercelsuite, package build/typecheck, tracked-file Biome, and changeset validation pass locally. Full monorepo tests stop at missing Cargo.PR Checklist - Required to merge
@workflow/world-vercel.git commit --signoffon your commits).@vercel/workflowin a comment once the PR is ready, and the above checklist is complete.