GPU process isn't usable

[0110/094441.173:ERROR:network_service_instance_impl.cc(521)] Network service crashed, restarting service.
[0110/094442.261:ERROR:gpu_process_host.cc(990)] GPU process exited unexpectedly: exit_code=255
[0110/094442.261:WARNING:gpu_process_host.cc(1337)] The GPU process has crashed 3 time(s)
[0110/094442.261:FATAL:gpu_data_manager_impl_private.cc(440)] GPU process isn't usable. Goodbye.

If you're seeing an error similar to the one above while using IronPDF, especially when deploying on Azure, you're not alone. This error is known to crash the application and is usually related to the IronCefSubprocess.exe located in the runtimes folder, which is a crucial component of IronPDF.

Possible causes

Several factors can lead to this GPU process error. Below are some of the most frequent causes:

  1. Missing Execute Permissions for IronCefSubprocess

The IronCefSubprocess.exe must have execute permissions for IronPDF to initialize the ChromePdfRenderer class properly.

  1. Incorrect Azure Deployment Steps

Deployment processes for IronPDF differ between Linux and Windows in Azure. Following the wrong steps can trigger this error.

  1. Missing DLL Dependencies

IronCefSubprocess.exe requires certain DLL files to run properly. Missing DLLs, particularly in non-Windows environments, can cause the process to fail.

Solution

Local Environment

If you're encountering this error locally, try the following steps:

  1. Disable GPU Mode

Add the following line to your code to disable GPU mode for IronPDF:

IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled
VB   C#
  1. Grant Execute Permissions

Ensure that IronCefSubprocess.exe has execute permissions. For Linux systems, use the following command:

chmod 755 IronCefSubprocess 
# You may need to specify an exact path
# IronCefSubprocess is typically found at bin/runtimes/linux-x64/
# chmod 755 /bin/runtimes/linux-x64/native/IronCefSubprocess
# in some cases you may need to use chmod 777 .
  1. Check for Missing DLLs

If the above steps do not resolve the issue, manually execute IronCefSubprocess.exe to check for missing DLLs. The system will display an error box identifying the missing DLL. Install the required DLL and rerun the application.

Azure Deployment

If the error occurs after deploying your app to Azure, follow these steps:

  1. Use ZipDeploy

Deploy your application using ZipDeploy to ensure all files are correctly packaged.

  1. Uncheck Run From Package File

Ensure that the Run From Package File option is unchecked during deployment.

  1. Containerize for Linux

If your application targets a Linux environment, consider containerizing it using Docker before deploying it to Azure. Refer to the Docker Setup Guide for detailed instructions.

  1. Enable Single Process Mode

Add the following code to force IronPDF to run in single-process mode:

IronPdf.Installation.SingleProcess = true;
IronPdf.Installation.SingleProcess = true;
IronPdf.Installation.SingleProcess = True
VB   C#

If none of the above solutions resolve the issue, please submit an Engineering Request for personalized help.