diff --git a/.changeset/loose-stars-greet.md b/.changeset/loose-stars-greet.md new file mode 100644 index 000000000..f105947b1 --- /dev/null +++ b/.changeset/loose-stars-greet.md @@ -0,0 +1,5 @@ +--- +"@solidjs/start": patch +--- + +fix potentially incomplete first chunk for chunk readers diff --git a/packages/start/src/fns/serialization.ts b/packages/start/src/fns/serialization.ts index 4aae62c97..c7abc875e 100644 --- a/packages/start/src/fns/serialization.ts +++ b/packages/start/src/fns/serialization.ts @@ -167,10 +167,14 @@ export class SerovalChunkReader { } async next(): Promise<{ done: true; value: undefined } | { done: false; value: string }> { - // Check if the buffer is empty - if (this.buffer.length === 0) { + // Check if the buffer is empty or incomplete + if (this.buffer.length < 12) { // if we are already done... if (this.done) { + // incomplete stream + if (this.buffer.length !== 0) { + throw new Error("Malformed server function stream."); + } return { done: true, value: undefined,