MeshParts render invisible for a subset of players (collision intact); persists across rejoins until the client asset cache is cleared

Summary

In Parkour Spiral 2 (PlaceId 96596531231580), some players join and part of the map fails to render for them, while it renders fine for other players in the same server. The geometry is still there (collision works, players stand on and bump into it), it just does not draw. Manually clearing the Roblox asset cache fixes it for a player.

The failure varies per player

It is not one consistent symptom. Across different players I have seen three distinct modes: missing meshes with textures intact; meshes present but untextured (flat/gray); and almost nothing drawing at all. Meshes and textures fail independently, and the affected subset and severity differ per client.



Correct result, after clearing the cache:

Notes

  • My map is built from a very large number of meshes, which may be relevant if this is load or delivery related.
  • Re-uploading the affected meshes under new asset IDs did not fix it for already-affected players.
  • It self-heals over time. I used to get it too but no longer, and once a player is past it, it seems impossible to trigger again.
  • I could not reproduce it on demand (tried with vpn, clearing cache and fresh downloads from several regions, and forcing corrupt or failed assets locally; none reproduced it).

Hypothesis (uncertain)

Since the failing set is a variable subset of assets per client rather than one specific asset, and it self-heals, my best guess is an intermittent asset delivery/loading failure of recently-uploaded assets rather than corruption of a single asset. Clearing the cache forces a fresh fetch that succeeds. I could be wrong about the mechanism.

Impact

The impact is significant. I postponed the public launch of the experience because of this, and access is currently restricted to group members only until I know this is fixed.

Details

Expected behavior

MeshParts should render for all players regardless of the state of an individual client’s asset cache. When a player is in this broken state, the only known fix is manually clearing the cache, which ordinary players will never do, so for them the experience is simply broken. I am not sure of the exact mechanism, so I am not prescribing a specific fix; the key point is that a client should not be able to get stuck rendering nothing for an asset that other clients render fine.

2 Likes

Also experiencing this on a Battle Royale game we’re building. Launch is supposed to be soon so really hoping we get some updates on this before too long. I have had the same experience as you in that there doesn’t seem to be anything that I can do as the developer to fix it.

Do you create your meshes server side (eg loading in a map)? Or are they there on client load?

1 Like

They’re there on client load. The map is fully static, just anchored MeshParts published with the place file. Nothing gets created or inserted at runtime. So server-side creation isn’t needed to trigger it, and since you’re seeing it with server-loaded maps, how the instances get into the world probably doesn’t matter at all. Points even more at the client asset fetch/cache layer.

Out of curiosity, were your affected assets uploaded recently? Mine were all fresh uploads, and the issue seemed to fix itself as more players loaded the map. My guess is delivery is flaky for assets that haven’t been requested much yet and enough successful fetches warm whatever sits in between, but that’s speculation.

If you manage to catch an affected player before they clear their cache, their client logs from that session would be worth attaching here. That’s the evidence I’ve never been able to capture since I can’t repro on demand.

The affected assets were all uploaded in the last month or so, so your theory seems plausible. I’ll try to get some client logs.