Skip to content

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

@JNSStudios

Description

@JNSStudios

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 (5a30da0) - 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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    For team assessment

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions