Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.superform.xyz/llms.txt

Use this file to discover all available pages before exploring further.

Use this page when the Strategy Canvas shows an error, a strategy stays idle unexpectedly, or Intent History does not show the expected OMS execution.

First Checks

QuestionWhere to check
Is the strategy RUNNING?Strategy Canvas or GET /api/v1/strategies/{id}.
Is the vault active?Setup Checklist and Vault Settings.
Does OMS have a valid session key?Strategy Canvas gate and OMS API.
Is the target whitelisted?Yield Source Management.
Is the hook authorized?Merkle Trees.
Is an emergency lock active?Pause Operations and engine shard state.

Create or Update Rejected

SymptomLikely causeFix
unknown identifierExpression references a variable absent from the snapshot.Use known vault/source variables or add the indicator alias.
division by zeroRule dry-run evaluated a zero denominator.Rewrite ratios as multiplication comparisons.
missing objectiveaction_config.objective is absent.Add MIN_SLIPPAGE, MIN_TIME, or BALANCED.
invalid addressAddress is not hex/checksummed enough for the validator.Replace placeholder or malformed addresses.
409 ConflictUpdate used a stale version.Refetch the strategy and retry with the current version.

Strategy Saves but Does Not Tick

CauseWhat to do
State is CREATED or IDLETransition to RUNNING after readiness checks.
Vault activation incompleteFund upkeep and clear setup checklist blockers.
Kill switch or vault pause activeReview Pause Operations and vault pause status.
Target emergency lock activeStop the emergency exit only after the incident is resolved.
No shard stateCheck Strategy Engine health and shard assignment for the vault.

Strategy Ticks but Does Not Publish

CauseWhat to do
Rule evaluates falseInspect the signal snapshot in Intent History or engine logs.
size_expr is zero/negativeRework sizing so it is positive when the trigger passes.
Missing session keyGrant or renew OMS session-key authorization.
Missing merkle proofGenerate, sync, and publish the active merkle tree.
Target not whitelistedAdd the yield source and oracle.
Max concurrency reachedWait for in-flight intent completion or lower the strategy’s overlap.

Intent Publishes but Does Not Fill

CauseWhat to do
OMS route failureInspect OMS events for planning or execution errors.
Hook transaction failedOpen the hook transaction in the explorer and compare calldata/proof.
Slippage too tightReview max_slippage_bps against current liquidity.
Gas or nonce issueCheck executor wallet state and OMS event details.
Source liquidity changedConfirm allocation, TVL, and withdrawal availability on the source.

Useful Endpoints

GET /api/v1/strategies/{id}
PATCH /api/v1/strategies/{id}/state
GET /api/v1/engine/shards/{vault_id}/state
GET /api/v1/intents?strategy_id={id}
GET /api/v1/intents/{intent_id}/events
GET /api/v1/intents/{intent_id}/fills
GET /api/v1/fills?strategy_id={id}
If the same strategy repeatedly fails after these checks, archive it, clone the payload into a new draft, simplify the rule tree, and reintroduce complexity one condition at a time.