Troubleshooting
Use this guide from the first failing boundary. Do not change numerical tolerances, replace models, or delete evidence until the failure class is identified.
Workspace initialization
Submodule is empty or detached
Symptoms
- component directory is empty;
bin/aimora doctorreports an uninitialized component;- a child repository is on a detached revision when editing is expected.
Checks
bin/aimora status
bin/aimora init
bin/aimora doctorConfirm that the authenticated identity can read every private gitlink. The workspace pins exact revisions; do not replace a missing private child with an unrelated public package.
Wrong origin
The workspace launcher validates canonical fetch and push identities. A personal fork may be used on a feature branch, but publication must state the fork and upstream explicitly. Do not make a fork-only commit the permanent organization gitlink before the upstream PR is accepted.
Julia/package loading
Package not found
Run the example from its documented package environment or set the public engine path:
julia --project=AIMORAResources/AIMORACases -e 'using Pkg; Pkg.instantiate()'A public example loader searches the workspace sibling or installed package. It does not download arbitrary code at runtime.
Incompatible Julia version
AIMORA public packages declare Julia 1.10 compatibility. Use a supported Julia version and regenerate only local manifests; do not commit a workstation-specific manifest unless the repository explicitly owns it.
Solver activation
SolverUnavailableResult or no active backend
The public engine is working, but production numerical execution is not activated.
using AIMORA, AIMORASolvers
AIMORA.activate_solver!(AIMORASolvers.production_backend())
AIMORA.solver_status()Capability missing
Inspect the backend capability list. A missing capability is not solved by renaming the study or requesting a lower fidelity. Select an implemented capability or stop with the typed readiness error.
Parsing and readiness
Unknown card
Confirm the active syntax profile, card family, spelling, field widths, and section. An unknown card is never interpreted by similarity.
Continuation rejected
A continuation must immediately follow a compatible owner record and satisfy its field schema. Check accidental blank records, comments, and case boundaries.
Node or component reference missing
Resolve the exact identifier and phase/terminal mapping. Fixed-field whitespace and case may be significant.
Missing unit or base
State the engineering unit and per-unit base explicitly. Do not insert a guessed base to make the parser pass.
Initialization failures
Large initial residual
Check:
- contradictory initial voltages/currents/fluxes;
- infeasible switch state;
- machine operating point and mechanical torque;
- residual transformer flux;
- control integrator/limiter state;
- line/cable history initialization;
- source phase and reference convention.
A study may admit a declared startup transient, but it must not label an inconsistent state as steady initialization.
Linear solve failures
Singular nodal matrix
Common causes:
- island without reference;
- ideal voltage-source/constraint conflict;
- duplicate ideal constraints;
- all-open topology;
- zero impedance where an explicit ideal constraint is required;
- incorrect terminal numbering.
Inspect the reported node/component context before adding artificial conductance.
Poor conditioning
Check units, extreme parameter ratios, scaling, and topology. Artificial damping changes the model and must not be introduced silently.
Nonlinear convergence
Residual does not decrease
Check device domain, Jacobian/residual consistency, scaling, limit transitions, event location, initial guess, and timestep. Review the component-level diagnostic rather than increasing iteration limits first.
Chatter around a discontinuity
Confirm event hysteresis/debounce, exact priority, zero-crossing rule, and rollback. The solver should localize the event or issue a bounded warning; it must not loop indefinitely.
EMT result problems
Peak disappears from the figure
Use event-preserving downsampling and verify the CSV/full-resolution trace. The report renderer preserves declared events and local extrema; a third-party plot may not.
KCL or energy residual spikes
Short spikes may coincide with ideal events, but their interpretation must follow the model contract. Persistent residuals suggest incorrect stamping, state acceptance, sign convention, or output reconstruction.
Restart differs from uninterrupted run
Verify snapshot schema/revision, all model/control/event/history states, output cursor, and exact split boundary. Any omitted state invalidates deterministic replay.
Line/cable constants
Nonphysical matrix or negative/passivity result
Check conductor ordering, geometry, material data, earth return, sheath/bonding, unit conversions, and frequency. Inspect conditioning before applying a transformation.
Fitted line unstable outside the sample band
A fit is valid only over its declared band and extrapolation policy. Review poles, delays, passivity certificate/enforcement, weighting, and uncertainty. Do not use out-of-band behavior as an engineering result.
Transformer parameters
Test reconstruction does not match
Check winding order, connection, base MVA/voltage, referred side, test temperature, loss convention, and whether the supplied tests are mutually sufficient. Non-identifiable parameters must remain reported as such.
Reporting
Report provider missing
The study may be planned or its provider has not been accepted. Do not substitute a generic template that invents claims. Register a provider only with a typed result and minimum useful report matrix.
QA blocks publication
Read each issue code. Typical blockers are invalid result hashes, missing mandatory sections, malformed table shape/type, NaN/Inf, invalid log axes, missing figure accessibility text, dependency cycles, unresolved review comments, or stale approval.
PDF unavailable
Portable TeX and other outputs can still be generated. Install and lock the admitted Tectonic profile only when PDF is required. Missing TeX is a toolchain diagnostic, not a reason to alter report semantics.
Frozen report changed
A frozen report is immutable. Create a new revision with supersedes, review it, approve it, and freeze it. Do not overwrite the prior manifest or PDF.
Documentation checks
julia --startup-file=no AIMORAResources/docs/check_content.jl
make -C AIMORAResources/docs buildFailures identify missing manual pages, uncovered cases, missing templates, broken local links, or documentation claims that exceed the implemented study catalogue.
What to include in an issue
Provide:
- exact repository and commit revisions;
- operating system and Julia version;
- public case ID or minimal redistributable input;
- full typed diagnostic, not only a screenshot;
- command used;
- expected and actual behavior;
- whether the solver was active;
- result/report manifest hashes;
- any private/restricted material removed or replaced with a lawful fixture.