get_server_status reports timeSinceStartS: 0 for a field the upstream /info does not send #214

Closed
opened 2026-08-12 20:35:16 +00:00 by coilyco-ops · 0 comments
Member

Symptom

get_server_status returns:

"cycle": { "daysRunning": 39, "daysUntilMeteor": 20, "timeSinceStartS": 0, ... }

The upstream game server does not send that field. Full top-level key list from http://eco.coilysiren.me:3001/info, fetched 2026-08-12 ~19:38 UTC, contains no key matching Time*:

Access, ActiveAndOnlinePlayers, AdminOnline, Animals, Category, CollaborationLevel,
DaysRunning, DaysUntilMeteor, Description, DetailedDescription, DiscordAddress,
DistributionStationItems, EconomyDesc, Exhaustion*, External, GameSpeed, HasMeteor,
HasPassword, IsLAN, IsPaused, Language, Laws, OnlinePlayers, OnlinePlayersNames,
PeakActivePlayers, Plants, Playtimes, Premium*, ServerAchievementsDict,
ShelfLifeMultiplier, SimulationLevel, TotalCulture, TotalPlayers, Version,
WebPort, WorldSize

So the 0 is a default for an absent field, not a measurement.

Why it is worth fixing

timeSinceStartS: 0 reads as "the server just restarted." That is a specific, wrong, and load-bearing claim.

It cost real time today: community members reported a suspected time skip in #admins on 2026-08-12, and this field is exactly what someone would reach for to check elapsed time. It answers confidently and incorrectly. Zero and unknown are different states and a telemetry surface should not conflate them — particularly one whose consumers include LLM agents that will not question a plausible-looking number.

Fix

Absent upstream fields should surface as null or be omitted, never defaulted to 0. Worth a pass over the rest of the mapping for the same pattern rather than patching this one field — any numeric field defaulted on absence has the same defect.

Acceptance

  • timeSinceStartS is null/omitted when upstream does not supply it.
  • No numeric field in the get_server_status mapping defaults to 0 on absence.
  • A consumer can distinguish "zero" from "not reported."

Origin

Split out of coilyco-gaming/eco-ops#73, which flagged it as a secondary observation while investigating TotalCulture: 0.0. That one is genuinely upstream; this one is ours.

## Symptom `get_server_status` returns: ```json "cycle": { "daysRunning": 39, "daysUntilMeteor": 20, "timeSinceStartS": 0, ... } ``` The upstream game server does not send that field. Full top-level key list from `http://eco.coilysiren.me:3001/info`, fetched 2026-08-12 ~19:38 UTC, contains **no key matching `Time*`**: ``` Access, ActiveAndOnlinePlayers, AdminOnline, Animals, Category, CollaborationLevel, DaysRunning, DaysUntilMeteor, Description, DetailedDescription, DiscordAddress, DistributionStationItems, EconomyDesc, Exhaustion*, External, GameSpeed, HasMeteor, HasPassword, IsLAN, IsPaused, Language, Laws, OnlinePlayers, OnlinePlayersNames, PeakActivePlayers, Plants, Playtimes, Premium*, ServerAchievementsDict, ShelfLifeMultiplier, SimulationLevel, TotalCulture, TotalPlayers, Version, WebPort, WorldSize ``` So the `0` is a default for an absent field, not a measurement. ## Why it is worth fixing `timeSinceStartS: 0` reads as "the server just restarted." That is a specific, wrong, and load-bearing claim. It cost real time today: community members reported a suspected time skip in `#admins` on 2026-08-12, and this field is exactly what someone would reach for to check elapsed time. It answers confidently and incorrectly. Zero and unknown are different states and a telemetry surface should not conflate them — particularly one whose consumers include LLM agents that will not question a plausible-looking number. ## Fix Absent upstream fields should surface as `null` or be omitted, never defaulted to `0`. Worth a pass over the rest of the mapping for the same pattern rather than patching this one field — any numeric field defaulted on absence has the same defect. ## Acceptance - `timeSinceStartS` is `null`/omitted when upstream does not supply it. - No numeric field in the `get_server_status` mapping defaults to `0` on absence. - A consumer can distinguish "zero" from "not reported." ## Origin Split out of `coilyco-gaming/eco-ops#73`, which flagged it as a secondary observation while investigating `TotalCulture: 0.0`. That one is genuinely upstream; this one is ours.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
coilyco-gaming/eco-app#214
No description provided.