DIONYSUS optimization troubleshooting
Empty universes, validation errors, timeouts, and confusing diagnostics—practical checks before you escalate.
Quick triage (do this first)
- Time — Note UTC time and whether markets were open; analysis freshness matters.
trace_id— If the API returned one, include it in support tickets (log correlation).- Capital — Confirm
total_capital≥ $1,000 and currency matches your expectation. - Risk settings —
max_positions,max_position_size,max_risk_per_tradenot accidentally 100× off (percent vs fraction). - Status — IRIS
/statusor your deployment’s health for Firestore, DIONYSUS, ATHENA pipelines.
“No suitable symbols” / empty candidate set
Cause: After signal and price filters, no symbols left—or quality/SATA thresholds removed everyone.
Checks:
- Batch analysis — Has your universe been analyzed recently? Stale or missing docs reduce the pool.
- Signals — Only BUY, ADD, HOLD (with SATA gates) participate. If the market is defensive, few names may pass.
- Indicators — Quality scoring needs critical fields (e.g. SATA, Mansfield RS paths). Missing data → symbol skipped.
- Universe — Watchlists and screeners define what can enter Firestore; tiny universes yield tiny outputs.
See How DIONYSUS filters and ranks symbols.
400 validation errors
Common cases:
total_capitalbelow minimum.- Malformed JSON or wrong types (string where number expected).
- Invalid enum for
allocation_strategy(must match allowed literals exactly).
Fix the payload; compare to the current IRIS API schema for your deployment.
401 / 403
- Session expired — Re-authenticate in IRIS.
- Direct DIONYSUS call without Bearer / OIDC — expected failure; use IRIS or proper service identity.
502 / 503 / 504
Upstream unavailable or timeout (DIONYSUS, Firestore, or identity). Back off; read FAQ and troubleshooting for generic proxy guidance.
“No viable positions” / capital errors after candidates exist
Cause: Per-line sizing could not place whole shares within risk and greedy limits, or greedy dropped everything.
Checks:
- Raise
total_capitalor lowermax_positions. - Relax
max_position_sizeonly if your policy allows (concentration risk). - High-priced stocks — thin slices may not afford one share (see Position sizing, stops, and targets).
Diagnostics look confusing
optimizer_diagnostics.binding_notes may mention:
max_position_sizemerged withsector_caps.DEFAULT- Softmax temperature scaled by vol target
- Sector rebalancing notes
- Turnover blend notes on rebalance
Read line-by-line against Constraint packs and optimizer diagnostics—they are factual, not recommendations.
Results differ from Hunt
Expected. Hunt and DIONYSUS use different endpoints, objectives, and ARTEMIS-specific heuristics vs full-book optimization. Compare Hunt, Cash Hunt, and optimization.
Still broken?
Gather: portfolio name, approximate capital, risk preset, screenshot of error, trace_id, and whether first-time vs rebalance optimize. Use Disclosures for support contacts.
Related guides
Progress is saved in this browser. Cloud sync requires PUBLIC_IRIS_API_BASE, IRIS CORS allowlist,
and window.__trinityIdToken.