Mesh errors in STL files: pre-print checklist and fixes

mesh_errors-1760194024452

A mesh error is a defect in the triangle surface of an STL, OBJ or 3MF file that stops it from describing one closed, solid volume, so the slicer has to guess what is inside the part and what is outside. The six to check before every print are: non-manifold edges, holes, flipped normals, self-intersections, walls too thin for your nozzle, and wrong scale or units. Your slicer catches the first four in many cases and marks the model with a warning icon; thin walls and scale only show up if you look for them.

The fastest routine is: check the model’s dimensions on import, look for the slicer’s warning icon, run the built-in repair, then scroll through the sliced preview layer by layer. If the preview still has missing walls or odd gaps, move the file to a mesh tool such as Blender’s 3D Print Toolbox. This checklist is based on PrusaSlicer, Bambu Studio, OrcaSlicer and Blender documentation, linked at the end; the two most common errors have their own in-depth guides, linked below.

Affiliate · Featured hardware Snapmaker U1 5X More Speed. 5X Less Waste.

The consumer toolchanger 3D printer: the SnapSwap 4-toolhead system swaps heads in 5 seconds for true multi-color and multi-material printing, with smart calibration and auto filament loading.

  • 4 toolheads · 5 s swap
  • Up to 500 mm/s · 20,000 mm/s²
  • 270 mm cube build volume
  • Multi-color & multi-material
See the Snapmaker U1 →
Snapmaker U1

Pre-print mesh checklist in 60 seconds

  1. Size: do the dimensions in the slicer match the design? A part 25.4 times too small was probably modelled in inches.
  2. Warning icon: is there an exclamation mark next to the object name? If there is, the model has errors the slicer detected.
  3. Repair: run the slicer’s Fix/Repair function (on Windows it uses the Netfabb-based repair service).
  4. Preview: slice and scroll through the layers. Look for missing walls, gaps, stray infill outside the part and features that vanish.
  5. Thin features: compare the thinnest wall or detail with your nozzle size.
  6. Still wrong? Fix it in a mesh tool or, better, at the source CAD file, then export again.

What a printable mesh has to be

An STL file is nothing more than a list of triangles (facets). The STL format description sets a few rules a valid file must follow, and every mesh error on this page breaks one of them:

  • Every edge is shared by exactly two faces. Blender’s 3D Print Toolbox uses the same rule for its “Solid” check: “Edges should connect to exactly 2 faces.” An edge with one face is a hole; an edge with three or more is non-manifold.
  • Normals point outward. Each triangle’s normal points out of the solid, and its vertices are listed counterclockwise when seen from outside (the right-hand rule). A triangle listed the other way round is a flipped normal.
  • Triangles meet vertex to vertex. Each triangle must share two vertices with each neighbour; a vertex may not sit on the edge of another triangle. Breaking this leaves tiny cracks, even when the model looks closed.
  • No units. The spec says the file “does not contain any scale information; the coordinates are in arbitrary units.” The slicer assumes millimetres.

A mesh that follows these rules is often called watertight or manifold. It can still be unprintable if it is at the wrong scale or has walls thinner than your nozzle can lay down, which is why those two checks are on the list even though they aren’t geometry errors.

Mesh errors at a glance: symptom, check, fix

ErrorWhat you seeHow to find itFirst fix
Non-manifold edgesSlicer warning; walls or layers missing in the previewSlicer warning icon; Blender “Solid” checkSlicer repair, then Blender “Make Manifold”; see the non-manifold edges guide
Holes / open edgesGaps in a layer, infill spilling out, surfaces missingSlicer warning; Meshmixer Inspector; Blender “Solid”Slicer repair for small flat holes; Meshmixer hole filling for larger ones
Flipped normalsFaces shaded differently in the viewer; parts of the model treated as empty spaceFace-orientation view in your modellerRecalculate normals outward; Blender “Make Manifold” also fixes bad normals
Self-intersectionsOverlapping shells; odd seams or double walls where parts meetBlender “Intersections” checkOften printable as is (some slicers merge overlaps); otherwise boolean-union the parts at the source
Degenerate facesUsually invisible; can trigger repair warningsBlender “Degenerate” check (zero area or length)Remove them with a mesh clean-up, then re-check
Thin wallsFeatures missing in the preview, very fragile wallsSliced preview; Blender “Thickness” checkThicken in CAD, use a smaller nozzle, or adjust wall generator settings
Wrong scale / unitsPart tiny or huge on the build plateObject size in the slicerConvert units or scale by the right factor, not by eye

Step-by-step check in the slicer

  1. Import and read the size. Check the object’s dimensions against the design before anything else. Scaling changes nothing about the mesh’s topology, but a wrongly scaled part wastes the rest of the checklist.
  2. Look for the warning. PrusaSlicer shows a warning symbol next to the model name in the object list. Bambu Studio does the same and also shows a notification. OrcaSlicer offers a Fix Model option for “holes, non-manifold edges, and other mesh errors”.
  3. Run the repair. In Bambu Studio, right-click the object and choose “Fix Model”, click “Repair” in the warning message, or click the warning symbol. PrusaSlicer offers “Fix by Netfabb” from the same context menu. All three slicers do this through Microsoft’s repair API, so it works only on Windows.
  4. Slice and scrub the preview. The warning icon is not a full audit. Bambu Lab notes that Studio “can only detect and repair some errors” and that some defects may not trigger a repair prompt at all. Scroll through the layers, and pay attention to thin details, text and places where separate parts join.
  5. Save the repaired model. If the repair worked, export the fixed mesh (3MF keeps it with your settings), so you do not repeat it every time you load the original.
  6. Escalate if needed. If the preview still looks wrong, or you are on macOS or Linux without the Windows repair service, take the file into a mesh tool (next sections).

Scale and units: the error no repair tool catches

Because STL has no units, a model drawn in inches arrives in the slicer 25.4 times too small, and one exported in metres arrives 1,000 times too small. Repair tools won’t flag either, because the mesh itself is valid.

  • PrusaSlicer imports in millimetres by default. According to the PrusaSlicer 2.3 release notes, it offers an inch-to-millimetre conversion when a loaded model is very small, has File > Import > Import STL (Imperial Units), and adds “Convert from Imperial Unit” to the object’s right-click menu.
  • Other slicers: if there is no conversion option, scale by exactly 2540% (inches) or 100,000% (metres), and lock the proportions.
  • Better: set the export units in your CAD program to millimetres, or export 3MF: the 3MF format has a unit attribute (millimetre by default), so the scale travels with the file.

Check scale before repairing or measuring wall thickness. A wall that looks too thin on a model 25 times too small is a units problem, not a thickness problem.

Thin walls and tiny details

A wall can be perfectly manifold and still disappear when sliced. Bambu Lab’s wall generator documentation explains why: in Classic mode, if a region is too small to shrink into a closed wall loop, “the wall path will not be generated”, so small text and fine ribs vanish. Arachne, the variable-width generator in PrusaSlicer, Bambu Studio and OrcaSlicer, handles thin features better, within limits:

GuidelineValueSource
Arachne minimum feature size (default, Bambu Studio)25% of nozzle diameter: features under 0.1 mm are dropped with a 0.4 mm nozzleBambu Lab Wiki
Arachne minimum wall width (example in Bambu docs)85% of nozzle diameter: 0.34 mm with a 0.4 mm nozzle; thin features just above the cut-off are widened to thisBambu Lab Wiki
FDM minimum wall, design guideline1 mm; with a 0.4 mm nozzle, 1.2 mm (a multiple of the nozzle size) is suggestedFormlabs
SLA minimum wall, design guideline0.2 mm, supported or unsupportedFormlabs

Treat these as starting points: your material, layer height and part size all matter. PrusaSlicer’s own Arachne documentation says features thinner than the minimum feature size “will not be printed”, and those just above it are widened to the minimum perimeter width, which changes the part’s dimensions. To find thin areas before slicing, Blender’s “Thickness” check highlights faces thinner than a value you enter; set it to your target wall from the table.

Which repair tool for which job

Two monitors on a desk showing 3D models as blue wireframe meshes in modelling software, with a printed checklist in front
ToolGood forLimits
Slicer repair (PrusaSlicer, Bambu Studio, OrcaSlicer)First pass on downloaded models; small holes and simple non-manifold edgesWindows only; detects and repairs only some errors
Blender 3D Print Toolbox (free)Diagnosing: Solid, Intersections, Degenerate, Distorted, Thickness, Edge Sharp and Overhang checks; “Make Manifold” clean-up; scaling to exact sizeSteeper learning curve; clean-up can change geometry, so check the result
Autodesk Meshmixer (free)Inspector for holes and floating shells, hole filling, manual bridgingComplex holes may need manual bridging rather than Auto Repair
Microsoft 3D Builder (Windows)Quick automatic repair; listed by Prusa as an alternativeWindows only
MeshLab (free)Cleaning and smoothing 3D scans, which Bambu Lab suggests for scanned modelsAimed at scan data; less suited to CAD parts
Your CAD programFixing the cause: missing booleans, open surfaces, export settingsNeeds the source file

Blender’s “Make Manifold” operator “attempts to fix various problems which might make a mesh non-manifold, such as by fixing bad normals, filling holes, and removing empty edges and faces.” It is the closest free equivalent to one-click slicer repair on any operating system. For a model you designed yourself, repairing the export is a patch; fixing the CAD file stops the error coming back on the next revision. If you are still choosing a modelling program, see our comparison of free 3D modelling software.

Common mesh repair mistakes

  • Trusting a missing warning. No icon does not mean the mesh is clean. Bambu Lab says some defects go undetected, so always check the sliced preview.
  • Not checking what the repair did. Automatic hole filling guesses the missing surface. Compare the repaired model with the original, especially on functional faces and holes meant to stay open.
  • Repairing the same file every time. Save the fixed version, or fix the source, instead of relying on repair at each import.
  • Scaling by eye. Unit mistakes are exact factors (25.4 or 1,000). Dragging a model to “about the right size” leaves it slightly off.
  • Printing raw 3D scans. Bambu Lab warns that uneven scanned surfaces often print poorly, especially with Arc Fitting enabled, and suggests turning Arc Fitting off and smoothing the mesh first.
  • Decimating too hard. Reducing the triangle count of a heavy mesh can open new holes or thin walls. Re-run the checks afterwards; the mesh decimation guide covers safe reduction.

When the checklist isn’t enough

  • Non-manifold edges that survive repair: the non-manifold edge fixes guide walks through manual repair.
  • Large or complex holes: follow the step-by-step Meshmixer hole-filling guide.
  • The mesh is clean but the print fails: the problem has moved from geometry to printing. Thin walls may need a better print orientation, and overhangs need supports.

Frequently asked questions

How do I know if my STL file has errors?

Load it into your slicer and look for a warning symbol next to the object name; PrusaSlicer, Bambu Studio and OrcaSlicer all flag models they detect as broken. Then slice it and scroll through the preview, because slicers do not catch every defect. For a full check, Blender’s 3D Print Toolbox runs separate tests for non-manifold edges, intersections, thin faces and more.

Can my slicer fix mesh errors on a Mac?

The Fix Model or Netfabb repair in PrusaSlicer, Bambu Studio and OrcaSlicer relies on a Microsoft repair API and works only on Windows. On macOS or Linux, the slicers still apply some basic automatic repair on import, but for anything more use a cross-platform tool such as Blender’s 3D Print Toolbox.

Why is my model tiny when I import it?

STL files store no units, and slicers assume millimetres. A model that is 25.4 times too small was most likely designed in inches, and one 1,000 times too small was exported in metres. Use the slicer’s unit conversion if it has one, or scale by the exact factor.

Does a watertight model guarantee a good print?

No. A watertight mesh can still have walls thinner than your nozzle can print, which the slicer may drop or widen, and it can still need supports or a better orientation. The mesh check makes the model sliceable; the preview tells you whether it is printable.

Sources