Skip to content

Common Errors and Messages ​

A comprehensive troubleshooting dictionary for error messages issued by Jupiter, along with diagnostics for anomalous simulation outputs.


Error Message Dictionary ​

INVALID_EXPRESSION: unknown identifier 'X' ​

A guard condition or metric formula references a name that does not exist in the model.

  • Is the identifier spelled with exact casing? Identifiers are case-sensitive (Queue is distinct from queue).
  • Is the # prefix missing? To reference place token counts, write #Queue. Without #, the engine searches for a parameter and fails.
  • Was a parameter renamed? When renaming a parameter, update any formulas that reference the old name.

INVALID_EXPRESSION: unexpected token ​

The expression contains syntax errors or invalid characters:

  • Trailing operators at the end of a line (e.g., E{#Queue} +).
  • Unbalanced parentheses or braces E{ }.
  • An IF clause without its required ELSE counterpart.
  • Scientific notation (1e-6 is invalid; use 0.000001).
  • Commas used as decimal separators (0,5 is invalid; use 0.5).

INVALID_DISTRIBUTION: transition 'T' has a non-positive mean delay ​

A timed transition received a duration less than or equal to zero.

  • Mean delays must be strictly positive ($> 0$).
  • If the duration comes from a parameter, verify its value.
  • In scenario sweeps using Consider as rate, ensure the sweep range does not contain zero.

NON_FINITE_METRIC: metric 'X' produced a non-finite value (Infinity/NaN) ​

A metric attempted to divide by zero.

  • Guard potentially zero denominators using the IF clause:
    IF divisor > 0 THEN dividend / divisor ELSE 0
  • In transient simulations, replace divisions by instantaneous counters with multiplications by arrival delays.

DUPLICATE_NAME: duplicate place/transition name 'X' ​

Two nodes share the exact same identifier.

  • Every place and transition must have a unique name because mathematical formulas rely on unambiguous identifiers.

MAX_EVENTS_REACHED ​

The simulation exceeded the configured safety cap for discrete events.

  • Fix 1: Reduce the simulation time in the configuration modal.
  • Fix 2: Increase the maximum event limit under Advanced Options.
  • Frequently occurs when ultra-fast microsecond transitions are paired with very long simulation horizons.

INVALID_DEFINITIONS: cyclic dependencies ​

Two or more parameters depend mutually on one another in a circular loop.

  • Designate one parameter as the independent baseline and define the others as unidirectional functions of it.

INVALID_JSON: unknown variant ​

The model includes a transition configured with a theoretical distribution not supported by the simulation engine.

  • The stochastic engine simulates Exponential, Normal, and Deterministic distributions. Set the transition to one of these three.

Diagnosing Anomalous Results ​

When a model runs without error messages but produces numbers that do not match expectations, consult these checks:

1. Results double when doubling simulation time ​

  • Cause: The system is saturated (arrival rate exceeds maximum service capacity).
  • In saturated queues, tokens accumulate indefinitely; no finite steady-state equilibrium exists. Reduce load or expand capacity.

2. Sizing up workers does not improve response time ​

  • Cause: The timed service transition is set to Single Server (S).
  • Change the transition policy to Infinite Server (I) so workers process items concurrently.

3. Orders-of-magnitude discrepancies (60x, 1000x, or 3600x) ​

  • Cause 1 (Time unit mismatch): The model mixes seconds and minutes across transitions. Check the global time unit in the right inspector panel.
  • Cause 2 (Rate vs. delay confusion): An arrival rate was entered into a field expecting a mean delay. Remember: in Jupiter, all duration fields are mean delays. Convert $\text{delay} = 1 / \text{rate}$.

4. Throughput falls short of arrival rate ​

  • Check component utilization: a resource has reached 100% capacity (saturation bottleneck).
  • If capacity buffers exist, evaluate Probability / Blocking to quantify dropped items.
  • Verify that arc multiplicities are balanced and not destroying tokens unintentionally.

5. A metric reports exactly zero in transient plots ​

  • The metric likely divides by a transient place that is empty at most sampling instants. Use the stable formulation shown in Response Time.

6. Debugging complex models with bisection ​

If a large model produces unexpected dynamics, use the bisection method:

  1. Remove or bypass half of the pipeline with a single dummy transition.
  2. Simulate the simplified model and confirm that outputs match analytical expectations.
  3. Reintroduce components one by one until the exact source of discrepancy is isolated.

Next steps ​

Review the formal grammar and token rules in Supported Syntax and Expressions.