Skip to content

Incorrect MIME type when loading WebAssembly module with Vite #132

@stdriz

Description

@stdriz

Description

When loading the libpg-query WebAssembly module via Vite, the streaming compile fails due to an incorrect MIME type (text/html), and the fallback ArrayBuffer instantiation errors out with a magic-word mismatch.

Reproduction

https://stackblitz.com/edit/reprolibpgquery-fqbyj4us?file=src/main.ts

Expected behavior

The .wasm module should be served with application/wasm and instantiate successfully.

Actual behavior

client:789 [vite] connecting...
client:912 [vite] connected.
libpg-query.js?v=c2aa8f51:219 wasm streaming compile failed: TypeError: Failed to execute 'compile' on 'WebAssembly': Incorrect response MIME type. Expected 'application/wasm'.
instantiateAsync @ libpg-query.js?v=c2aa8f51:219
await in instantiateAsync
createWasm @ libpg-query.js?v=c2aa8f51:251
(anonymous) @ libpg-query.js?v=c2aa8f51:2411
(anonymous) @ libpg-query.js?v=c2aa8f51:2569
libpg-query.js?v=c2aa8f51:220 falling back to ArrayBuffer instantiation
instantiateAsync @ libpg-query.js?v=c2aa8f51:220
await in instantiateAsync
createWasm @ libpg-query.js?v=c2aa8f51:251
(anonymous) @ libpg-query.js?v=c2aa8f51:2411
(anonymous) @ libpg-query.js?v=c2aa8f51:2569
libpg-query.js?v=c2aa8f51:208 failed to asynchronously prepare wasm: CompileError: WebAssembly.instantiate(): expected magic word 00 61 73 6d, found 3c 21 44 4f @+0
instantiateArrayBuffer @ libpg-query.js?v=c2aa8f51:208
await in instantiateArrayBuffer
instantiateAsync @ libpg-query.js?v=c2aa8f51:223
await in instantiateAsync
createWasm @ libpg-query.js?v=c2aa8f51:251
(anonymous) @ libpg-query.js?v=c2aa8f51:2411
(anonymous) @ libpg-query.js?v=c2aa8f51:2569
libpg-query.js?v=c2aa8f51:172 Aborted(CompileError: WebAssembly.instantiate(): expected magic word 00 61 73 6d, found 3c 21 44 4f @+0)
abort @ libpg-query.js?v=c2aa8f51:172
instantiateArrayBuffer @ libpg-query.js?v=c2aa8f51:209
await in instantiateArrayBuffer
instantiateAsync @ libpg-query.js?v=c2aa8f51:223
await in instantiateAsync
createWasm @ libpg-query.js?v=c2aa8f51:251
(anonymous) @ libpg-query.js?v=c2aa8f51:2411
(anonymous) @ libpg-query.js?v=c2aa8f51:2569
libpg-query.js?v=c2aa8f51:175 Uncaught (in promise) RuntimeError: Aborted(CompileError: WebAssembly.instantiate(): expected magic word 00 61 73 6d, found 3c 21 44 4f @+0). Build with -sASSERTIONS for more info.
    at abort (libpg-query.js?v=c2aa8f51:175:19)
    at instantiateArrayBuffer (libpg-query.js?v=c2aa8f51:209:13)
    at async createWasm (libpg-query.js?v=c2aa8f51:251:24)
    at async libpg-query.js?v=c2aa8f51:2411:27
abort @ libpg-query.js?v=c2aa8f51:175
instantiateArrayBuffer @ libpg-query.js?v=c2aa8f51:209
await in instantiateArrayBuffer
instantiateAsync @ libpg-query.js?v=c2aa8f51:223
await in instantiateAsync
createWasm @ libpg-query.js?v=c2aa8f51:251
(anonymous) @ libpg-query.js?v=c2aa8f51:2411
(anonymous) @ libpg-query.js?v=c2aa8f51:2569
Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions