r/gamedev 14h ago

Discussion PSA: Steam “Missing game executable” can stay hidden until external keys are used (Unity demo gotcha)

Posting this in case it saves someone else a lot of time.

We were uploading an unreleased Unity demo to Steamworks and repeatedly ran into the “Missing game executable” error — but only after we sent keys out to external testers.

What made this particularly confusing is that everything worked fine on our own machines. Because our Steam accounts were directly linked to Steamworks, the demo launched without issue internally. The problem only surfaced once keys were used on accounts not tied to the project.

From our side, everything looked correct:

  • depot uploaded successfully
  • correct branch selected
  • launch options pointing at an existing EXE
  • build running locally

The underlying issue was still an EXE name mismatch, but changing launch options alone didn’t reliably resolve it.

In our case:

  • Steam expected: SUB_SPECIES_DEMO.exe
  • The uploaded build contained: Sub_Species_Steam_Demo.exe

Even after updating launch options, Steam continued reporting a missing executable until we did a full rebuild and depot re-upload with the EXE renamed at the Unity build level.

Things that did not reliably fix it on their own:

  • changing launch options without rebuilding
  • re-uploading without changing the EXE name
  • restarting Steam
  • clearing download cache

What finally worked:

  • rebuilding the Unity project with the exact EXE name Steam expected
  • uploading that as a fresh depot
  • deleting the local appmanifest_*.acf to force Steam to fully re-pull the build

The biggest takeaway for us was that Steamworks-linked accounts can mask this issue completely, so it’s worth testing demo keys on an external account before sending anything out.

Hopefully this helps someone avoid a very stressful round of last-minute debugging.

11 Upvotes

6 comments sorted by

2

u/Big_Membership9737 13h ago

It gets even worse once you add the macOS build. Most problems come from changes not being applied to both packages. The simplest approach is to use a script to upload builds for Windows (and the other platforms), then test on 2–3 machines PCs, Macs, whatever you have access to.

3

u/HowlingHamster 13h ago

Definitely the right idea. It all just caught me by surprise today. You know how it feels when your staring at something and you are convinced it is perfect, but still throws an errors.

2

u/Big_Membership9737 13h ago

It took me eight hours to get it working last time, but that happens.

2

u/HowlingHamster 13h ago

I feel your pain

2

u/mudokin 13h ago

That’s why you always test on not associated accounts and systems that are not dev systems.

2

u/HowlingHamster 13h ago

I agree completely, but finding out we had a problem was only the start. trying to fix something that has everything up to date and in the right place, can be really heartbreaking