Common failures and how to fix them. Most issues are one of: Steam was open while importing, the binary lost its execute bit in transit, or art was named for the wrong app ID.
- Steam was running during the import. Steam rewrites
shortcuts.vdfwhen it exits, wiping changes made while it was open. Fully quit Steam, re-run the importer, then reopen Steam. The importer refuses to write while Steam is running for exactly this reason. - No Linux binary was found. Run with
--dry-run: if the folder is listed as skipped ("no Linux executable found"), the game may be Windows-only (a.exe— use atype = "proton"recipe) or the binary is nested deeper than the scan goes. Point a recipe'sbinaryat the exact file. - Wrong Steam user. If you have multiple Steam accounts, pass
--user <steamID3>so it writes to the rightuserdata/<id>/.
- Missing execute bit. Copying over SFTP/USB/zip strips the
+xflag. The importer sets it automatically; if you bypassed it, runchmod +x ~/Games/<Game>/<binary>. - Missing data files. Godot games need their
.pck; LÖVE needs the.lovebeside (or fused into) the runtime. List them in the recipe'srequires_filesso the importer warns instead of registering a broken shortcut. - LÖVE with no runtime. A
.loveneeds aloveruntime on the Deck (Flatpak or AppImage) unless it's a fused Linux AppImage.
- Fetched into the wrong place. Art must end up in
<Game>/.deckport-art/before the import; the importer renames it to{appid}…in Steam'sgrid/folder. Re-rundeckport-artand check that folder exists. - Name didn't match on SteamGridDB.
deckport-art --dry-runshows the match it picked. If it's wrong, pass--name "Exact Title"(or set the recipe'ssgdb_id). - Stale art after a rename. If you renamed the game (changing its app ID), the
old grid files are orphaned.
--remove-missingcleans orphans whose folder is gone; otherwise delete the old{appid}*files fromgrid/.
no SteamGridDB API key— get a free key at steamgriddb.com and pass--api-keyor setSTEAMGRIDDB_API_KEY.- A
401on an image download — fixed in current builds (the public CDN rejects the API auth header). Update to the latest.
- SSH not enabled. Run
scripts/deck-enable-ssh.shon the Deck (Desktop Mode). SteamOS updates can revert the sshd enable — just re-run it; your games and shortcuts in/homesurvive. neither rsync nor scp found— install OpenSSH client on your PC (it ships with Windows 10+, macOS, and most Linux).rsyncis optional;scpis the fallback.- Created a literal
~folder — fixed in current builds; remote paths are no longer over-quoted. Update.
- The importer sets the Proton version from the recipe automatically; verify it in
Properties → Compatibility. If it's blank, the recipe had no
[proton] version. - DRM is the usual blocker for delisted/disc-era titles (e.g. SecuROM), not the renderer. Check the recipe's community guides. deckport configures the prefix; it never bundles or defeats DRM.
- Your games,
shortcuts.vdf, and grid art live in/homeand survive updates. Only the sshd enable can revert — re-runscripts/deck-enable-ssh.sh.
Every write backs up the previous file to
shortcuts.vdf.bak.<timestamp> next to it. Close Steam, restore the backup over
shortcuts.vdf, reopen Steam.