<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Unreal Engine Issues - Latest Fixes]]></title><description><![CDATA[Latest Bug Fixes For Unreal Engine.]]></description><link>https://issues.unrealengine.com</link><image><url>https://issues.unrealengine.com/favicon.png</url><title>Unreal Engine Issues - Latest Fixes</title><link>https://issues.unrealengine.com</link></image><generator>RSS for Node</generator><lastBuildDate>Wed, 22 Jul 2026 22:24:20 GMT</lastBuildDate><atom:link href="https://issues.unrealengine.com/fixes" rel="self" type="application/rss+xml"/><item><title><![CDATA[GPU ISM LOD uses bounds length instead of radius]]></title><description><![CDATA[<p>When calculating LOD for instances on GPU in NaniteCullingCommon.ush we use:</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
<span class="code-object">float</span> RadiusSq = length2(LocalBoxExtent);
</pre>
</div></div>
<p>This doesn't exactly match the CPU logic for static mesh component LOD selections.<br>
We would need to pass up and use the radius squared of the original bounding sphere.</p>]]></description><link>https://issues.unrealengine.com/issue/UE-219726</link><guid isPermaLink="false">UE-219726</guid><pubDate>Wed, 22 Jul 2026 19:38:32 GMT</pubDate></item><item><title><![CDATA[Crash when using ListStreamingTextures with VirtualTexturePrefetchMips]]></title><description><![CDATA[<p>The ListStreamingTextures command causes a crash in FRenderAssetStreamingManager::HandleListStreamingRenderAssetsCommand when there is a virtual texture that uses  crashes when encountering one of these textures.</p>




<p>It seems like the issue is that for VTs with VirtualTexturePrefetchMips, TextureMips is empty, so the OutputMipsString lambda needs to look in (*TexturePlatformData)-&gt;VTData instead to get the size of OutputIndex</p>]]></description><link>https://issues.unrealengine.com/issue/UE-384736</link><guid isPermaLink="false">UE-384736</guid><pubDate>Tue, 21 Jul 2026 17:58:21 GMT</pubDate></item><item><title><![CDATA[Substrate Single Layer Water material fails to compile in blendable Gbuffer mode when using the Single Layer Water BSDF node]]></title><description><![CDATA[<p>When using Substrate in Blendable GBuffer mode, a material with the single layer water BSDF node produces a shader compiler error :</p>

<p>MaterialEditorStats: Error: <span class="error">&#91;SM6&#93;</span> Shader debug info dumped to: "\Saved\ShaderDebugInfo\PCD3D_SM6\NewMaterial_7d16ee4857da21e\Default\FLocalVertexFactory\TMaterialCHSFNoLightMapPolicy\0"</p>

<p>E:\Epic Games\UE_5.7\Engine\Shaders\Private\RayTracing\RayTracingMaterialHitShaders.usf(551,53): Shader TMaterialCHSFNoLightMapPolicy, Permutation 0, VF FLocalVertexFactory:</p>

<p>  /Engine/Private/RayTracing/RayTracingMaterialHitShaders.usf:551:53: error: use of undeclared identifier 'GetSingleLayerWaterMaterialOutput0'</p>

<p>        const float3 ScatteringCoeff = max(0.0f, DFDemote(GetSingleLayerWaterMaterialOutput0(MaterialParameters)));   </p>

<p>                                 ^</p>

<p>MaterialEditorStats: Error: <span class="error">&#91;SM6&#93;</span> E:\Epic Games\UE_5.7\Engine\Shaders\Private\RayTracing\RayTracingMaterialHitShaders.usf(552,53): Shader TMaterialCHSFNoLightMapPolicy, Permutation 0, VF FLocalVertexFactory:</p>

<p>  /Engine/Private/RayTracing/RayTracingMaterialHitShaders.usf:552:53: error: use of undeclared identifier 'GetSingleLayerWaterMaterialOutput1'</p>

<p>        const float3 AbsorptionCoeff = max(0.0f, DFDemote(GetSingleLayerWaterMaterialOutput1(MaterialParameters)));   </p>

<p>                                 ^</p>

<p>MaterialEditorStats: Error: <span class="error">&#91;SM6&#93;</span> E:\Epic Games\UE_5.7\Engine\Shaders\Private\RayTracing\RayTracingMaterialHitShaders.usf(553,39): Shader TMaterialCHSFNoLightMapPolicy, Permutation 0, VF FLocalVertexFactory:</p>

<p>  /Engine/Private/RayTracing/RayTracingMaterialHitShaders.usf:553:39: error: use of undeclared identifier 'GetSingleLayerWaterMaterialOutput2'</p>

<p>        const float PhaseG = clamp(DFDemote(GetSingleLayerWaterMaterialOutput2(MaterialParameters).x), -1.0f, 1.0f);</p>







]]></description><link>https://issues.unrealengine.com/issue/UE-384718</link><guid isPermaLink="false">UE-384718</guid><pubDate>Mon, 20 Jul 2026 17:07:40 GMT</pubDate></item><item><title><![CDATA[Crash in GC - FSharedStruct reachability race condition]]></title><description><![CDATA[<p>This Jira was created from the linked EPS case: </p>

<p>===============================================</p>

<p>This issue is caused by FSharedStruct batching reachability requests to the same underlying FInstancedStruct multiple times. This is not thread safe as nothing prevents the reachability processor from earlying out, so the hierarchy is processed multiple times across all GC workers.</p>




<p>This can lead to some race conditions where garbage exclusion kills the reference to the UObject** on the struct on one worker as it's currently being batched on another worker. This can lead the reachability to reference nullptrs all over the place.</p>




<p>In essence we need the following 4 criteria:</p>

<ol>
	<li>Lots of root UObjects with a reference to a FSharedStruct</li>
	<li>The underlying FInstancedStruct must be shared between all FSharedStruct. We can do this by copying the FSharedStruct across all root UObjects so the FSharedStruct instance is unique, but the underlying TSharedPtr&lt;FInstancedStruct&gt; just bumps up the ref count.</li>
	<li>The base struct type for the FInstancedStruct must have a TObjectPtr on it.</li>
	<li>We must explicitly mark the TObjectPtr as garbage so it goes through garbage elimination during reachability.</li>
</ol>





<p>If you have a look in the GCStressTestSubsystem in my repro sample for an example.</p>




<p>So the root cause is that FSharedStruct::AddStructReferencedObjects is invoked for each unique <b>FSharedStruct</b> instance, which in our case matches the number of root UObjects we created (10,000 by default in the attached sample). This will invoke Collector.AddReferencedObjects on the underlying UScriptStruct* which is simply the underlying shared single instance shared across all 10,000 instances. This means that the UScriptStruct* reachability is done 10,000 times in this example. This then ends up batching all its own properties this many times, including the TObjectPtr. This gets distributed between all the worker threads and performed in parallel. It's a race to see which route eliminates the UObject** address against all the other workers which are currently reading the same UObject*. We can end up crashing in lots of places in the batching, but it typically goes wrong in DrainValidated when we invoke a ObjectToIndex call, e.g:</p>










<p><tt>ObjectIndices<span class="error">&#91;Idx&#93;</span> = GUObjectArray.ObjectToIndex(ValidatedReferences<span class="error">&#91;Idx&#93;</span>.Object);</tt></p>

<p>This reads offset 0xc on a nullptr because it's been eliminated on the other thread. This is checked when we DrainUnvalidated, but as soon as we pass the valid checks we assume that the ValidatedReferences only contains non-null references, which now causes issues because it <b>was</b> valid when the checks were first performed but has been invalidated between the DrainUnvalidated and the DrainValidated calls.</p>




<p>I have created a modified version of FSharedStruct called FFixedSharedStruct. This is effectively an identical version of the engine's version, but I've added an atomic int to the shared FFixedStructSharedMemory which contains the reachability flag. We mark this as reachable when the first FSharedStruct reaches the AddReferencedObject call which causes all future calls to the same underlying TSharedPtr to early out. This ensures that we only batch a single instance of the UScriptStruct.</p>




<p>You can toggle between the 2 FSharedStruct versions with the define in GCStressTestSubsystem.cpp</p>







<p><tt>#define TEST_VANILLA_SHARED_STRUCT 1</tt></p>

<p><tt>#define TEST_FIXED_SHARED_STRUCT 1</tt></p>

<p>This seems to work and follows a similar way to the UObject reachability flag, but I'm not sure if you have a better suggestion for a fix.</p>

]]></description><link>https://issues.unrealengine.com/issue/UE-386410</link><guid isPermaLink="false">UE-386410</guid><pubDate>Fri, 17 Jul 2026 15:11:04 GMT</pubDate></item><item><title><![CDATA[World is initialized twice when opened through the Content Browser]]></title><description><![CDATA[<p>When opening a Level from the Content Browser, the world gets initialized twice. This initialization process can be quite long, especially for big world using world partition.</p>

<p>There doesn't seem to be any apparent reason this would be needed.</p>

<p>Looking into it, it seems the issue might come from ContentBrowserAssetDataCore.cpp within EditOrPreviewAssetFileItems(..) function which first load the asset and then ask the asset editor subsystem to open the asset's editor. Both those actions have a path into initializating the world:</p>]]></description><link>https://issues.unrealengine.com/issue/UE-227262</link><guid isPermaLink="false">UE-227262</guid><pubDate>Mon, 13 Jul 2026 14:06:08 GMT</pubDate></item><item><title><![CDATA[Parameter metadata not accessible if modified in Material Instance and then converted to CustomPrimitiveData]]></title><description><![CDATA[<p>There’s a potential issue with some changes we made to UMaterialInstance::GetParameterValue (<a href="https://github.com/EpicGames/UnrealEngine/commit/8f2bebb008ba645f5938da844cd46b0925322b13" class="external-link" rel="nofollow noreferrer">https://github.com/EpicGames/UnrealEngine/commit/8f2bebb008ba645f5938da844cd46b0925322b13</a>). It seems as though some parameters on an MI are returning False when they should be returning true, <em>but</em> only when the MI is converted from 5.7 to 5.8. If the parameter is created on the material in 5.8 he can’t reproduce the issue. Any thoughts here?</p>]]></description><link>https://issues.unrealengine.com/issue/UE-385962</link><guid isPermaLink="false">UE-385962</guid><pubDate>Fri, 26 Jun 2026 10:59:54 GMT</pubDate></item><item><title><![CDATA[Rare crash in FWidgetAnimationState::OnStopped]]></title><description><![CDATA[<p>The FWidgetAnimationState::OnStopped delegate is getting created when the widget anim state is being destroyed and then queued to be executed later. Something is happening between the queue and the execute, which means the OnStopped function is now stale.</p>]]></description><link>https://issues.unrealengine.com/issue/UE-385279</link><guid isPermaLink="false">UE-385279</guid><pubDate>Thu, 25 Jun 2026 18:45:10 GMT</pubDate></item><item><title><![CDATA[Mutable Dataless Generation - Regenerate Imported Models Crash]]></title><description><![CDATA[<p>Crash when  working with Dataless Mutable content. When selecting meshes in the instance, there is a crash in <em>RegenerateImportedModels</em>.</p>]]></description><link>https://issues.unrealengine.com/issue/UE-383496</link><guid isPermaLink="false">UE-383496</guid><pubDate>Thu, 25 Jun 2026 13:10:36 GMT</pubDate></item><item><title><![CDATA[Nanite Skeletal Mesh ignores Hidden Material Section flag]]></title><description><![CDATA[<p>Unlike non-Nanite Skeletal Meshes, Nanite-enabled Skeletal Meshes do not correctly respond to the Show flag passed via <tt>ShowMaterialSection()</tt>. Consequently, the Isolate checkbox for material slots in the Skeletal Mesh Editor also fails to function properly.</p>

<p><b>Note</b>: This issue persists even after applying the fix from //UE5/Main CL 45797729, which addressed a related issue.</p>]]></description><link>https://issues.unrealengine.com/issue/UE-369410</link><guid isPermaLink="false">UE-369410</guid><pubDate>Wed, 24 Jun 2026 14:52:15 GMT</pubDate></item><item><title><![CDATA[Crash in UWidgetAnimation::CreateDirectorInstance when switching resolution]]></title><description><![CDATA[<p>Hello,</p>

<p>We've encountered a crash in UWidgetAnimation::CreateDirectorInstance when repeatedly switching resolutions. We've had it for a while but it's not until recently that we've found a consistent repro.</p>




<p>Our understanding is that it's a lifetime issue. Sequence of events:</p>




<ol>
	<li>Viewport resizing triggers Slate to rebuild its widgets</li>
	<li>Some widget with an active animation gets destroyed/marked for delete</li>
	<li>UMGSequenceTickManager::ForceFlush is called</li>
	<li>During Flush MovieSceneEventSystem::TriggerEvents fires</li>
	<li>Consequently CreateDirectorInstance is called on UWidgetAnimation</li>
	<li>GetPlaybackContex() returns null</li>
	<li>CastChecked LogFatal (crash)</li>
</ol>
]]></description><link>https://issues.unrealengine.com/issue/UE-382532</link><guid isPermaLink="false">UE-382532</guid><pubDate>Tue, 23 Jun 2026 19:54:21 GMT</pubDate></item><item><title><![CDATA[Division by zero causing NaN/Inf on USkeletalMeshComponent::UpdateRigidBodyScaling() when setting scale to zero and back]]></title><description><![CDATA[<p>Up to UE 5.5, skeletal mesh physics did not get updated when the component's scale changed. This was improved on January 2025 with CL 39190335, which addressed 
    <span class="jira-issue-macro resolved" data-jira-key="UE-200943">
                [Link Removed]
                                                    <span class="aui-lozenge aui-lozenge-subtle aui-lozenge-success jira-macro-single-issue-export-pdf">Closed</span>
            </span>
. However, the new code on function USkeletalMeshComponent::UpdateRigidBodyScaling() handles scale updates by computing and using a change factor (SceneRelativeScale / PrevRootRigidBodyScale). When coming back from a situation where the scale was zero, the factor is computed as NaN or Inf, which messes up subsequent calculations and triggers an ensure() inside FBodyInstance::UpdateBodyScale(). After that point, the correct scale value becomes unrecoverable.</p>

<p>One suggested fix would be to detect zero scale and clamp it to some very small nonzero value. Note, though, that almost immediately below the scale factor calculation, there is a comment in the code warning about the drift that may be caused by the current method.</p>]]></description><link>https://issues.unrealengine.com/issue/UE-365189</link><guid isPermaLink="false">UE-365189</guid><pubDate>Tue, 23 Jun 2026 17:54:44 GMT</pubDate></item><item><title><![CDATA[New material translator: Switch statement not derivative aware]]></title><description><![CDATA[<p>Analytical Derivatives are not calculated properly when using UMaterialExpressionSwitch. Disjoint UVs in screen space result in large jumps in the derivatives, which can cause artifacts as the wrong MIP is sampled for pixels at this border.</p>]]></description><link>https://issues.unrealengine.com/issue/UE-296315</link><guid isPermaLink="false">UE-296315</guid><pubDate>Mon, 22 Jun 2026 23:43:49 GMT</pubDate></item><item><title><![CDATA[PlayerCollision visualization incorrect on LandscapeSplineMesh when Nanite is enabled]]></title><description><![CDATA[<p>From licensee:</p>

<p>I’ve found an issue with the visualization of PlayerCollisions when using LandscapeSplineMesh with a mesh that has Nanite enabled. The Chaos collisions shown in the Chaos Visual Debugger are correct. It therefore seems to be an Editor issue where the deformation is not applied when Nanite is turned on. If I disable Nanite, the collisions are displayed correctly.</p>

<p>Is this a known issue? Will there be a fix in upcoming versions?</p>]]></description><link>https://issues.unrealengine.com/issue/UE-356565</link><guid isPermaLink="false">UE-356565</guid><pubDate>Fri, 19 Jun 2026 09:30:20 GMT</pubDate></item><item><title><![CDATA[Sequencer - if you set the Take Separator to - rather than _ the New Take naming will mess up]]></title><description><![CDATA[<p>When using a non-default take separator (eg "-") the "New Take" option produces a malformed proposed name for the take.</p>]]></description><link>https://issues.unrealengine.com/issue/UE-383821</link><guid isPermaLink="false">UE-383821</guid><pubDate>Thu, 18 Jun 2026 17:31:23 GMT</pubDate></item><item><title><![CDATA[Collision Drawing in Cooked Builds (Development) doesn't Show Geometry for Nanite Meshes]]></title><description><![CDATA[<p><b>Context</b></p>

<p>The showFlag.CollisionVisibility 1 cvar is a viewport visualization mode that highlights which Actors will block visibility. The showFlag.CollisionPawn 1 cvar is a Player Collision viewmode which highlights assets that collide with a character or Pawn. In these modes, only the respective collisions are rendered in the viewport.</p>

<p><b>Problem</b></p>

<p>The licensee noticed that setting `showFlag.CollisionVisibility 1` in one of their production levels seemed to omit most collision geometry in a Development game build, with `showFlag.CollisionPawn` also exhibiting the same issue. Everything seems to work fine in PIE and when the licensee tried a test level everything seemed fine at first, but then they noticed a select few assets were indeed missing in the collision view. Most of the test level is composed of simple block-out meshes which do not have Nanite enabled, but the pieces with no collision drawn (they do have collision) were production assets with Nanite enabled.</p>

<p>It is the licensee's understanding that the `showFlag.CollisionVisibility` and `showFlag.CollisionPawn` views should work in Development builds of the game, but this doesn't seem to be happening for StaticMesh assets that have Nanite enabled. Since nearly all of their production assets are going to have Nanite enabled this is going to make the collision views in game builds entirely unrepresentative.</p>]]></description><link>https://issues.unrealengine.com/issue/UE-294281</link><guid isPermaLink="false">UE-294281</guid><pubDate>Thu, 18 Jun 2026 09:18:42 GMT</pubDate></item><item><title><![CDATA[When using the WebBrowser plugin, Korean input does not work if you type in a different input field from the one that was first used on Google.]]></title><description><![CDATA[<p>In the updated search box, Korean text may not be entered initially. As a workaround, switching to another window using Alt+Tab (or activating a different window) and then returning to click the search box allows Korean input to work again.</p>




<p><b>Additional Notes</b></p>

<p>[Link Removed]</p>]]></description><link>https://issues.unrealengine.com/issue/UE-372862</link><guid isPermaLink="false">UE-372862</guid><pubDate>Wed, 17 Jun 2026 20:13:26 GMT</pubDate></item><item><title><![CDATA[Player collision display not accurate with DirectX12 enabled ]]></title><link>https://issues.unrealengine.com/issue/UE-306792</link><guid isPermaLink="false">UE-306792</guid><pubDate>Wed, 17 Jun 2026 10:49:01 GMT</pubDate></item><item><title><![CDATA[[StateTree] StateTree fails to transition to the next state in child states when parent state contains some tasks]]></title><description><![CDATA[<p>StateTree fails to transition to the next child state in a tree where the parent state has a task such as Debug Text which does not influence state completion. The ST atttempts to transition from Level 1c which does not have a transition or next state and falls back to Root. This can be seen with Rewind Debugger or following the on screen text displayed. From an eye test, the ST should continue to go to the next state Level 2b.</p>

<p>Adding a Delay task instead will allow this to work if the delay is greater than that used in Level 2a. If you remove the task from Level 1c, it will also transition to Level 2b as expected. Adding an empty parent state to Level 1c with no changes in tasks also works.</p>]]></description><link>https://issues.unrealengine.com/issue/UE-384337</link><guid isPermaLink="false">UE-384337</guid><pubDate>Tue, 16 Jun 2026 19:21:41 GMT</pubDate></item><item><title><![CDATA[UBackgroundBlur crashes at PSO creation under D3D12 SM6 when stereo rendering is enabled]]></title><description><![CDATA[<p>Any Slate widget that triggers the Slate post-process blur (e.g., a UBackgroundBlur with non-zero strength) hits a fatal D3D12 CreateGraphicsPipelineState failure on first render. The fatal is funneled through PipelineStateCache.cpp:707 ("Shader compilation failures are Fatal"), but the underlying error is E_INVALIDARG (0x80070057) from a VS/PS signature linkage mismatch, not an HLSL compile error.</p>]]></description><link>https://issues.unrealengine.com/issue/UE-383022</link><guid isPermaLink="false">UE-383022</guid><pubDate>Tue, 16 Jun 2026 18:49:05 GMT</pubDate></item><item><title><![CDATA[Backout attempted fix for - AutoSize triggers ensure on shortened Skel Anim Section moved past anim length]]></title><description><![CDATA[<p>In Sequencer, calling "Edit &gt; Auto Size" on a UMovieSceneSkeletalAnimationSection triggers the LowerBound &gt; UpperBound ensure in UMovieSceneSection::SetRange (MovieSceneSection.h:333) when the section has been shortened below the animation length and then moved so that its start frame is beyond the animation length.</p>

<p>Root cause is in UMovieSceneSkeletalAnimationSection::GetAutoSizeRange (MovieSceneSkeletalAnimationSection.cpp:337). It calls InnerToOuterTransform.TryTransformTime(InnerEndTime).Get(InnerEndTime), and when the inverse transform fails to map InnerEndTime to an outer time (because the value is outside the Inner Clamp or Inner Loop range), the .Get(InnerEndTime) fallback returns the raw inner-tick value. That value is then used as if it were an outer-tick value in GetInclusiveStartFrame() + (OuterEndTime - OuterStartTime).FrameNumber, mixing inner-tick and outer-tick values and producing a negative or otherwise invalid length. SetRange then refuses the range and Auto Size has no effect.</p>

<p>This behavior was introduced by CL 40829088 (
    <span class="jira-issue-macro resolved" data-jira-key="UE-254882">
                [Link Removed]
                                                    <span class="aui-lozenge aui-lozenge-subtle aui-lozenge-success jira-macro-single-issue-export-pdf">Closed</span>
            </span>
, fixed in 5.6), which replaced the previous TOptional check with a .Get(fallback) pattern.</p>]]></description><link>https://issues.unrealengine.com/issue/UE-382288</link><guid isPermaLink="false">UE-382288</guid><pubDate>Mon, 15 Jun 2026 18:24:08 GMT</pubDate></item></channel></rss>