---
title: "QuartzUILoadRecovery: declaration reference"
description: "Quartz UI 0.57.0-dev: QuartzUILoadRecovery: declaration reference. Source-reviewed guidance, usage and limitations."
status: approved
visibility: public
sourceRevision: fe5b709ec900e282b50e58b819a25041945005f9
reviewedAt: 2026-09-24
---

# QuartzUILoadRecovery: declaration reference

> **0.57.0-dev · beta source documentation.** Native, Blueprint, Editor and rendering examples are source-reviewed, not executed in Unreal during this scan. See [validation and limits](https://betterbuilt.games/docs/quartz-ui/evidence).

Pinned source (source: `Source/QuartzUIRuntime/Public/QuartzUILoadRecovery.h`) · [integration recipe](https://betterbuilt.games/docs/quartz-ui/inventory#quartzuiloadrecovery) · [practical guide](https://betterbuilt.games/docs/quartz-ui/views-input)

## EQuartzUILoadRecoveryState

**Advanced type.** Native fallback state used when Chromium cannot load the requested document.

**Prerequisites / integration:** Exact local player and configured app; Slate/UMG dependencies for native presentation work. Use the [QuartzUILoadRecovery recipe](https://betterbuilt.games/docs/quartz-ui/inventory#quartzuiloadrecovery) in the host module `QuartzUIRuntime`.

**Minimal example / lifecycle:** Use Retry UI after checking failure; default attempts 3, maximum 8. New navigation resets sequence; no reload loop.

**Avoid:** Retrying contract/configuration errors indefinitely. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.

Exact source line (source: `Source/QuartzUIRuntime/Public/QuartzUILoadRecovery.h#L9`)

## FQuartzUILoadRecoveryPolicy

**Internal type.** Pure bounded policy shared by Slate and automation tests.

**Prerequisites / integration:** Exact local player and configured app; Slate/UMG dependencies for native presentation work. Use the [QuartzUILoadRecovery recipe](https://betterbuilt.games/docs/quartz-ui/inventory#quartzuiloadrecovery) in the host module `QuartzUIRuntime`.

**Minimal example / lifecycle:** Use Retry UI after checking failure; default attempts 3, maximum 8. New navigation resets sequence; no reload loop.

**Avoid:** Retrying contract/configuration errors indefinitely. This named helper is runtime-owned; inspect/use it through the owner above rather than constructing it in gameplay.

Exact source line (source: `Source/QuartzUIRuntime/Public/QuartzUILoadRecovery.h#L18`)

## Complete header

Source snapshot, not an additional example. Unreal annotations distinguish exposed Blueprint nodes from native-only/private methods.

```cpp
#pragma once

#include "CoreMinimal.h"

#include "QuartzUILoadRecovery.generated.h"

/** Native fallback state used when Chromium cannot load the requested document. */
UENUM(BlueprintType)
enum class EQuartzUILoadRecoveryState : uint8
{
	Healthy,
	Failed,
	Retrying,
	Exhausted
};

/** Pure bounded policy shared by Slate and automation tests. */
struct QUARTZUIRUNTIME_API FQuartzUILoadRecoveryPolicy final
{
	static constexpr int32 DefaultMaxAttempts = 3;
	static constexpr int32 AbsoluteMaxAttempts = 8;

	static int32 ClampMaxAttempts(int32 MaxAttempts)
	{
		return FMath::Clamp(MaxAttempts, 0, AbsoluteMaxAttempts);
	}

	static bool CanRetry(
		EQuartzUILoadRecoveryState State,
		bool bRuntimeSuspended,
		int32 ConsecutiveAttempts,
		int32 MaxAttempts)
	{
		const int32 SafeMaximum = ClampMaxAttempts(MaxAttempts);
		return State == EQuartzUILoadRecoveryState::Failed
			&& !bRuntimeSuspended
			&& ConsecutiveAttempts >= 0
			&& ConsecutiveAttempts < SafeMaximum;
	}
};
```

Canonical HTML: https://betterbuilt.games/docs/quartz-ui/reference-quartzuiloadrecovery
