Steam Deck Verified 2026 Autumn Refresh Rejects Build - Xbox Elite Controller Glyph Wrong After Steam Input Migration - How to Fix
Problem: Your build passed an older Steam Deck Verified check, but the autumn 2026 refresh rejects it because on-screen prompts show a generic Xbox face button while the reviewer plays with an Xbox Elite Wireless Controller or Xbox Wireless Controller (Series 2) paired to a Steam Deck through the Steam Input layer. Gameplay bindings work; glyph identity does not.
Who is affected now: Teams that migrated Steam Input configs in 2026 but kept legacy glyph APIs, VDF files that only declare xbox_one action sets, or Unity/Unreal prompt atlases that ignore controller archetype changes after hot-plug.
Fastest safe fix: Extend the VDF action manifest with xbox_elite_one, xbox_elite_two, and xbox_series_two action-set bindings mirroring your xbox_one map → switch runtime glyph queries to ISteamInput::GetGlyphPNGForActionOrigin → subscribe to SteamInputDeviceConnected_t and rebuild the glyph cache → verify with Deck Verified preflight and a Bluetooth Elite session on hardware.
Direct answer
The 2026 autumn Deck Verified refresh compares physical controller identity to prompt art returned by Steam Input. If your manifest only describes a generic Xbox pad, Steam returns a generic glyph even when an Elite is connected. Legacy GetGlyphForActionOrigin_Legacy paths increasingly fail refresh rules; GetGlyphPNGForActionOrigin plus complete VDF action sets for elite and Series 2 archetypes is the supported fix surface for native SDK integrations.
Why this issue spikes in 2026
- Autumn 2026 Deck Verified refresh tightened glyph routing for non-default Xbox hardware on Deck.
- Steam Input migration docs push PNG glyph APIs; legacy string glyph helpers linger in old samples.
- Fest and cert windows (including October Next Fest prep) overlap the refresh—teams discover rejection late.
- Bluetooth Elite on Deck is a common reviewer setup; Editor tests with a wired Xbox One pad do not reproduce it.
If your game uses Unity Input System only (no Steam Input API), see Steam Deck Controller Glyphs Wrong in Unity Input System for layout-detection fixes—then return here for Deck Verified cert when you ship Steam Input metadata and official glyph paths.
Symptoms and search phrases
- Preflight tool: glyph parity red on
xbox_elite_*rows. - Player report: “prompts show wrong Xbox buttons on Deck with Elite.”
GetGlyphForActionOrigin_Legacyreturns generic art fork_ESteamInputType_XboxEliteController.- Hot-plug Elite after launch leaves stale generic glyphs until restart.
- VDF contains
xbox_onebut noxbox_elite_one/xbox_elite_twostanzas.
Root causes (ordered)
- Incomplete VDF action sets — elite/Series 2 archetypes missing.
- Legacy glyph API still called in UI code.
- No device-connect handler — cache built once at boot with wrong pad type.
- Wrong action set active when querying glyphs (menu set vs gameplay set).
- Custom sprite atlas overrides Steam PNGs without archetype branches.
- Steam Input disabled in test build but Verified metadata claims full config.
Prerequisites
- Steamworks SDK integrated (C++ or binding equivalent).
- Steam Input VDF checked into
steam_input/(or your documented path). - Deck Verified documentation access in Steamworks partner site.
- Hardware or remote test: Steam Deck + Xbox Elite over Bluetooth (USB also test).
- Optional: 16 free Deck testing tools listicle for broader QA.
Fastest safe fix path
Step 1 - Audit the VDF manifest
Open steam_input/manifest.vdf (name may vary). Confirm action sets exist for:
xbox_onexbox_elite_onexbox_elite_twoxbox_series_two
Each should mirror bindings for gameplay actions (jump, interact, pause, etc.). Copy the xbox_one block, rename the set, and adjust only where Elite paddles map to unique actions.
Verification: Steam Input configurator in Steam client shows four Xbox-family sets without import warnings.
Step 2 - Migrate glyph queries to PNG API
Replace legacy calls:
// Avoid for 2026 refresh cert paths
// SteamInput()->GetGlyphForActionOrigin_Legacy(...)
EControllerActionOrigin origin = /* from active action */;
SteamInput()->GetGlyphPNGForActionOrigin(
origin,
ESteamInputGlyphSize_k_ESteamInputGlyphSize_Medium,
0 /* flags */
);
Load the returned PNG path or buffer into your UI texture cache. Use Medium for HUD; Small for compact prompts.
Verification: Logging the resolved origin enum shows k_ESteamController_XBoxElite_A (names vary by SDK version) when Elite is active—not a generic Xbox One origin for face buttons.
Step 3 - Refresh glyphs on device connect
void OnSteamInputDeviceConnected( SteamInputDeviceConnected_t *pCallback )
{
RebuildGlyphCacheForActiveController();
RefreshAllOnScreenPrompts();
}
Register in SteamAPI_Init path after SteamInput()->Init.
Verification: Connect Elite mid-session at main menu—prompts update within one frame tick without restart.
Step 4 - Deck hardware pass
- Install candidate build on Deck (desktop or Game mode).
- Pair Xbox Elite via Bluetooth.
- Open first gameplay scene with prompts visible.
- Capture screenshot per action (South/East/North/West).
- Compare against Steam’s reference glyph sheet in partner docs.
Verification: Preflight glyph parity green for elite rows; visual match on hardware.
Alternative fixes (edge cases)
A - Game uses only Unity Input System prompts
Keep Input System for gameplay. Add a thin native plugin or Steamworks.NET bridge that fetches Steam Input PNGs when SteamUtils()->IsSteamRunningOnSteamDeck() or when Steam Input is active. Do not duplicate art by hand for Elite—cert compares against Steam-provided glyphs.
B - Wrong action set during glyph query
Call SteamInput()->GetCurrentActionSet(handle) before GetGlyphPNGForActionOrigin. Menu schemes that remap South to “Confirm” must query glyphs after the menu set activates.
C - Series 2 misidentified as Elite
Log SteamInput()->GetInputTypeForHandle per connected handle. Map each enum to the correct VDF set before caching.
D - Custom atlas for “brand look”
Deck Verified refresh may still require archetype-correct silhouettes. If custom art is allowed for your SKU category, document deviation in submission notes—default path is Steam PNG parity.
Prevention checklist
- CI screenshot diff — elite, series_two, and xbox_one PNGs per action.
- VDF review in PRs — no gameplay action only on
xbox_one. - Device-connect unit test in smoke build (connect/disconnect simulation where SDK allows).
- Pair with playtest — playtest feedback tools tag
platform=deck+input=elite. - Freeze VDF before fest branch per branch naming parity.
- BUILD_RECEIPT notes Steam Input config hash when promoting demo builds.
Troubleshooting table
| Observation | Likely cause | Next step |
|---|---|---|
| Elite works, glyphs generic | Missing VDF elite sets | Step 1 |
| Restart fixes glyphs | No connect handler | Step 3 |
| Editor OK, Deck fails | No Linux/Deck test build | Step 4 |
| All Xbox types generic | Legacy API | Step 2 |
| Only menu wrong | Wrong action set | Alternative B |
| Preflight green, reviewer red | Stale build branch | Confirm build_id on depot |
Verification checklist (before resubmit)
- [ ] VDF includes
xbox_elite_one,xbox_elite_two,xbox_series_two - [ ] Runtime uses
GetGlyphPNGForActionOrigin - [ ]
SteamInputDeviceConnected_trefreshes UI cache - [ ] Bluetooth Elite session screenshots archived
- [ ] Preflight glyph parity green on all configured rows
- [ ] Steam Input config ships in depot referenced by app build
- [ ] No hard-coded generic Xbox sprite for all
Gamepadtypes
FAQ
Does this apply to keyboard-only Deck Verified titles?
No—only titles showing gamepad glyphs during review. If you hide prompts, confirm with your Steamworks rep; hidden prompts reduce but may not eliminate input checks.
Can I pass with only xbox_one if I block Elite?
Blocking unsupported controllers is a product decision; refresh rules still expect correct glyphs when Elite is supported. Blocking without documentation may fail UX review.
Unity Input System alone enough?
For Deck Verified glyph parity with Steam Input enabled, you need correct Steam glyph paths or certified equivalent—see the Unity-specific article linked above.
What changed in autumn 2026 vs 2025?
Stricter archetype-to-glyph matching during refresh; legacy API warnings became hard failures in preflight for many SKUs.
How long does the fix take?
2–4 hours for VDF duplication + API migration; +1 hour for hardware verification.
Related problems and links
- Steam Deck Controller Glyphs Wrong in Unity Input System — Input System layout vs Steam PNG glyphs
- Steamworks overlay missing in release build — ensure Steam client context for Input APIs
- 16 free Steam Deck Verified glyph and input testing tools (2026) — broader tool list
- Next Fest demo depot branch rules — ship Input config on fest branch
Outbound: Steam Input documentation (official partner docs for VDF and API surfaces).
Bookmark this page before your autumn 2026 Deck Verified resubmission. Share it with anyone maintaining steam_input/*.vdf so Elite glyphs stop failing refresh for the wrong API generation.