Skip to content

Troubleshooting

Common issues and solutions for using Latch‑X effectively. If you don't find your issue here, search the docs or contact support.


Quick diagnostic checklist

Run this first

  • Read the error text carefully (it usually tells you the failing rule).
  • Validate the model validate button.
  • Try a minimal model to isolate the issue: yaml root: A components: A: { type: normal, mttf: 1000, mttr: 1 } dependencies: {}
  • Check tier & limits (Safety Limits).
  • Restart session (log out/in) and retry once.
  • Try another browser / clear cache & cookies.

Analysis issues

Analysis fails or times out

Symptoms - Analysis never completes - Long wait with no progress. - “Resource limit exceeded” messages.

Likely causes & fixes

Check these

  • Model too large: See Safety Limits for your tier. Simplify (fewer nodes/edges, more hierarchy) or upgrade.
  • Network/session issues: Refresh or re‑authenticate.
  • Timeout limits reached Retry with lower sim parameters.

BN vs MC results don’t match

Symptoms - Different availabilities / downtimes. - Different critical contributors.

Checklist

Align assumptions

  • Repair mode: BN “availability” assumes repairable steady‑state; MC uses temporal simulation. Set repair_enabled consistently.
  • Time horizon: simulation_time drives MC runs and BN reporting (e.g., expected downtime).
  • Randomness: MC has variance. Increase simulation_runs (1,000 → 10,000) and set a random_seed for comparison.

Unexpected analysis results

Symptoms - Availability values seem too high/low. - Critical components show minimal impact.

Steps

Try this

  • Parameter sanity: Recheck MTTF/MTTR magnitudes and units.
  • Dependency correctness: Confirm the intended AND/OR/quorum structure (see Dependencies).
  • Risk modeling: If using prob on risk nodes, remember it means P(UP) = “risk does not materialize”.
  • Sensitivity Explorer: Force single components DOWN to check impact.
  • Simplify & compare: Remove tiers until numbers make sense, then re‑add.

Slow performance

Symptoms - Analysis is much slower than expected.

Optimization

Speed it up

  • Reduce MC runs for iteration (100–1,000) and scale for final.
  • Prefer BN for quick structural validation; switch to MC for temporal/RTO.
  • Layer logic: Use hierarchical logical nodes rather than huge flat gates.
  • Prune model: Remove non‑critical nodes during exploration.
  • Check Latches" Latches can be significant contributor to the number of generated events.
  • Low MTTF/MTTR " Extremely Low MTTF/MTTR can be significant contributor to the number of generated events

Model creation issues

Component validation errors

Common messages & fixes

Fixes

  • “MTTF must be positive” → ensure values > 0 (in hours).
  • “Use prob OR mttf+mttr” → pick one approach for normals.
  • “Stored model limit reached for your tier” → appears when you save a new model or use Save As while your stored models are at your tier limit. The storage limit does not prevent opening or re-saving models you already have; other validation and tier limits still apply. Delete a model you no longer need, or upgrade, to store more.
  • “prob must be a success probability greater than 0 and less than 1” → use a value strictly between 0 and 1. Exactly 0 or 1, negative, larger than 1, or non-numeric values are rejected in every model version, including stored models. For a component that can never fail, remove it or use a value such as 0.9999.
  • Unsupported distribution or dispersion field → use failure exp, repair exp | delta, and remove sigma/omega.
  • “max_delay required for latch with mttf” → add max_delay.
  • “Unknown type” → valid types are normal | logical | latch.
  • “Duplicate component name” → choose a unique name.

Dependency issues

Common problems

Don’t do this

  • Circular dependency detected → refactor.
  • Invalid dependency target (name not in components) → fix typo / add component.
  • Multiple dep types on same target → split into layered logical nodes.
  • and/or/n_of_k on a normal target → use a logical target instead.
  • n_of_k with invalid n → ensure 1 ≤ n ≤ len(inputs).
  • n_of_k contains k → replace it with canonical threshold field n; do not keep both fields.
  • n_of_k has duplicate inputs → list each existing component exactly once.

Use the graph - Open diagram view to spot cycles, orphans, and overly dense hubs.

YAML parsing/import errors

Symptoms - Import fails; parser errors; model won’t load.

Fixes

YAML hygiene

  • Use spaces, not tabs; consistent indentation (2 spaces recommended).
  • Avoid duplicate keys in the same map.
  • Ensure lists are properly indented: ```yaml do: [a, b] # or do:
    • a
    • b ```
  • Validate with any YAML linter if in doubt.

Model integrity (signing)

Errors - “hashblock invalid” / “signature mismatch”. - A saved model fails current model validation while loading.

Fixes - Re‑validate the model to regenerate the signature. - Ensure no background edits modified the file between save and upload. - Saved models are checked against the current model contract before being loaded into a session. Unsupported legacy fields such as n_of_k.k are not migrated automatically; correct an exported copy to use canonical n, then validate and import it again, or contact support if no valid export is available.


Graph & UI issues

Diagram not rendering / blank SVG

Causes & fixes - Cache: Login/Logout.

Saving & autosave

Symptoms - Changes don’t persist; “Save failed”.

Fixes - Check connectivity; wait for autosave indicator to finish. - Manually Export YAML as a backup; re‑import if needed. - Avoid closing the tab during save operations.

Login & access

Symptoms - Session expires quickly; features greyed out.

Fixes - Clear cookies for the site and sign in again. - Check your tier and active limits (feature gating). - Try another browser / incognito session.


LLM Assistant issues

Model generation / editing via LLM

Common issues - Output too generic or overly complex. - Wrong component types, parameters, or dependency style. - Missing critical elements.

Improve results

Prompting checklist

  • Provide context: system overview, major tiers, constraints.
  • Be specific: list components, known MTTF/MTTR or prob, failover expectations.
  • State targets: simulation_time, target_availability, target_rto, repair_enabled.
  • Iterate: generate a minimal skeleton first, then refine.
  • Use higher tier AI model try the prompt with higher AI model (costs more units)

Always check if AI generated models meet your criteria.


Reporting issues

What to include

Technical details - Browser and version, OS, time of occurrence. - Exact error text and screenshots. - Account tier/subscription; current model size (nodes/edges).

Context - What you attempted; steps to reproduce. - Expected vs actual behavior. - Relevant YAML snippet (prefer a minimal reproducer).


Prevention tips

  • Build incrementally; validate at each step.
  • Export YAML backups regularly.
  • Keep units consistent (hours everywhere).
  • Use hierarchical logical nodes; avoid mixing dep types per target.
  • Set simulation_time to match SLA reporting.
  • Start MC with smaller simulation_runs; scale as needed.

More help

Distribution validation and changed results

  • “mttf/mttr must be a finite positive arithmetic mean”: supply a positive, finite time in hours. Zero is not accepted, even in older models that were previously accepted (for example, mttr: 0 intended as instant repair).
  • “Field sigma/omega is no longer supported”: remove the obsolete field.
  • “Unsupported mttf_dist/mttr_dist/distribution/dist”: failure supports only exp; repair supports exp or delta via mttr_dist. norm and lognorm are no longer available. Adding exp alongside a retired legacy selector does not bypass validation.
  • An older model passes its JSON schema but is rejected by Latch-X: schema validity and supported features are separate checks. Experimental distributions and dispersion fields are retired for every version. Keeping an old version does not enable a legacy engine. Explicitly select supported assumptions and remove retired fields; use schema_version: "2.8" when updating the source. The application does not silently convert or re-sign stored models.
  • Regenerate simulations and reports after changing assumptions. Existing caches are not automatically recalculated by this change.