Repository navigation
fix: File inputs appended to form data twice - #29
Merged
Merged
Conversation
File extends Blob, so a File input matched both the File and Blob branches and was appended twice, causing jobs to fail with "one input is required, but 2 received". Co-Authored-By: Claude Fable 5 <[email protected]>
CI's node-test jobs use the runner's global tsc (currently TS 7), which removed the node10 moduleResolution and baseUrl options. module/moduleResolution node16 still emits CommonJS here (no "type": "module" in package.json) and builds on both TS 5 and TS 7. Co-Authored-By: Claude Fable 5 <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Problem
Passing a
Fileas a job input causes the SDK to append it to the multipart form twice, so single-input job types fail with:(reported by a customer against
inference.mask-background.v1, jobf4082120-4b42-4452-8866-f84d219cb853)Cause
The input-type checks in
v2/index.tswere sequentialifstatements. SinceFileextendsBlob, aFileinput matched both theFilebranch (appended with its real name) and theBlobbranch (appended again asimage.jpg).Fix
Make the branches mutually exclusive with
else if, checkingFilefirst.Blob,Uint8Array, andArrayBufferinputs were already mutually exclusive and are unaffected.Verification
Reproduced the double-append with the old logic (
formData.getAll("input").length === 2for oneFile), confirmed the new logic appends exactly one entry per input for all four input types, andtsc --noEmitpasses.🤖 Generated with Claude Code