Skip to content

bug: GitHub integration falls back to Node 20 for node-24 while deprecated alias works #4503

Description

@mbuckley2000

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:

Build runtime: node

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.

To reproduce

  1. Use Trigger.dev 4.5.9 with a GitHub integration deployment.
  2. Pin pnpm 11.18.0 in package.json.
  3. Set runtime: 'node-24' in the root trigger.config.ts.
  4. Trigger a deployment from GitHub.
  5. Observe Build runtime: node, followed by dependency installation on Node 20.20.2 and the pnpm node:sqlite failure.
  6. Change only the runtime to experimental-node-24 and redeploy.
  7. 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:

Build runtime: node-22

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.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions