Troubleshooting

Problem, cause and solution for the validation codes and runtime behaviours World State Reset Framework reports.

Findings reported by Validate World State carry a code. Search this page for the code shown in the Inspector.

Validation codes

CodeSeverityCauseSolution
MissingStableIdErrorThe component has no Stable IDAssign Missing IDs in the Inspector
DuplicateStableIdErrorTwo components share one ID, usually from copying a configured Actor at runtime or through source controlRegenerate Selected ID on the copy, never on the original
InvalidRegionErrorThe Actor has no usable region membershipAssign a region tag in Quick Setup
PolicyWithoutTriggerErrorThe reset policy has an empty trigger set, so no reset can ever matchAdd the reason tags this Actor should respond to, or apply a preset
PersistentContradictionWarningPersistent configuration contradicts the rest of the policyDecide whether the Actor is Persistent or Resettable; it cannot be both
OneShotTriggersIgnoredWarningA One Shot Actor has reset triggers, which normal resets ignoreRemove the triggers, or switch the Actor to Resettable if it should return
UnavailableClassErrorThe Actor class cannot be resolvedRestore the missing class or asset
NonRespawnableClassErrorThe class cannot be recreated after destructionUse a spawnable class, or make the record non-destructible
NonPlaceableClassWarningThe class is not normally placeable in a levelConfirm the Actor really is authored content
ManifestOutdatedWarningAuthored configuration changed since the World Manifest was builtClick Build World Manifest and save
UnmanagedAttachmentParentWarningThe parent Actor is not managed by WSRFAdd a state component to the parent, or accept that the attachment cannot be rebuilt
MissingAttachmentParentErrorThe recorded attachment parent no longer existsRepair the attachment or clear it
AttachmentCycleErrorManaged Actors form an attachment loopBreak the cycle; restore ordering cannot be resolved
MissingCustomStateInterfaceWarningThe restore strategy expects WSRF Resettable, but the class does not implement itImplement the interface, or switch to Automatic
UnusedCustomStateInterfaceInfoThe class implements WSRF Resettable but the strategy never calls itSwitch to AutomaticThenInterface or InterfaceOnly if you meant to use it
InvalidCustomStateSchemaWarningA detectable invalid Custom State schema versionSet a valid version with Set Version during capture
RuntimeRespawnUnsupportedErrorA destroyed runtime Actor is configured with a restore behaviour that cannot workChange RuntimeActorBehavior, or make the Actor placed content
MissingStableIdReferenceWarningCustom State references a Stable ID that matches nothing in the worldRe-capture the reference, or repair the target Actor’s ID

Reset does nothing

ProblemCauseSolution
The reset runs but nothing changesThe request’s Reason is not in the Actor’s ResetTriggersCompare both tags. This is the most common cause by a wide margin
Nothing changes, and Scheduled is 0The region tag does not match, or child regions are excludedCheck the region tag and bIncludeChildRegions
One Actor never resetsIts persistence mode is PersistentPersistent records are intentionally skipped by resets
An Actor resets to the wrong stateThe initial capture happened before the Actor finished initialisingCall Recapture Initial State after your setup, or change CaptureTiming
Immediate capture appears overwrittenImmediate At Component BeginPlay applies pending state before the owner’s BeginPlay, so owner initialisation can overwrite itPrefer the deferred default, or make owner initialisation conditional
A Persistent Actor unexpectedly resetsIts policy is not actually Persistent, or a preset was re-applied afterwardsRe-check the policy; a preset overwrites the fields it owns
A policy change disappears after restarting PIESet Reset Policy is intentionally session-onlyChange the authored component or Blueprint default for a permanent edit
A queued reset never reports success immediatelyThe immediate value is a placeholder (bWasQueued true, bWasExecuted false)Match its OperationId to the completion delegate and use Was WSRF Reset Successful on that final report. If the 64-operation queue guard aborts requests, remove reset requests that recursively originate from completion callbacks

Destroyed Actors

ProblemCauseSolution
A destroyed Actor does not returnThe record is not Resettable, its trigger or region does not match, its class is not spawnable, or its source level is unloadedCheck each in that order; the report’s Errors names the failing record
A destroyed runtime-spawned Actor does not returnExpected: RestoreToCapturedState can restore a surviving runtime Actor but cannot respawn a destroyed one — no authored source placement existsRecreate it through its owner/spawner or Custom State
Find Loaded Actor returns null during Custom RestoreThe related Actor may still belong to an unloaded source level, its respawn may have failed, or its container may not matchKeep the Stable ID, handle null, and resolve again when that world content is available. Never cache a destroyed object pointer as world state
The Actor is StreamedOut, not DestroyedIts level, cell or Data Layer unloaded — that is not destructionExpected. The record is retained and marked Pending Restore
Respawn fails with a container errorWSRF could not prove the correct source level or containerIntentional: it refuses to spawn into the Persistent Level. Restore the source level
A respawned Actor lost a Blueprint valueAutomatic capture only covers supported Instance Editable properties that differ from the class defaultUse WSRF Resettable and the typed Writer/Reader for gameplay state
A reference to a destroyed Actor is brokenAn object reference was stored instead of a Stable IDStore the Stable ID and resolve it with Find Loaded Actor during Custom Restore

Streaming

ProblemCauseSolution
Manifest Requires RebuildManaged Actors, IDs, regions, policies, classes, Data Layers or container structure changedBuild World Manifest and save
Records stay in Pending RestoreThe Actor’s cell, sublevel or Data Layer is not loadedExpected until the container returns; WSRF does not force loading
Duplicate effective identityDuplicate local IDs, or conflicting instance/container configurationRepair the local IDs, then rebuild the manifest
Two Level Instances reset each otherA non-context lookup or reset was used inside instanced contentUse Reset World Region In Context and Find Loaded Actor In Context
A streamed Actor is skipped by a resetStreaming unload is not destructionIntentional. The record is reconciled on reload rather than duplicated

Persistence

ProblemCauseSolution
Nothing was exportedNo Actor is configured as Persistent or OneShotOnly those two modes are exported, by design
An enemy respawned after loading a saveIt is Resettable, so its temporary dead state is not savedIntentional. Use Persistent or OneShot if it must be remembered
Compatibility is TooOld or TooNewThe snapshot schema does not match this plugin versionImplement a UWSRFSnapshotMigrator and use the advanced import
Compatibility is WrongWorldThe snapshot was captured in a different worldApply it in the world it came from
Records come back as VersionMismatchThe Custom State schema version changedBranch on Get Version during restore, or migrate explicitly
Records come back as MissingNo current or manifest identity matchesExpected after content was removed; other records still load
Records come back as DeferredThe matching Actor or container is unloadedExpected; they apply when the container registers
The report counts ConfigurationMismatchThe saved configuration hash differs from the current Actor setup — the Actor’s class, regions, policy or container changed since the saveDiagnostic only: the state is still applied with the current settings. Review the per-record message if the change was unintentional

Editor

ProblemCauseSolution
The Inspector menu is missingThe plugin is not enabled, or the editor was not restartedEnable it and restart; check the Output Log
Reset Region (PIE) is disabledAn Editor world is selected, or no concrete region is chosenSelect an active PIE world and a specific region
Assign Missing IDs is disabledA PIE world is selectedID repair is Editor-only by design
The Inspector does not update on its ownIt has no permanent tick, deliberatelyClick Refresh
Plugin content is not visiblePlugin content is hidden in the Content BrowserContent Browser Settings → Show Plugin Content
Niagara state is not restored after removing the demoThe optional capture adapter was removed with the demoKeep and load WorldStateResetFrameworkNiagara and enable Unreal’s Niagara plugin — the core Runtime intentionally has no Niagara dependency

Still stuck

Collect the plugin version, the engine version, the validation code, the reset or import report and the reproduction steps, then write to support.

Last updated: 2026-09-04

Type to search titles, sections and keywords.