Quick answer: Godot 4 GPUParticles3D rendering as flat sprites despite a mesh assigned? Draw passes are separate from Process Material - assign the mesh to Draw Pass 1.
Set the GPUParticles3D mesh, run the scene, particles are still default quads.
Assign Draw Pass 1
Inspector > Draw Passes > Draw Pass 1. Drop your mesh here. The Mesh property in newer Godot was renamed to Draw Pass for multi-pass support.
Set Draw Passes count
Defaults to 1. If you want multiple meshes (debris with shrapnel and dust), increase the count and assign each pass.
Check Process Mode
If Process Mode = Inactive, particles spawn but don't draw their mesh. Set to Local or World.
“Particle meshes live in Draw Passes - one of several places, not the obvious place.”
Build a small particle template scene that wires up a known-working setup. Duplicate it for new effects instead of authoring from scratch.