godotengine / godotengine/godot

CI artifacts can't be used to export projects, PCK version mismatch reported

Open
#112,461 7 comments 0 reactions 0 assignees View on GitHub
bug needs testing topic:buildsystem
Dominant language
C++
Stars
117k
Forks
26.8k
PR merge metrics
PR metrics pending

Description

### Tested versions

Reproducible in:
(used PR version of engine available here: https://github.com/godotengine/godot/actions/runs/17751041443)
Editor: `4.6.dev.gh-103553.5a30da07b` (Windows, x86_64)
Windows template used for export: `4.6.dev.gh-103553.5a30da07b` (godot.windows.template_release.x86_64.exe)
Exported EXE --version: `4.6.dev.gh-103553.5a30da07b`

A Godot Discord user with the "Godot Senior" role remarked that "The version check in Godot’s export system has always been a bit picky, it doesn’t really handle “dev” or “PR” suffixes gracefully."

### System information

`Godot v4.6.dev (`5a30da07b`) - Windows 11 (build 26100) - Multi-window, 1 monitor - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 2060 (NVIDIA; 32.0.15.8157) - Intel(R) Core(TM) i5-9600K CPU @ 3.70GHz (6 threads) - 31.93 GiB memory`

### Issue description

When exporting from a dev/PR build of the editor, the PCK header stores only numeric version fields (major.minor.patch). This tags the pack as 4.x.0 even though the editor/runtime identify as 4.x.dev. On launch, the loader compares numeric tuples only and treats 4.x.0 (stable) as newer than 4.x.dev (pre-release), rejecting the pack with the message: ERROR: Pack created with a newer version of the engine: 4.x.0.

This occurs even when:
- Editor, template EXE, and exported EXE all report the same dev version via `--version`.
- Running the EXE in an empty folder (no sidecar .pck present).
- Running a template with `--main-pack` against the freshly exported .pck.

**Expected**:
A 4.x.dev runtime should be allowed to load a pack produced by the same line (same major/minor/patch) from a dev/PR editor, or there should be an explicit opt-in to allow it.
**Actual**: The pack is rejected as “newer” because the comparison ignores pre-release status and uses numeric (major, minor, patch) only.

### Steps to reproduce

1. Use a 4.x.dev editor build (e.g., `4.6.dev.gh-103553.5a30da07b`) and matching 4.x.dev Windows export template. (The editor and template I used is available here : https://github.com/godotengine/godot/actions/runs/17751041443)
2. Create a minimal project (or use the template I provide later).
3. Export Windows Release with:
- Architecture: x86_64
- Embed PCK: On
- Export Console Wrapper: No
- Code signing: Off
- Resources: Export all resources
4. Copy the exported EXE to a brand-new empty folder and run it via the terminal.
5. Observe:
`ERROR: Pack created with a newer version of the engine: 4.x.0.`
6. (optional) Export with "Embed PCK: Off" to get a PCK file alongside your EXE, then run:
`godot.windows.template_release.x86_64.exe --main-pack "(path to pack name).pck"`
(results in the same error)

Sample commands:
```
godot.windows.editor.x86_64.exe --version
4.6.dev.gh-103553.5a30da07b

godot.windows.template_release.x86_64.exe --version
4.6.dev.gh-103553.5a30da07b

".\exported_game.exe" --version
4.6.dev.gh-103553.5a30da07b

# Running the exported EXE (with no flags) prints:
ERROR: Pack created with a newer version of the engine: 4.6.0.
```

### Minimal reproduction project (MRP)

[export version mismatch test project.zip](https://github.com/user-attachments/files/23380984/export.version.mismatch.test.project.zip)

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the mismatch with the linked CI editor and Windows template, using the minimal reproduction project and the documented --version and --main-pack commands. Trace the export pack header version and runtime comparison; done means a matching dev/PR editor and template can launch the exported project without the newer-version error.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
build-system, game-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.