Hi CubeCoders team,
Prefacing everything below that I have had OpenAI Codex working on this
I have used Codex to assist me with the Self Hosted servers since the initial release
Below is the report from Codex, after we tried debugging my existing instance, then created a brand new one to compare what was missing
I found what appears to be an AMP bootstrap/update issue affecting the latest Dune: Awakening story content.
Environment:
-
AMP 2.7.2.8
-
Linux/Podman deployment
-
Dune dedicated server Steam build
25396338 -
Existing server reproduced against a completely fresh AMP Dune instance and database
Symptom:
After the latest update, entering the new Arrakeen Spaceport story location left the client indefinitely displaying:
Connecting to Arrakeen Spaceport
It never advanced to the normal loading screen. Starting Story_HeighlinerDungeon did not help because that is a separate map.
The affected story flow appears to be:
-
Arrakeen Spaceport / Orbital Monitor
-
Destroyed Zanovar
Root cause:
Both an upgraded server and a completely fresh installation seeded only 31 rows in dune.world_partition.
The following maps were present in director_config.ini, DefaultGame.ini, and world-template.yaml, but absent from dune.world_partition:
-
CB_Story_DestroyedZanovar -
CB_Story_OrbitalMonitor -
CB_Arrakis_Story_Paranoid_PrayerRoom -
CB_Arrakis_Story_Glutton_DiningRoom -
CB_Arrakis_Generic_Sietch_Room
The package contains:
duneawakening/server/scripts/setup/update_maps.sh
That script lists all these maps. However, its update_maps() logic checks whether a map already exists in:
.spec.serverGroup.template.spec.sets
It only calls add_map() when the server-set entry is missing.
The current world template already contains server-set definitions for the new maps, so that check returns true. Consequently, add_map() is skipped and the corresponding database world-partition entry is never added.
In other words, the database-partition check and server-set check appear to be incorrectly coupled.
Evidence from a pristine installation:
-
Fresh download and first boot completed successfully.
-
Steam build was
25396338. -
Fresh database still contained only partitions 1–31.
-
No Zanovar, Orbital Monitor, Prayer Room, Dining Room, or generic Sietch Room partition existed.
-
The Director configuration nevertheless contained sections for Destroyed Zanovar and Orbital Monitor.
-
DefaultGame.iniallowed both command-line levels.
Validated workaround:
I added the missing maps through Funcom’s existing database helper:
SELECT dune.add_partition_unique(
'CB_Story_DestroyedZanovar',
'{"box":{"max_x":1,"max_y":1,"min_x":0,"min_y":0},"type":"box2d_array"}',
0
);
SELECT dune.add_partition_unique(
'CB_Story_OrbitalMonitor',
'{"box":{"max_x":1,"max_y":1,"min_x":0,"min_y":0},"type":"box2d_array"}',
0
);
SELECT dune.add_partition_unique(
'CB_Arrakis_Story_Paranoid_PrayerRoom',
'{"box":{"max_x":1,"max_y":1,"min_x":0,"min_y":0},"type":"box2d_array"}',
0
);
SELECT dune.add_partition_unique(
'CB_Arrakis_Story_Glutton_DiningRoom',
'{"box":{"max_x":1,"max_y":1,"min_x":0,"min_y":0},"type":"box2d_array"}',
0
);
SELECT dune.add_partition_unique(
'CB_Arrakis_Generic_Sietch_Room',
'{"box":{"max_x":1,"max_y":1,"min_x":0,"min_y":0},"type":"box2d_array"}',
0
);
On the existing database, these became partitions 32–36 and received the expected generated labels:
-
DestroyedZanovar_0 -
OrbitalMonitor_0 -
ParanoidRoom_0 -
GluttonRoom_0 -
SietchTalab_0
I then created/materialized the corresponding AMP mock-Kubernetes ServerSetScale resources.
Both critical maps now start successfully:
-
CB_Story_OrbitalMonitor: ready/alive -
CB_Story_DestroyedZanovar: ready/alive
The original server now runs the five normal maps plus both story maps successfully.
Suggested fix:
-
Check/add
.spec.database.template.spec.deployment.spec.worldPartitionsindependently from.spec.serverGroup.template.spec.sets. -
Ensure
update_maps.shis invoked during both clean bootstrap and server updates. -
Allocate partition IDs from the actual current maximum because partition 31 is already occupied by
CB_SurvivalChallenge_Station_15in the database I tested. -
Materialize scale resources for newly added maps so on-demand travel can launch them.
I retained a pristine reproduction instance and can provide sanitized database output, AMP logs, Director configuration, or exact scale-resource payloads if useful.