Provide environment information
- Trigger.dev GitHub integration cloud builder
@trigger.dev/sdk: 4.5.9
- Trigger.dev CLI shown in build: 4.5.9
- Package manager: pnpm 11.18.0 via Corepack
- Repository Node configuration:
.nvmrc = 24 and engines.node = 24.x
- Failing pre-install builder runtime: Node 20.20.2
- Previous working Trigger runtime: Node 22.16.0
- Trigger config is at the repository root
Describe the bug
The stable node-24 runtime label is not selected correctly by the GitHub integration before dependency installation.
With this configuration:
export default defineConfig({
runtime: 'node-24',
// ...
});
the deployment log reports:
Dependency installation then runs on Node 20.20.2. Corepack downloads the repository's pinned pnpm 11.18.0, which requires Node 22.13 or newer, and the build fails:
warn: This version of pnpm requires at least Node.js v22.13
warn: The current version of Node.js is v20.20.2
Error [ERR_UNKNOWN_BUILTIN_MODULE]: No such built-in module: node:sqlite
Changing only the runtime label to the deprecated compatibility alias works:
runtime: 'experimental-node-24'
The build then succeeds under Node 24. However, its logs warn that experimental-node-24 is deprecated and tell us to use node-24, which is the label that triggers the Node 20 fallback.
Expected behaviour: runtime: 'node-24' should make the GitHub integration report Build runtime: node-24 and use Node 24 before Corepack installs dependencies.
Reproduction repo
To reproduce
- Use Trigger.dev 4.5.9 with a GitHub integration deployment.
- Pin pnpm 11.18.0 in
package.json.
- Set
runtime: 'node-24' in the root trigger.config.ts.
- Trigger a deployment from GitHub.
- Observe
Build runtime: node, followed by dependency installation on Node 20.20.2 and the pnpm node:sqlite failure.
- Change only the runtime to
experimental-node-24 and redeploy.
- Observe that the deployment succeeds on Node 24, but emits the deprecation warning recommending the broken stable label.
Additional information
This is a regression from node-22. An older deployment of the same repository reported:
It installed the same pnpm 11.18.0 successfully and built a final image based on Node 22.16.0.
Trigger.dev 4.5.9's runtime resolver accepts both labels and normalises experimental-node-24 to node-24, so the failure appears to be in the GitHub integration's pre-install runtime selection rather than the task image build itself.
Provide environment information
@trigger.dev/sdk: 4.5.9.nvmrc= 24 andengines.node=24.xDescribe the bug
The stable
node-24runtime label is not selected correctly by the GitHub integration before dependency installation.With this configuration:
the deployment log reports:
Dependency installation then runs on Node 20.20.2. Corepack downloads the repository's pinned pnpm 11.18.0, which requires Node 22.13 or newer, and the build fails:
Changing only the runtime label to the deprecated compatibility alias works:
runtime: 'experimental-node-24'The build then succeeds under Node 24. However, its logs warn that
experimental-node-24is deprecated and tell us to usenode-24, which is the label that triggers the Node 20 fallback.Expected behaviour:
runtime: 'node-24'should make the GitHub integration reportBuild runtime: node-24and use Node 24 before Corepack installs dependencies.Reproduction repo
node-24: https://github.com/mbuckley2000/owlscran-website/commit/b6546b5596ab2b0aba26ba94f5a027f73ee4d174To reproduce
package.json.runtime: 'node-24'in the roottrigger.config.ts.Build runtime: node, followed by dependency installation on Node 20.20.2 and the pnpmnode:sqlitefailure.experimental-node-24and redeploy.Additional information
This is a regression from
node-22. An older deployment of the same repository reported:It installed the same pnpm 11.18.0 successfully and built a final image based on Node 22.16.0.
Trigger.dev 4.5.9's runtime resolver accepts both labels and normalises
experimental-node-24tonode-24, so the failure appears to be in the GitHub integration's pre-install runtime selection rather than the task image build itself.