Troubleshooting

Technical help and troubleshooting

Can I configure authentication via SPS?

To ensure loose coupling and remain unopinionated, the Scalable Pixel Streaming Framework is designed to interact exclusively with external identity providers when authenticating users. Thus, the API for authentication plugins does not include provisions for directly specifying user credentials and instead deals only with tokens issued by identity providers. To facilitate common web-based authentication workflows, plugin implementations are able to specify URLs to which clients should be redirected to obtain tokens from external identity providers.

I am experiencing issues with my UE Linux build

Many Unreal Engine projects will build for Linux and run correctly inside containers without requiring any modifications. However, there are a number of common issues that can prevent a Pixel Streaming application from building for Linux or running correctly in a Linux container:

Incompatible plugins or third-party libraries

The most common cause of compatibility issues is the use of third-party libraries or Unreal Engine plugins that do not support Linux. In many cases, plugin authors will exclude Linux from a plugin’s list of supported platforms simply because it has not been explicitly tested for compatibility, and the plugin will actually work just fine if Linux is manually added to the supported platform list. In other cases, plugins make use of platform-specific code or bundle third-party libraries for which Linux binaries are not available, which means the plugins will need to be modified or replaced in order to ensure compatibility with Linux. If a plugin makes use of proprietary third-party libraries that do not support Linux and cannot be compiled from source, then the plugin cannot be used under Linux.

Use of CEF or the Web Browser Widget

The Chromium Embedded Framework (CEF) codebase that powers the Unreal Engine’s Web Browser Widget functionality is notorious for its inability to run correctly in headless environments such as Linux containers. Although there are workarounds to allow CEF to run in containers, these solutions typically rely on the use of software Framebuffers that disable GPU acceleration and are therefore incompatible with the Unreal Engine and Pixel Streaming. As a result, applications that use CEF or the Web Browser Widget are not currently compatible with Linux containers or with Scalable Pixel Streaming.

Use of platform-specific code

Applications that directly call platform-specific APIs such as the Windows API or the DirectX API, or rely on built-in Unreal Engine functionality that does not support Linux, will not build and run correctly when targeting Linux. Such applications will need to be modified to use alternative functionality under Linux, typically through the use of compile-time platform identity macros or runtime platform detection logic.

What does the status of my application or version mean?

The applications on the cluster can be in one of the following states:

  • Awaiting version : There are no versions created for this SPS application.
  • Uploading: A compressed project is currently being uploaded.
  • BuildingImage: SPS is building a container from the uploaded compressed project.
  • CreatingFramework: SPS framework is starting up.
  • CreatingTurn: Default TURN Server is starting up.
  • RequestingCertificate: SPS framework is requesting a certificate.
  • CertificateFailed: Certificate request failed. Delete the application and try again.
  • CertificateValidating: Certificate is undergoing validation.
  • CertificateValidated: Certificate is validated.
  • Running: The SPS Application is ready to start spinning up SPS instances.
  • Failed: The SPS Application failed. Delete the SPS application and try again.
  • InitDelete: The SPS Application has initiated a delete.
  • Deleting: The SPS Application is deleting and cleaning up resources.
  • DeleteComplete: The SPS Application has completed is delete and will disappear shortly.
  • DeleteFailed: The delete has failed, try to delete the application again or send a force delete request via the REST API.

The versions on the cluster can be in one of the following states:

  • New: The SPS Version is new. It will shortly progress to the next state of its life cycle.
  • Uploading: On supported cloud platforms an archive file is currently being uploaded.
  • UploadComplete: The file upload has completed.
  • UploadFailed: There was an error uploading the file, Create a new version and try again.
  • BuildingImage: On supported cloud platforms SPS is building a container from the uploaded archive.
  • BuildComplete: The build step has completed.
  • BuildFailed: The build step has failed, Create a new version and try again.
  • Ready: The SPS Version is ready to be set as the active version.

I’ve manually deleted my instance manager, and it won’t recover. What should I do?

In most cases, the instance manager will automatically recover within a few minutes, but it can occasionally get stuck. In this case, simply unassign the current version of the application and assign it back again; this will reconcile the application and rebuild the deployment.