STL won't slice? The 6 usual causes, and how to fix each

Short answer

An STL usually won't slice because the mesh is not a closed solid: it has holes, edges shared by more than two triangles, or normals facing the wrong way, so the slicer cannot tell inside from outside. The rest of the time it is not the mesh at all — it is scale, placement, or a corrupt file. Work out which before you fix anything.

The file opens. The model appears on the plate. And then the slicer either throws an error, greys out the slice button, or produces something hollow and shredded that bears no relationship to what you saw.

There are six causes worth knowing, and they split into two groups that need completely different responses. Getting the group wrong is how people lose an evening.

First: is it the mesh, or is it the slicer?

Two minutes of triage saves you from fixing the wrong thing.

Causes 1 to 4 below are mesh problems. Causes 5 and 6 are not, and no repair tool on earth will help you with them.

The 6 reasons an STL won't slice

1. Non-manifold geometry

The umbrella fault, and the one your slicer most often names. The surface does not properly enclose a solid: edges belong to one triangle or to three, rather than to exactly two. The slicer cannot answer "is this point inside?" and gives up. Full guide: how to fix a non-manifold STL.

2. Holes and open edges

The most common single defect. An edge used by only one triangle means the surface has a gap — the mesh is "not watertight". Usually it is not a visible crater but one missing triangle you will never spot by eye. Full guide: how to fix holes and open edges.

3. Flipped or inverted normals

Some triangles are wound backwards, so they tell the slicer that outside is inside. The mesh can be perfectly closed and still unprintable, because the slicer fills the room around your model rather than the model. Full guide: how to fix flipped normals.

4. Degenerate and zero-area triangles

Faces with no area, where two vertices sit in the same place. They are not non-manifold in themselves, but they wreck the edge-pairing that every repair and slicing algorithm relies on, so they tend to be removed first and fix a surprising number of "weird layer" complaints.

5. Scale, units, or placement — not a mesh problem

STL carries no units. A file authored in metres and read as millimetres arrives a thousand times too big; a generated model arrives at whatever scale its coordinate space implied. And a model floating above the plate, or sunk beneath it, will not slice into anything useful. Fix all of this in the slicer. A mesh repair tool cannot help, and any tool that offers to "fix" your scale by guessing is changing your model behind your back.

6. A corrupt or empty file — not a mesh problem either

An interrupted download, a truncated export, an STL with zero triangles in it. If the slicer shows nothing at all on the plate, or the file is suspiciously small, re-export or re-download it before you go looking for defects that are not there.

Fix the mesh problems in one step

Causes 1 to 4 are all the same kind of fault — the mesh describes the right shape badly — and they are all repaired by the same operation. SliceReady does it in your browser with WebAssembly. Nothing is uploaded, because there is no server to upload it to.

  1. Drop your STL or 3MF onto SliceReady.
  2. The mesh is analysed and the damage highlighted: open edges, flipped normals, degenerate triangles, counted individually.
  3. The repair runs, and you get a ledger of exactly what changed — not a green tick, a count.
  4. Download the repaired STL and slice it.

What it does not do. SliceReady repairs topology. It does not thicken thin walls, hollow the model, remesh it, or rescale it. Those change the shape you asked for, and a tool that silently reshapes your model is a tool you cannot trust.

If damage survives the repair, the report says so outright: "Partially fixed — this mesh is still not watertight." A failed repair does not get to call itself repaired.

Fix the non-mesh problems in your slicer

Nothing to repair here — just settings, and they take seconds once you know that is what you are looking at.

The special case: models from AI generators

If your file came out of Tripo, Meshy, Rodin or any other image-to-3D system, expect several of these faults at once, every time. Those tools are optimised to produce something that renders well, and watertightness was never in the objective. Here is what breaks in an AI-generated mesh, and why.

Frequently asked questions

Why does my slicer open the STL but refuse to slice it?

Opening a file only means reading triangles. Slicing means deciding, for every point on every layer, whether it sits inside the solid. A surface with a hole in it cannot answer that, so the slicer either refuses or guesses — and the guess is what prints as a shell.

How do I know if the problem is the mesh or the slicer?

Open it in a second slicer. Two refusals means the mesh is broken. One refusal — or a model that imports absurdly sized or below the plate — means you are looking at a setting.

Why does my STL slice at one layer height but not another?

That is the fingerprint of a marginally broken mesh that your slicer is patching on the fly, layer by layer. It survives one height and shreds at the next. Do not go hunting for the layer height that hides it — repair the geometry and the behaviour becomes reproducible.

Can a slicer repair a broken STL by itself?

It patches; it does not repair. The file on disk is still broken, and the patching is a per-layer guess that changes with your settings. Fixing the mesh once is cheaper than re-rolling the dice on every print.

Slicer refusing your STL right now?

Drop it into SliceReady. It repairs in your browser, nothing is uploaded, and the report tells you the truth about what was fixed and what was not.

Repair my STL →