vite-plugin-fable icon indicating copy to clipboard operation
vite-plugin-fable copied to clipboard

[transform] Received id mismatch! Got 4, expected 5' }

Open jkone27 opened this issue 6 months ago • 1 comments

Bug (not critical atm, see workarounds)

Error [ERR_UNHANDLED_ERROR]: Unhandled error. ('[transform] Received id mismatch! Got 4, expected 5')
    at JSONRPCEndpoint.emit (node:events:507:17)
    at JSONRPCTransform.<anonymous> (/Users/mac/Repositories/vite-feliz-solid/node_modules/ts-lsp-client/build/src/jsonRpcEndpoint.js:33:26)
    at JSONRPCTransform.emit (node:events:518:28)

Seems relatred to this code section in json rpc lib node_modules/ts-lsp-client/build/src/jsonRpcEndpoint.js

this.readableByline.on('data', (jsonRPCResponseOrRequest) => {
            const jsonrpc = JSON.parse(jsonRPCResponseOrRequest);
            logger_1.Logger.log(`[transform] ${jsonRPCResponseOrRequest}`, logger_1.LoggerLevel.DEBUG);
            if (Object.prototype.hasOwnProperty.call(jsonrpc, 'id')) {
                const jsonRPCResponse = jsonrpc;
                if (jsonRPCResponse.id === (this.nextId - 1)) {
                    this.client.receive(jsonRPCResponse);
                }
                else {
                    logger_1.Logger.log(`[transform] ${jsonRPCResponseOrRequest}`, logger_1.LoggerLevel.ERROR);
                    this.emit('error', `[transform] Received id mismatch! Got ${jsonRPCResponse.id}, expected ${this.nextId - 1}`);
                }
            }
            else {
                const jsonRPCRequest = jsonrpc;
                this.emit(jsonRPCRequest.method, jsonRPCRequest.params);
            }
        });

When does this happen?

The issue happens when modifying the same element multiple times in HMR it seems, for example a text content

  VITE v7.0.0  ready in 18479 ms

  ➜  Local:   http://localhost:5173/
  ➜  Network: use --host to expose
  ➜  press h + enter to show help
9:27:31 AM [vite] [fable]: transform: /Users/mac/Repositories/vite-feliz-solid/src/Index.fs
9:27:31 AM [vite] [fable]: transform: /Users/mac/Repositories/vite-feliz-solid/src/App.fs
9:27:52 AM [vite] [fable]: handleHotUpdate: enter for /Users/mac/Repositories/vite-feliz-solid/src/App.fs
9:27:52 AM [vite] [fable]: subscribe: /Users/mac/Repositories/vite-feliz-solid/src/App.fs
9:27:52 AM [vite] [fable]: fsharpFileChanged: 
/Users/mac/Repositories/vite-feliz-solid/src/App.fs
/Users/mac/Repositories/vite-feliz-solid/src/App.test.fs
/Users/mac/Repositories/vite-feliz-solid/src/Index.fs compiled
9:27:52 AM [vite] [fable]: handleHotUpdate: leave for /Users/mac/Repositories/vite-feliz-solid/src/App.fs
9:27:52 AM [vite] (client) hmr update /App.fs
9:27:52 AM [vite] [fable]: transform: /Users/mac/Repositories/vite-feliz-solid/src/App.fs
9:28:02 AM [vite] [fable]: handleHotUpdate: enter for /Users/mac/Repositories/vite-feliz-solid/src/App.fs
9:28:02 AM [vite] [fable]: subscribe: /Users/mac/Repositories/vite-feliz-solid/src/App.fs
9:28:02 AM [vite] [fable]: fsharpFileChanged: 
/Users/mac/Repositories/vite-feliz-solid/src/App.fs
/Users/mac/Repositories/vite-feliz-solid/src/App.test.fs
/Users/mac/Repositories/vite-feliz-solid/src/Index.fs compiled
9:28:02 AM [vite] [fable]: handleHotUpdate: leave for /Users/mac/Repositories/vite-feliz-solid/src/App.fs
9:28:02 AM [vite] (client) hmr update /App.fs
9:28:02 AM [vite] [fable]: transform: /Users/mac/Repositories/vite-feliz-solid/src/App.fs
9:28:11 AM [vite] [fable]: handleHotUpdate: enter for /Users/mac/Repositories/vite-feliz-solid/src/App.fs
9:28:11 AM [vite] [fable]: subscribe: /Users/mac/Repositories/vite-feliz-solid/src/App.fs
9:28:11 AM [vite] [fable]: handleHotUpdate: enter for /Users/mac/Repositories/vite-feliz-solid/src/App.fs
9:28:11 AM [vite] [fable]: subscribe: /Users/mac/Repositories/vite-feliz-solid/src/App.fs
node:events:509
    throw err; // Unhandled 'error' event
    ^

Error [ERR_UNHANDLED_ERROR]: Unhandled error. ('[transform] Received id mismatch! Got 4, expected 5')
    at JSONRPCEndpoint.emit (node:events:507:17)
    at JSONRPCTransform.<anonymous> (/Users/mac/Repositories/vite-feliz-solid/node_modules/ts-lsp-client/build/src/jsonRpcEndpoint.js:33:26)
    at JSONRPCTransform.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushObjectMode (node:internal/streams/readable:538:3)
    at Readable.push (node:internal/streams/readable:393:5)
    at JSONRPCTransform._transform (/Users/mac/Repositories/vite-feliz-solid/node_modules/ts-lsp-client/build/src/jsonRpcTransform.js:61:26)
    at Transform._write (node:internal/streams/transform:171:8)
    at writeOrBuffer (node:internal/streams/writable:572:12)
    at _write (node:internal/streams/writable:501:10)
    at Writable.write (node:internal/streams/writable:510:10)
    at Socket.ondata (node:internal/streams/readable:1009:22)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at Pipe.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ERR_UNHANDLED_ERROR',
  context: '[transform] Received id mismatch! Got 4, expected 5'
}

Node.js v22.16.0

Known Workarounds

restart vite server bun run dev will fix it

jkone27 avatar Jun 27 '25 07:06 jkone27

You could experiment with increasing https://github.com/fable-compiler/vite-plugin-fable/blob/d62671e8d90731d3b9e63ea37b2d4f4be19d8e80/index.js#L425

nojaf avatar Jun 27 '25 07:06 nojaf