troubleshoot-print-issues
About
This skill systematically diagnoses and resolves common 3D printing failures like adhesion problems, stringing, and layer shifts. It is triggered when prints fail mid-process, exhibit quality defects, or after hardware/material changes. The tool provides actionable fixes through symptom analysis for issues including warping, under-extrusion, and dimensional inaccuracies.
Quick Install
Claude Code
Recommendednpx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/troubleshoot-print-issuesCopy and paste this command in Claude Code to install this skill
Documentation
Troubleshoot Print Issues
Diagnose and fix common 3D printing failures using systematic symptom analysis. This skill covers the most frequent FDM and SLA issues: poor bed adhesion, stringing, layer shifts, warping, under-extrusion, over-extrusion, and print quality defects. Uses a structured approach of symptom identification, root cause analysis, and iterative fixes.
When to Use
- Print fails during first layer or partway through
- Finished prints have quality defects (stringing, blobs, gaps, rough surfaces)
- Dimensional accuracy problems (over/undersized, warping, elephant foot)
- Layer adhesion issues (delamination, splitting)
- Support removal leaves damage or supports fail during print
- Prints look different from slicer preview
- Material behaves inconsistently across prints
- New material, printer, or environmental conditions causing issues
Inputs
- failure_description: What went wrong (failed first layer, stringing, warping, etc.)
- failure_timing: When issue occurs (first layer, midprint, specific height, top layers)
- material: Filament/resin type, brand, age, storage conditions
- printer: Make/model, nozzle size, bed type, enclosure
- recent_changes: New material, slicer settings, hardware modifications, environment
- print_history: Does this model usually work? Did this material work before?
Procedure
1. Collect Failure Symptoms
Document observable symptoms with specificity:
Visual inspection:
- Take photos of failure (overall, close-up, specific defect)
- Note failure location (first layer, specific height, top surface)
- Describe defect type: gaps, blobs, strings, shifts, cracks
Environmental data:
- Ambient temperature during print
- Humidity level
- Drafts or AC affecting printer
- Time of day (temperature changes)
Print parameters:
# Extract from G-code metadata
grep "^;MAXX\|^;MINX\|^;MAXZ" failed_print.gcode # Print dimensions
grep "^;PRINT_TIME:" failed_print.gcode # Estimated time
grep "^M104\|^M140" failed_print.gcode | head -5 # Temperatures
grep "^;generated by" failed_print.gcode # Slicer version
Got: Detailed symptom description with photos, parameters, and environmental context.
If fail: If symptoms unclear, print a calibration test (temperature tower, stringing test, or benchy) to reproduce and observe failure systematically.
2. Classify Issue by Symptom Pattern
Match observed symptoms to common failure modes:
Diagnostic Reference Table
| Symptom | Likely Causes | Quick Check | Priority Fix |
|---|---|---|---|
| Poor bed adhesion | Dirty bed, wrong temp, too high Z | Wipe bed, level bed | Clean bed, adjust Z-offset down 0.05mm |
| Stringing | Too hot, insufficient retraction | Check nozzle temp | Lower temp 5°C, increase retraction +0.5mm |
| Layer shifts | Loose belts, too fast, collision | Check belt tension | Tighten belts, reduce speed 20% |
| Warping | Poor adhesion, fast cooling | Check corners lifting | Add brim, enclose printer, increase bed temp |
| Under-extrusion | Clog, low temp, wrong flow | Check extrusion consistency | Clean nozzle, increase temp 5°C, calibrate e-steps |
| Over-extrusion | High flow rate, wrong e-steps | Check blob formation | Reduce flow 2-5%, calibrate e-steps |
| Elephant foot | First layer squish, bed too hot | Measure base width | Raise Z-offset +0.05mm, lower bed temp 5°C |
| Gaps in walls | Thin walls, under-extrusion | Check wall thickness | Enable thin wall detection, increase flow |
| Layer delamination | Low temp, poor cooling, contamination | Check layer lines | Increase temp 5-10°C, check wet filament |
| Blobs/zits | Retraction, coast settings | Check seam alignment | Tune retraction, enable coasting |
| Rough top surface | Insufficient top layers, ironing | Count solid top layers | Add 2 top layers, enable ironing |
| Sagging overhangs | Insufficient cooling, too hot | Check part cooling fan | Increase cooling, lower temp, add supports |
Got: Failure classified into 1-3 most likely categories.
If fail: If symptoms match multiple categories, prioritize based on failure timing (first layer issues first, then midprint, then top surface).
3. Perform Root Cause Analysis
Investigate underlying cause, not just symptoms:
5 Whys technique:
Symptom: Print warping and lifting from bed
Why? → Poor bed adhesion in corners
Why? → Corners cooling faster than center
Why? → Room draft from AC vent
Why? → No enclosure to maintain stable temperature
Why? → ABS requires heated chamber for uniform cooling
Root cause: Material choice (ABS) incompatible with open printer in drafty room
Common root causes by category:
Mechanical:
- Loose belts, pulleys, or set screws
- Worn/dirty linear bearings or rods
- Z-axis binding or misalignment
- Extruder gear worn or skipping
Thermal:
- Temperature sensor drift or failure
- Inadequate heated bed power/insulation
- Insufficient part cooling
- Environmental temperature swings
Material:
- Wet filament (hygroscopic materials)
- Old/degraded material
- Contaminated filament (dust, oils)
- Wrong material for application
Configuration:
- Incorrect e-steps calibration
- Wrong flow rate multiplier
- Slicer bug or wrong profile
- Firmware acceleration/jerk too high
Got: Root cause identified with supporting evidence (measured temperatures, belt tension, visual inspection).
If fail: If root cause unclear, use elimination method: fix most likely cause, re-test, repeat until resolved.
4. Apply First-Level Fixes
Implement immediate solutions for common issues:
Poor Bed Adhesion
Immediate fixes:
# 1. Clean bed thoroughly
# Glass/PEI: Isopropyl alcohol 90%+
# BuildTak: Warm water and dish soap
# 2. Level bed (paper test at 4 corners + center)
# Paper should drag slightly
# 3. Adjust Z-offset down (squish first layer more)
# Start: -0.05mm increments until lines fuse
# 4. Increase bed temperature +5°C
# 5. Add adhesion aid:
# - Glue stick (PLA/PETG)
# - Hairspray (ABS)
# - ABS juice (ABS) - ABS dissolved in acetone
# - Magigoo/3D printing adhesive
Slicer settings:
- First layer height: 0.2-0.3mm (thicker = better squish)
- First layer speed: 20mm/s (slower = better adhesion)
- Add brim: 8-10mm for small footprint parts
- Add raft: For very difficult materials (TPU, Nylon)
Got: First layer adheres completely with no lifting.
If fail: Check bed flatness with feeler gauge or mesh leveling; warped bed requires glass/PEI sheet or mesh compensation.
Stringing
Temperature-first approach:
1. Print temperature tower (180-220°C in 5° steps for PLA)
2. Identify lowest temperature that extrudes cleanly
3. Use that temperature -5°C to minimize stringing
Retraction tuning:
# Direct drive extruder:
retraction_distance: 1.0-2.0mm
retraction_speed: 40-50mm/s
# Bowden extruder:
retraction_distance: 4.0-6.0mm
retraction_speed: 40-60mm/s
# If stringing persists:
- Enable z-hop: 0.2-0.4mm (lifts nozzle during travel)
- Reduce travel speed (paradoxically helps)
- Enable combing mode (travels within infill)
Got: Minimal stringing, thin strings easily removed by hand.
If fail: Check for nozzle partial clog or wet filament (both cause oozing).
Layer Shifts
Mechanical checks:
# 1. Check belt tension (should twang like guitar string)
# Tighten if loose
# 2. Check pulley set screws (motor shafts)
# Must align with flat on motor shaft
# 3. Check for mechanical resistance
# Manually move X/Y axes - should glide smoothly
# Binding indicates dirty rods, worn bearings, or misalignment
# 4. Check stepper motor current (advanced)
# Too low → skipping; too high → overheating
Speed reduction:
# Reduce these speeds:
perimeter_speed: 40mm/s (from 50)
travel_speed: 120mm/s (from 150)
acceleration: 500mm/s² (from 1000)
jerk: 8mm/s (from 15)
Got: No layer shifts in re-print with tightened belts and reduced speeds.
If fail: Check for slicer-generated collisions (part cooling fan hitting model) or electrical issues (stepper driver overheating).
Warping
Thermal management:
# Increase bed temperature:
PLA: 60°C → 65°C
PETG: 80°C → 85°C
ABS: 100°C → 110°C
# Disable/reduce part cooling:
first_layer_fan: 0%
regular_fan: 25% max (ABS), 50% (PETG), 100% (PLA)
# Enclose printer (critical for ABS/ASA):
- Cardboard box (temporary)
- Acrylic panels (permanent)
- Target chamber temp: 40-50°C
Adhesion enhancement:
- Add brim: 10-15mm for corners
- Add "mouse ears": 15mm diameter discs at sharp corners
- Chamfer bottom edges in model (45° × 1mm removes stress concentrator)
Got: Part stays flat with no corner lifting.
If fail: Material fundamentally unsuitable for printer (ABS on unenclosed printer)—switch to PETG or ASA.
Under-Extrusion
Quick fixes:
# 1. Check for nozzle clog
# Heat to print temp, manually push filament
# Should extrude smoothly
# 2. Cold pull cleaning (if partial clog)
# Heat to 220°C, push cleaning filament through
# Cool to 90°C, pull sharply - should remove debris
# 3. Increase temperature +5-10°C
# Higher temp = better flow
# 4. Increase flow rate 2-5%
# Slicer: Filament settings → Flow → 102-105%
E-steps calibration:
# 1. Mark filament 120mm above extruder
# 2. Extrude 100mm: G1 E100 F100
# 3. Measure remaining distance to mark
# 4. Calculate: new_steps = current_steps × (100 / actual_extruded)
# 5. Set: M92 E<new_steps>; M500 (save to EEPROM)
Got: Consistent extrusion with no gaps in perimeters or infill.
If fail: Check for heat creep (cooling fan failure), worn extruder gear, or cracked extruder arm.
Over-Extrusion
Flow rate reduction:
# Reduce flow in 2% increments:
extrusion_multiplier: 0.98 → 0.96 → 0.94
# Signs of correct flow:
- Smooth top surface (not overstuffed)
- Perimeters don't bulge outward
- Infill doesn't overfill and push layers apart
Dimensional accuracy test:
# Print 20mm calibration cube
# Measure with calipers:
# X/Y dimensions should be 20.0mm ± 0.1mm
# If consistently oversized → reduce flow
# If undersized → increase flow
Got: Accurate dimensions, smooth surfaces, no bulging.
If fail: Re-calibrate e-steps (may be set too high).
5. Verify Fix with Test Print
Confirm resolution before attempting full print:
Test print selection:
- Adhesion issues: 20mm square × 5 layers (fast first layer test)
- Stringing: Stringing test model (dual towers with travels)
- Layer shifts: Tall thin test (stress mechanical system)
- Warping: Large flat surface (200mm × 200mm × 0.4mm)
- Extrusion: 20mm calibration cube (dimensional accuracy)
Got: Test print succeeds with issue resolved.
If fail: If test fails, issue not fully resolved or multiple issues present—repeat diagnosis focusing on remaining symptoms.
6. Document Solution
Record successful fix for future reference:
Issue log template:
date: 2026-02-16
issue: "Layer shifts at 50mm height"
symptoms: "X-axis shifts 10mm, happens consistently at same height"
printer: "Ender 3 V2"
material: "PETG, PolyMaker PolyLite"
root_cause: "Loose X-axis belt, pulley set screw not on flat"
solution:
- "Tightened X-axis belt to 120Hz resonance"
- "Realigned pulley set screw on motor shaft flat"
- "Reduced print speed to 40mm/s perimeter"
verification: "Printed 100mm test cylinder - no shifts"
notes: "Check belt tension monthly, pulley tends to slip"
Got: Issue documented with root cause and solution for knowledge base.
If fail: Even unsuccessful troubleshooting attempts should be logged to avoid repeating failed solutions.
Validation Checklist
- Failure symptoms documented with photos and specific observations
- Issue classified using diagnostic reference table
- Root cause identified (mechanical, thermal, material, or configuration)
- Appropriate fix applied based on root cause category
- Fix verified with test print before attempting full print
- Solution documented in issue log with date, cause, and resolution
- Environmental factors recorded (temperature, humidity, drafts)
- Material condition checked (dry, contamination-free, stored properly)
Pitfalls
- Changing multiple variables: Adjust one parameter at a time; otherwise you won't know what fixed it (or made it worse)
- Ignoring wet filament: Hygroscopic materials (Nylon, TPU, PETG) absorb moisture causing bubbling, stringing, poor adhesion—always suspect wet filament first
- Skipping mechanical checks: Loose belts and worn components cause issues no amount of slicer tuning can fix
- Temperature from internet: Every printer/material combination is unique—always run your own temperature tower
- Over-tightening belts: Too tight = premature bearing wear; aim for guitar string tension, not steel cable
- Blaming slicer: Slicer bugs are rare; 95% of issues are mechanical, thermal, or material-related
- Not cleaning nozzle: Partial clogs cause intermittent under-extrusion that looks like flow/e-step issues
- Assuming bed is level: Beds warp over time, springs compress, and adjustments slip—re-level weekly for reliable results
- Wrong Z-offset: Most first layer failures are Z-offset too high (not enough squish) or too low (nozzle scraping bed)
- Environmental neglect: ABS/ASA in 15°C garage with drafts will never print well—material requires stable warm environment
Related Skills
- prepare-print-model: Ensure model is properly prepared to avoid printability issues
- select-print-material: Choose material appropriate for printer capabilities and environment
- Calibrate 3D Printer (future skill): E-steps, flow rate, temperature towers, PID tuning, and bed mesh leveling
- Maintain 3D Printer (future skill): Belt tensioning, bearing lubrication, nozzle replacement, and preventive maintenance
GitHub Repository
Related Skills
executing-plans
DesignUse the executing-plans skill when you have a complete implementation plan to execute in controlled batches with review checkpoints. It loads and critically reviews the plan, then executes tasks in small batches (default 3 tasks) while reporting progress between each batch for architect review. This ensures systematic implementation with built-in quality control checkpoints.
requesting-code-review
DesignThis skill dispatches a code-reviewer subagent to analyze code changes against requirements before proceeding. It should be used after completing tasks, implementing major features, or before merging to main. The review helps catch issues early by comparing the current implementation with the original plan.
connect-mcp-server
DesignThis skill provides a comprehensive guide for developers to connect MCP servers to Claude Code using HTTP, stdio, or SSE transports. It covers installation, configuration, authentication, and security for integrating external services like GitHub, Notion, and custom APIs. Use it when setting up MCP integrations, configuring external tools, or working with Claude's Model Context Protocol.
web-cli-teleport
DesignThis skill helps developers choose between Claude Code Web and CLI interfaces based on task analysis, then enables seamless session teleportation between these environments. It optimizes workflow by managing session state and context when switching between web, CLI, or mobile. Use it for complex projects requiring different tools at various stages.
