DSL Troubleshooting and State Validation

Updated May 22, 2026 · 1 min read

Check active status, core state fields, and field naming to fix broken DSL, and confirm a zero-trade agent is actually running.

If your DSL is not working or positions are unprotected, check these critical state fields in order:

DSL skipping the position

Fix

`active` must be `true`. Otherwise DSL skips the position.

highWaterPrice is 0

Fix

`highWaterPrice` should be `null`, not 0.

No tiers configured

Fix

`tiers` array must be present with at least one tier.

Config field-name mistakes

Fix

Use phase1MaxMinutes, not hardTimeoutMinutes. Use deadWeightCutMin, not deadWeightCutMinutes.

Zero trades since deploy

Fix

Check if your agent's cron is actually running. Zero-trade agents are broken until proven otherwise. Run the scanner manually on deployment and verify output.

For the underlying ratchet stop architecture (which fields belong to which phase), see article 23. For configuration values per asset, see article 24.

Runtime source

Inspect the DSL engine on GitHub.

View on GitHub
Share

Related articles