INCIDENT RUNBOOK
Fix: Edge Runtime Node Crypto Missing in Astro on AWS Lambda
Comprehensive architectural post-mortem and verified configuration patch for astro deployed in aws lambda production environments.
Automated Remediation ProtocolUpdated for 2026 Production
Facing edge-runtime-node-crypto-missing in CI/CD or runtime containers?
Review the verified configuration patches below. To automate incident triage and fine-tune your own internal agents, check out our production AI training datasets.
● Observed Terminal Error / Stack Trace
Error: Cannot find module 'node:crypto' from '/var/task/astro/dist/index.js'
at resolveModule (internal/modules/cjs/helpers.js:93:15)
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:1085:21)
at Function.Module._load (internal/modules/cjs/loader.js:933:27)
at Module.require (internal/modules/cjs/helpers.js:109:20)
at require (internal/modules/cjs/helpers.js:77:18)
at Object.<anonymous> (/var/task/astro/dist/index.js:1:18)Root Cause Analysis
The error occurs due to a runtime incompatibility between Astro and AWS Lambda's Edge runtime environment. Specifically, the `node:crypto` module is not available in the Edge runtime by default, causing Astro's internal dependencies to fail. This is because AWS Lambda's Edge runtime is based on a stripped-down version of Node.js, which excludes certain modules like `node:crypto` to minimize the runtime's footprint. Astro, however, relies on this module for certain cryptographic operations, leading to the `edge-runtime-node-crypto-missing` error.
● Configuration & Code Resolution
To fix this issue, you need to add the `node:crypto` module as a dependency in your `astro.config.js` file and configure AWS Lambda to include this module in the Edge runtime environment. Here's an example of how to modify your `astro.config.js` file:
module.exports = {
//... other configurations...
dependencies: [
//... other dependencies...
'node:crypto',
],
//... other configurations...
};
Additionally, you need to update your `wrangler.toml` file to include the `node:crypto` module in the Edge runtime environment:
[env.staging]
#... other configurations...
edge_runtime = 'nodejs16.x'
edge_environment = {
#... other environment variables...
NODE_OPTIONS = '--experimental-specifier-resolution=node'
}Verification & Build Command
To verify the resolution, run the following command in your terminal: `npx astro build && npx wrangler publish --env staging`. This command will rebuild your Astro project and redeploy it to AWS Lambda. After deployment, you can test your application to ensure that the `edge-runtime-node-crypto-missing` error is resolved.