Steam install on Mac fails to open descriptor file

When I try to launch my game from Steam on Mac (packaged and uploaded, then installed via Steam), it immediately gives this “Failed to open descriptor file …/…/…/steamapps/GardenWars.uproject” error and fails to load.

It launches fine if I just run the packaged app directly (before uploading to Steam). It also works fine on Windows when installed via Steam.

I’ve found several other “Failed to open descriptor file” threads but they’re mostly old and I’m not sure how to apply any of the suggested solutions to a Steam installation.

It’s a compiled project, from the Github 4.13 release. I built Development Editor directly on the Mac, then packaged the game via the editor, using shipping/distribution. The app does launch no problem after being packaged… but I have no idea why a shipping packaged app starts looking for this uproject file once it’s been uploaded?

Hi Spoondog,

Did you see this note on the following docs page, Online Subsystem Steam:

Contrary to Windows, Steam Overlay on Mac requires game to be launched using Steam client. For this you first need to add the game to your library using “Add a Non-Steam Game to My Library” option from Steam’s Games menu.

Did you do this on your Mac?

Let me know,

.

,

This is not about the Steam overlay - the packaged/shipping game fails to start after being uploaded to Steamworks.

The exact same packaged build launches fine before uploading to Steam (i.e. using the “Add a Non-Steam Game to My Library” option).

This is how I am testing. Please verify that this is the same way you are producing the error:

  1. In UE4.13, Package for Mac
  2. Add .exe to Steamworks Library using the “Add a Non-Steam Game to My Library” option
  3. Launch Game from Steamworks Library

Is this the point you are getting the error?
Have you tested this with a blank Third Person Blueprint project?

Lastly, on another AnswerHub post where they were experiencing this same error on a PC, they resolved this by adding a blank C++ element. While I was hesitant to suggest this since you are on a Mac, since your building from GitHub in the first place, this should not be difficult. Simply add a blank C++ actor in one of your folders in your Content Browser and compile. Then package for shipping.

Try this and let me know if it does not resolve your issue:

Reference: Failed to open descriptor file error

“Please verify that this is the same way you are producing the error”.

This is not the way I’m producing the error - if I launch using those steps, it works fine. I am past that stage now and trying to actually release the game by uploading it to Steamworks (as in, uploading to my depot at partner.steamgames.com, then installing it via the Library in the Steam Client, then launching it as a customer would). When run this way, the game gives this error.

I did already have a blank C++ class but I went ahead and generated another one anyway as you describe, and compiled + packaged for shipping (with full rebuild enabled just in case). Unfortunately the error still occurs.

I haven’t tried building without a pak file yet or ticking random project settings (just hoping I’d get lucky for some reason and it’ll work). I was also going to try inject the uproject into the packaged app and give it a uproject launch parameter manually, but that seems like a long shot too.

Is there a programmer that could shed some light on why it’s specifically looking in …/…/…/steamapps/ for the uproject file?

Can you compare the behavior if you run the game from steam UI (causes the error you describe) to launching the installed game directly from the steam folder on your system (skipping steam UI)?

Does the manifest in a packaged Mac app matter? If I inspect the packaged app contents, the name of the app and executable are different to what the manifest says:

Manifest:

GardenWars-Mac-Shipping.app
GardenWars-Mac-Shipping.app\Contents\Info.plist
GardenWars-Mac-Shipping.app\Contents\MacOS\GardenWars-Mac-Shipping
GardenWars-Mac-Shipping.app\Contents\MacOS\libogg.dylib
GardenWars-Mac-Shipping.app\Contents\MacOS\libsteam_api.dylib
GardenWars-Mac-Shipping.app\Contents\MacOS\libvorbis.dylib
GardenWars-Mac-Shipping.app\Contents\UE4\GardenWars\Content\Paks\GardenWars-MacNoEditor.pak
etc..

Actual filenames:

GardenWars.app
GardenWars.app\Contents\Info.plist
GardenWars.app\Contents\MacOS\GardenWars
GardenWars.app\Contents\MacOS\libogg.dylib
GardenWars.app\Contents\MacOS\libsteam_api.dylib
GardenWars.app\Contents\MacOS\libvorbis.dylib
GardenWars.app\Contents\UE4\GardenWars\Content\Paks\GardenWars-MacNoEditor.pak
etc..

I’m guessing the manifest isn’t really used, since the packaged app runs fine before uploading to the Steam server, but thought it worth a mention.

Hi - yes it appears to happen exactly the same (descriptor file error pops up immediately).

Small update - I tried a couple of easy things as a test:

  1. Deleting the depot on Steamworks and re-uploading (in case it was corrupt or something). No change.
  2. Added the uproject file into the packaged app, and put the path to it directly in the steam launch arguments - it does find the uproject file after that, but it just exits silently (I have logging enabled in shipping which normally works but it doesn’t seem to write to a log when launched from steam… at least not anywhere that I can find it. I’m guessing it doesn’t get a chance to write it since it exits so quick).

EDIT: I tried a “clean” in Xcode, removed intermediate/saved and built the engine/project from clean again. No joy. I also tried renaming the app and executable to GardenWars-Mac-Shipping (as they are named in the manifest attached above), but still without any luck.

I’m happy to PM you a passworded build (and give you Steam dev access to the game if necessary).

After reading around some more I have a feeling it’s a file permissions thing - I’m going to try and upload it using Steamcmd from a Mac rather than using the Steampipe GUI tool on Windows.

Hi Spoondog,

Thanks for the update, hopefully Steamcmd resolves your issue and we begin looking at why. I’m continuing to investigate as well, and will let you know when I find something.

Cheers,

Jonathan

The problem was uploading it the build to Steam from Windows - it screws with the packaged app, something to do with file permissions.

I fixed it by uploading from a Mac using the osx version of Steamcmd that comes with the sdk. This might be worth adding to the UE4 Steam docs perhaps.

Apparently you can still use Windows to upload if you do this ContentPrep stuff, but it looked a hornet’s nest to me so uploading from a Mac is OK for now.

Here’s the info I got from Valve:

Sounds like file permission/symlink
issues. Windows doesn’t support
Unix-style permissions or symlinks, so
there won’t be any when you upload
from Windows. Uploading from Mac
should solve it, but if you tend to
upload from Windows mostly, you might
consider running a script that will
apply permissions during installation.
See
Steam Community :: Error
(link requires steam partner access)

I’m also not able to get the Steam overlay showing on Mac, which seems to be the only thing blocking release - there’s an existing thread about it here:

(and Steam Integration on OSX broken after 4.9 Update - Platform & Builds - Unreal Engine Forums)

…don’t suppose there’s any progress that can be reported on that?

I’ve updated the thread you linked with the up-to-date state of where we are with this issue.