Easy to brick "Code" and Launcher doesn't help

I’m putting this is “Developer” because it came from development tasks. Though some of it probably is more about “Launcher”. Which doesn’t seem to have its own particular forum location anyway.

When building new extensions in any app, let’s say Code, it’s too easy to brick the app by malforming the extension. There’s no feedback when launching an app that uses the extension, using launcher. There’s no way to know from Launcher that it’s failing, and why. It’s just… silently failing to launch.

My mistake was a simple one. I included an extension dependency that didn’t exist and closed Code with that mistake still in the config file.

The problem here though, is how kit and Launcher handled that problem.

Launcher, upon trying to launch Code, simply spun and then did nothing, as if all was well. Launcher ran a thing. But Code was effectively bricked.

  • why no console?
  • why no option to launch with a console?
  • why no option to read logs from the last launch?
  • why no throw and catch of a non-standard exit code?
  • why no display of the fact that there was an odd exit condition?
  • why no display of the output and error of the console upon a likely error condition?

I think this suggests Launcher’s design is a tad too simplistic at present. You activate a bad extension in a monolithic kit based app and “poof” you can’t launch the app anymore. No feedback when using Omniverse from an average user’s perspective.

I ended up opening a terminal, browsing to the code app in the pkg dir, and running it form the .bat directly. The console output properly clued me in to my misconfiguration of my in-dev extension config.

For now, I’ll simply state: Launcher (and possibly kit) needs some more depth to its launching, console, error and reporting. And it needs to be surfaced so that a lowly user has some chance of discovering why their “code” or “create” install isn’t able to run right now. Mostly because you have developed them to be user modifiable configuration monoliths.

I’ll contrast with Unreal Engine’s UnrealEd.

Firstly, unlike Code or Create, Unreal Projects are not monoliths. If you intend to work on some code, you can create an unreal project for that purpose. If that project doesn’t currently build, that won’t effect other projects. But with Code and Create, they are by default, monolithic. There is one “Launch” button for Create (assuming I have only one version installed)

It’s pretty common to accidentally leave a plugin or module in a broken and unbuildable state in an unreal project. Unreal will try and build the module anyway. If it fails, it’ll tell you about it (via message-boxes). It does not just silently fail to load UnrealEd. It is very aware of the fact that a level designer, or artist is likely the one running UnrealEd, Even though it was a developer who probably messed up. And it goes out of its way to make sure that non-developer is given enough feedback to understand something about what went wrong.

Launcher and Kit do no such thing. That’s a problem.

Hi @brad_f. This is really great feedback. I can confirm that a startup error from a bad extension dependency does not provide any error feedback from the launcher. I will let the dev team know.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.