GPUDevice: uncapturederror event

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Want more browser support for this feature? Tell us why.

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

Note: This feature is available in Web Workers.

The uncapturederror event of the GPUDevice interface is fired when an error is thrown that has not been observed by a GPU error scope, to provide a way to report unexpected errors.

Known error cases should be handled using pushErrorScope() and popErrorScope().

Syntax

Use the event name in addEventListener():

js
addEventListener("uncapturederror", (event) => { })

Alternatively, assign to the event handler property of the interface:

js
onuncapturederror = (event) => { }

Event type

A GPUUncapturedErrorEvent. Inherits from Event.

Event GPUUncapturedErrorEvent

Examples

You could use something like the following as a global mechanism to pick up any errors that aren't handled by error scopes and capture them.

js
device.addEventListener("uncapturederror", (event) => {
  // Re-surface the error.
  console.error("A WebGPU error was not captured:", event.error);

  reportErrorToServer({
    type: event.error.constructor.name,
    message: event.error.message,
  });
});

See WebGPU Error Handling best practices for more examples and information.

Specifications

Specification
WebGPU
# dom-gpudevice-onuncapturederror

Browser compatibility

See also