# Cairo Snforge Troubleshooting

> Diagnose and fix common snforge test errors including Sierra compilation failures, cost computation cycles, and version mismatches; use when tests fail with cryptic errors even though `scarb build` succeeds.

- Skill: `teddyjfpender/cairo-snforge-troubleshooting` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add teddyjfpender/cairo-snforge-troubleshooting`
- Raw SKILL.md: https://api.skillmd.com/api/skills/teddyjfpender/cairo-snforge-troubleshooting/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: teddyjfpender (https://skillmd.com/u/teddyjfpender)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/teddyjfpender/cairo-snforge-troubleshooting

---


# Cairo snforge Troubleshooting

## Overview
Guide debugging snforge test failures, particularly Sierra compilation errors that occur after successful Cairo compilation.

## Quick Use
- Read `references/common-errors.md` before diagnosing.
- Check `Scarb.toml` settings first - `enable-gas = false` causes many issues.
- Verify toolchain version compatibility (snforge, universal-sierra-compiler, Cairo).
- Generic implementations need proper trait bounds.

## Response Checklist
- If error mentions "cycle during cost computation": check `enable-gas` setting.
- If error mentions "universal-sierra-compiler": check version compatibility.
- If generic code fails: ensure `+Drop<T>`, `+Copy<T>` bounds and struct derives.
- If `scarb build` passes but `scarb test` fails: issue is test-specific compilation.

## Common Error Patterns

### "unexpected cycle during cost computation"
**Cause**: `enable-gas = false` in `[cairo]` section of `Scarb.toml`
**Fix**: Remove `enable-gas = false` or set to `true`

### "Error while compiling Sierra"
**Cause**: Version mismatch between Cairo and universal-sierra-compiler
**Fix**: Run `snfoundryup` to update toolchain

### Generic impl compilation issues
**Cause**: Missing trait bounds on generic implementations
**Fix**: Add `+Drop<T>`, `+Copy<T>` to impl and `#[derive(Drop, Copy)]` to structs

## Example Requests
- "My tests fail with 'unexpected cycle during cost computation'"
- "snforge test fails but scarb build works"
- "universal-sierra-compiler error after Cairo upgrade"

