Creation of a payment customization function - Wasm compilation error

Topic summary

A developer encounters a WebAssembly (Wasm) compilation error when deploying a JavaScript payment customization function using yarn deploy at step 8 of Shopify’s getting-started guide.

Environment:

  • Shopify CLI version 3.44.1
  • Node version 18.15.0

Troubleshooting suggestions:

  • Run deployment with --verbose flag to capture detailed logs
  • Execute npm run build from the extension folder to check for build errors
  • Update to latest CLI using npm run shopify upgrade
  • Verify the .wasm file exists in the extension’s dist folder

Root cause identified:
Another user resolved this identical issue in their Bitbucket pipeline deployment. The problem stems from javy (JavaScript-to-Wasm compiler) requiring glibc version 2.31 or higher on Linux systems. Their Alpine-based Docker container with gcompat installed failed to meet this requirement. Switching to a Debian-based container resolved the compilation issue and generated the Wasm output successfully.

The discussion remains open for the original poster’s resolution.

Summarized with AI on November 19. AI used: claude-sonnet-4-5-20250929.

I would like to take a first step with creating Javascript payment customizations, but I’m stuck on step 8

https://shopify.dev/docs/apps/checkout/payment-customizations/getting-started

When deploying the JavaScript function with yarn deploy, I get a compilation error

Node Version 18.15.0

Shopify Cli Version 3.44.1

Thanks.

Can you try running this with the --verbose flag? Or perhaps do a ‘npm run build’ from the extension folder to see if there are any build errors? Does the wasm exist in the extension ‘dist’ folder?

Lastly you might try updating to the latest CLI – ‘npm run shopify upgrade’

Cheers,

Nick

We experienced this exact issue when setting up a Bitbucket pipeline to deploy our functions.

Going through the verbose logging we could see javy was being called using npm exec, however there was no wasm output generated in the dist directory. Logging also showed no errors except for an error similar to the original post saying there was no wasm.

Checking the javy repository, it turns out there is a requirement for glibc 2.31 or greater for running the official javy binaries on linux. Our pipeline was running in a docker container based on alpine with gcompat installed. We switched this to a debian based container which resolved our issue.

1 Like