OpenRA/OpenRA · error · Exception
Failed to generate map metadata
Error message
Failed to generate map metadata
What it means
A matching generator was found, but its TryGenerateMetadata returned false, meaning it rejected the generation arguments (e.g. invalid size, tileset, or player count) and produced no metadata.
Source
Thrown at OpenRA.Game/Map/MapPreview.cs:488
newData.Class = MapClassification.Generated;
newData.Status = MapStatus.Generatable;
newData.Title = args.Title;
newData.Author = args.Author;
newData.TileSet = args.Tileset;
newData.GenerationArgs = args;
newData.MapFormat = Map.CurrentMapFormat;
try
{
var generator = modData.DefaultRules.Actors[SystemActors.EditorWorld]
.TraitInfos<IMapGeneratorInfo>()
.FirstOrDefault(info => info.Type == args.Generator);
if (generator == null)
throw new Exception($"Unknown map generator type {args.Generator}");
if (!generator.TryGenerateMetadata(modData, args, out var players, out var ruleDefinitions))
throw new Exception("Failed to generate map metadata");
newData.Players = players;
newData.PlayerCount = newData.Players.Players.Count(x => x.Value.Playable);
newData.SetCustomRules(modData, this, ruleDefinitions, null);
// Placeholder to satisfy server-side lint checks
newData.SpawnPoints = Exts.MakeArray(newData.PlayerCount, i => new CPos(i, i)).ToImmutableArray();
}
catch (Exception e)
{
Log.Write("debug", "Map generation failed with error:");
Log.Write("debug", e);
newData.Status = MapStatus.Unavailable;
}
lock (syncRoot)
innerData = newData;View on GitHub (pinned to a520984d91)
Solutions
- Inspect the generator's TryGenerateMetadata implementation to see which args it rejects.
- Validate generation args (size, tileset, player count) against the generator's documented limits before calling.
- Check the debug log around the failure for the generator's internal reason.
Defensive patterns
Strategy: try-catch
Validate before calling
if (!generator.TryGenerateMetadata(modData, args, out var players, out var rules))
throw new Exception($"Generator {generator.Type} rejected args: size={args.Size} tileset={args.Tileset}"); Try / catch
try { /* generate metadata */ }
catch (Exception e) when (e.Message.Contains("Failed to generate map metadata"))
{ /* inspect args vs generator limits */ } Prevention
- Validate size/tileset/player-count against the generator's limits before calling.
- Inspect TryGenerateMetadata internals for rejection conditions.
- Log args on failure for diagnosis.
When it happens
Trigger: MapPreview metadata path: generator != null but generator.TryGenerateMetadata(modData, args, ...) returns false.
Common situations: Generation args with an unsupported map size, missing tileset, or out-of-range player count; a generator implementation that imposes limits the caller exceeded.
Related errors
- Required file {required} not present in this map
- Not a valid map\n File: {package.Name}
- Required file map.yaml not present in this map
- Unknown map generator type {args.Generator}
- Unknown map generator type {GenerationArgs.Generator}
AI-assisted analysis of OpenRA/OpenRA@a520984d91 (2026-08-13).
Data as JSON: /api/errors/9c38a1f42c6c4c46.
Report an issue: GitHub.