cli web export only shows $GODOT_HEAD_INCLUDE

Godot Version

tested on 4.3 and 4.4.1

Question

I’m trying to run a cli web export of my godot project but when I upload the project to itch.io the project doesn’t load and only shows $GODOT_HEAD_INCLUDE . But if I export via the editor (Project → Export → Web preset-> export) I am able to upload that to itch.io and it loads the project successfully.

Picture of the cli export uploaded on itch.io:

I used the command ~/bin/godot-appimages/Godot_v4.3_linux.x86_64 --headless --path ~/workspace/test-game/10-game-challenge/3-frogger --export-debug Web ../../../game-export/3-frogger which I made by looking at the godot commandline doc.

web export cli output
> ~/bin/godot-appimages/Godot_v4.3_linux.x86_64  --headless --path ~/workspace/test-game/10-game-challenge/3-frogger  --export-debug Web ../../../game-export/3-frogger
Godot Engine v4.3.stable.official.77dcf97d8 - https://godotengine.org

savepack: begin: Packing steps: 102
	savepack: step 2: Storing File: res://.godot/imported/2025-02-10-Frogger-game-tileset.png-d8c7bba77a1a6ab92d83b3e2dc061d67.ctex
	savepack: step 2: Storing File: res://assets/Tilemap/2025-02-10-Frogger-game-tileset.png.import
	savepack: step 7: Storing File: res://.godot/imported/2025-02-10-Frogger-game.png-0fa9ed92f655e90a432f84d7a652eb96.ctex
	savepack: step 7: Storing File: res://assets/2025-02-10-Frogger-game.png.import
	savepack: step 13: Storing File: res://.godot/exported/133200997/export-98b16e5f922f6e624cca47c780e847c2-car_enemy.scn
	savepack: step 19: Storing File: res://enemy.gdc
	savepack: step 25: Storing File: res://.godot/exported/133200997/export-ec12bd2205a8e44213188668d747d7fa-enemy.scn
	savepack: step 31: Storing File: res://enemy_spawn_point.gdc
	savepack: step 37: Storing File: res://.godot/exported/133200997/export-a00b7951087b003baca162fcc4a0a8ef-enemy_spawn_point.scn
	savepack: step 43: Storing File: res://frog.gdc
	savepack: step 49: Storing File: res://.godot/exported/133200997/export-fcda5e9fbbd5a4c23fd00cabb2450d76-frog.scn
	savepack: step 54: Storing File: res://.godot/exported/133200997/export-fea0713142b841930983ffbbd953a486-gator_enemy.scn
	savepack: step 60: Storing File: res://hud.gdc
	savepack: step 66: Storing File: res://.godot/exported/133200997/export-f4cf891e5f7a93b93d9b27cfb8401ccb-hud.scn
	savepack: step 72: Storing File: res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex
	savepack: step 72: Storing File: res://icon.svg.import
	savepack: step 78: Storing File: res://main.gdc
	savepack: step 84: Storing File: res://.godot/exported/133200997/export-3070c538c03ee49b7677ff960a3f5195-main.scn
	savepack: step 90: Storing File: res://water_log.gdc
	savepack: step 96: Storing File: res://.godot/exported/133200997/export-10885b4166262d85ba4521238c053db1-water_log.scn
	savepack: step 96: Storing File: res://car_enemy.tscn.remap
	savepack: step 96: Storing File: res://enemy.gd.remap
	savepack: step 96: Storing File: res://enemy.tscn.remap
	savepack: step 96: Storing File: res://enemy_spawn_point.gd.remap
	savepack: step 96: Storing File: res://enemy_spawn_point.tscn.remap
	savepack: step 96: Storing File: res://frog.gd.remap
	savepack: step 96: Storing File: res://frog.tscn.remap
	savepack: step 96: Storing File: res://gator_enemy.tscn.remap
	savepack: step 96: Storing File: res://hud.gd.remap
	savepack: step 96: Storing File: res://hud.tscn.remap
	savepack: step 96: Storing File: res://main.gd.remap
	savepack: step 96: Storing File: res://main.tscn.remap
	savepack: step 96: Storing File: res://water_log.gd.remap
	savepack: step 96: Storing File: res://water_log.tscn.remap
	savepack: step 96: Storing File: res://.godot/global_script_class_cache.cfg
	savepack: step 96: Storing File: res://icon.svg
	savepack: step 96: Storing File: res://.godot/uid_cache.bin
	savepack: step 96: Storing File: res://project.binary
savepack: end

I am able to do a Linux export via cli and that does work. Command: ~/bin/godot-appimages/Godot_v4.3_linux.x86_64 --headless --path ~/workspace/test-game/10-game-challenge/3-frogger --export-debug Linux ../../../game-export/3-frogger

When I check the “3-Frogger.html” (what gets changed to index.html when uploaded to itch.io) I see that the broken cli web export has these godot vars like $GODOT_HEAD_INCLUDE and $GODOT_PROJECT_NAME vs the editor has real values there:

snippet of 3-Frogger.html from cli export
#status-notice {
	background-color: #5b3943;
	border-radius: 0.5rem;
	border: 1px solid #9b3943;
	color: #e0e0e0;
	font-family: 'Noto Sans', 'Droid Sans', Arial, sans-serif;
	line-height: 1.3;
	margin: 0 2rem;
	overflow: hidden;
	padding: 1rem;
	text-align: center;
	z-index: 1;
}
		</style>
		$GODOT_HEAD_INCLUDE
	</head>
	<body>
		<canvas id="canvas">
			Your browser does not support the canvas tag.
		</canvas>

		<noscript>
			Your browser does not support JavaScript.
		</noscript>

		<div id="status">
			<img id="status-splash" src="$GODOT_SPLASH" alt="">
			<progress id="status-progress"></progress>
			<div id="status-notice"></div>
		</div>

		<script src="$GODOT_URL"></script>
		<script>
const GODOT_CONFIG = $GODOT_CONFIG;
const GODOT_THREADS_ENABLED = $GODOT_THREADS_ENABLED;
const engine = new Engine(GODOT_CONFIG);

(function () {
snippet of 3-Frogger.html from editor export
#status-notice {
	background-color: #5b3943;
	border-radius: 0.5rem;
	border: 1px solid #9b3943;
	color: #e0e0e0;
	font-family: 'Noto Sans', 'Droid Sans', Arial, sans-serif;
	line-height: 1.3;
	margin: 0 2rem;
	overflow: hidden;
	padding: 1rem;
	text-align: center;
	z-index: 1;
}
		</style>
		<link id="-gd-engine-icon" rel="icon" type="image/png" href="3-Frogger.icon.png" />
<link rel="apple-touch-icon" href="3-Frogger.apple-touch-icon.png"/>

	</head>
	<body>
		<canvas id="canvas">
			Your browser does not support the canvas tag.
		</canvas>

		<noscript>
			Your browser does not support JavaScript.
		</noscript>

		<div id="status">
			<img id="status-splash" src="3-Frogger.png" alt="">
			<progress id="status-progress"></progress>
			<div id="status-notice"></div>
		</div>

		<script src="3-Frogger.js"></script>
		<script>
const GODOT_CONFIG = {"args":[],"canvasResizePolicy":2,"ensureCrossOriginIsolationHeaders":true,"executable":"3-Frogger","experimentalVK":false,"fileSizes":{"3-Frogger.pck":31968,"3-Frogger.wasm":43016933},"focusCanvas":true,"gdextensionLibs":[]};
const GODOT_THREADS_ENABLED = false;
const engine = new Engine(GODOT_CONFIG);

(function () {