CNA-GAP-052: Local gamer services have no catalogue, presence or profile data: achievement metadata is empty, Achievement::GetPicture throws, presence is never published and privileges are a fixed permissive constant
Evidence basis: source-verified at the pinned commit; tests exist (not executed for this page). Claims on this page were checked by reading the CNA source at commit 009d40f5; unless a sentence says otherwise, nothing here was built or executed. Nothing on this page was executed unless the Evidence section says so.
Achievements come back with only key, earned state and time; GetPicture throws NotImplementedException; SetPresenceModeStringEXT does nothing; GamerPrivileges allows everything and nothing enforces it; GamerProfile is synthetic except Region.
- Identifier
CNA-GAP-052- Category
- Functional gap
- Subsystem
- Networking & gamer services
- Status
- Open
- Verified against
- CNA
009d40f5(009d40f5dd085c4e674d3479675fac84b12b3e0a) - Evidence basis
- Source-verified: read at TARGET, not executed
- Tests touching this area
- Yes: see Current tests
- Affected contract
- Achievement (Name, Description, GamerScore, DisplayBeforeEarned, GetPicture), GamerPresence, GamerPrivileges, GamerProfile
Expected behaviour
XNA's gamer services return the title's achievement catalogue, publish presence, and report the account's real privileges and profile.
Actual behaviour at TARGET
SignedInGamer::EndGetAchievements in SignedInGamer.cpp builds each achievement with empty name and description and fixed flags (“Name/Description/GamerScore/DisplayBeforeEarned have no local source of truth”); Achievement::GetPicture in Achievement.cpp throws NotImplementedException. GamerPresence::SetPresenceModeStringEXT is empty, GamerPrivileges.cpp initialises every privilege to allowed/Everyone, and GamerProfile.cpp fills everything except Region with defaults.
Source locations
modules/gamer-services/src/Xna/SignedInGamer.cpp— EndGetAchievements: empty metadatamodules/gamer-services/src/Xna/Achievement.cpp— Achievement::GetPicture throws NotImplementedExceptionmodules/gamer-services/src/Xna/GamerPresence.cpp— SetPresenceModeStringEXT is emptymodules/gamer-services/src/Xna/GamerPrivileges.cpp— fixed permissive valuesmodules/gamer-services/src/Xna/GamerProfile.cpp— synthetic profile, real Region
Evidence
Checked by reading at 009d40f5; not executed.
Focused reproduction
No focused reproduction is known. Nothing has been invented here; the evidence above is what exists.
Current tests
GamerServicesGamerTests.cpp covers awarding and reading local achievements.
Regression test
If a local catalogue is added (for example a title file), a test that the metadata and picture round-trip.
Blast radius
Games that list achievements with names and pictures, show presence, or gate features on privileges.
Workaround
Keep achievement metadata and pictures in the game's own content.
Related pages
The same subject is explained at several altitudes. These are the neighbouring pages at each one.
- Internals
- Gamer services internals: gamers
- Known issues
- Functional gap index